Riorganizzare un repository di sovversione con rami
-
03-07-2019 - |
Domanda
Sto cercando di riorganizzare un repository di sovversione 1.6 che ha rami. Sembra che se sposti un file nel trunk e quel file ha delle modifiche in un ramo, quando queste modifiche vengono unite nel ramo, non ci sono più.
Proverò a illustrare di seguito:
1. Repo before move
trunk/a.txt
trunk/b.txt
branches/feature/a.txt
branches/feature/b.txt
2. File branches/feature/b.txt is changed.
3. Repo reorganized
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/b.txt
4. Changes from trunk merged to feature
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/new-location/b.txt
La cartella branch / feature è una copia di trunk .
Al completamento del passaggio 4, tutte le modifiche al file b.txt dal ramo funzione non sono più presenti.
Pensavo fosse risolto in svn 1.5?
Se questa non è un'opzione, devo comunque riorganizzare in qualche modo il mio intero repertorio. Fare la mossa quando i rami sono stati tutti uniti nel tronco non è un'opzione. Ho sempre almeno 1 ramo più tronco alla volta.
Soluzione
L'unione di file spostati è un problema noto . Tuttavia, Subversion ti avvisa con questo messaggio se non trova l'obiettivo di unione :
Target mancante saltato: "baz.c"
Se viene visualizzato questo messaggio, potrebbe essere necessario intraprendere un'azione manuale. Se il file è stato spostato e la nuova posizione deve ricevere le modifiche, puoi prendere in considerazione l'unione di sottostruttura tra le entità rinominate.
Non sono a conoscenza di alcun sistema di controllo versione che si fonde automaticamente. modifica : sembra in mercurial , ad esempio unisce do segui le copie .
Altri suggerimenti
Fornire dettagli sui passaggi 3 e 4. Le fusioni di sovversione non sono le stesse delle copie.
Dovrai assicurarti di utilizzare il metodo di ridenominazione SVN per il passaggio 3 per assicurarti che il percorso del file rimanga associato a future modifiche.
(sto estraendo questo da ... beh, non sono sicuro di quanto segue) Si è verificato un problema con gli antenati durante lo spostamento / la ridenominazione dei file. Assicurarsi che quando si unisce l'opzione ignora ancestry non sia selezionata.