git merge
dovrebbero essere in grado di rilevare (fino a un certo punto) rinomina.
recursive
Questo può risolvere solo due teste utilizzando un algoritmo di fusione a 3 vie.
Inoltre, è in grado di rilevare e gestire le unioni che coinvolgono i nomi.
Questa è la strategia di unione predefinita quando si estrae o unisce un ramo.
Ma git-svn
può solo importare/esportare da/a SVN, non eseguire l'unione.
E l'unione è difficile:
CAVEATS
Per ragioni di semplicità e di interagire con un sistema meno capace (SVN), si raccomanda che tutti git svn
utenti clone, recuperano e dcommit direttamente dal server SVN ed evitare tutte le operazioni git clone/pull/merge/push tra repository e branch git.
Il metodo consigliato per lo scambio di codice tra i rami git e gli utenti è git format-patch e git am, o semplicemente "dcommiting" al repository SVN.
L'esecuzione di git merge o git pull NON è consigliata su un ramo dal quale si intende eseguire il dcommit. Subversion non rappresenta fusioni in alcun modo ragionevole o utile; quindi gli utenti che usano Subversion non possono vedere alcuna fusione che hai fatto. Inoltre, se si uniscono o si estraggono da un ramo git che è un mirror di un ramo SVN, dcommit potrebbe commettere il ramo sbagliato.
Se non unire, tenere presente la seguente regola: git svn dcommit tenterà di commettere in cima al SVN commit chiamato in
git log --grep=^git-svn-id: --first-parent -1
pertanto È necessario assicurarsi che il più recente commit del ramo a cui vuoi partecipare è il primo genitore dell'unione. Il caos sarà altrimenti, specialmente se il primo genitore è un vecchio commit sullo stesso ramo SVN.
Vedere questa risposta: http://stackoverflow.com/questions/2945842/using-git-svn-or-similar-just-to -help-out-with-svn-merge/3585702 # 3585702 –
Vedere http://stackoverflow.com/questions/714589/can-git-svn-correctly-populate-svnmergeinfo-properties ... La parte "Modifica:" della 2a risposta (non la risposta accettata) è particolarmente bella –