12
votes

Utilisation de git-svn pour fusionner une branche SVN dans le coffre et le coffre dans la branche

Donc, j'utilise git et interagir avec un repo SVN.

J'ai un coffre SVN qui ressemble à ceci: p> xxx pré>

et une branche de bug_fixes SVN Direction des branches à Engagez B ou C: P>

 -c-d-e-f-g-h-i


2 commentaires

Donc, fondamentalement, aucune des solutions ne fait une réintégration exacte, laissant tous la branche en conflit si vous continuez à l'utiliser?


Franchement, en regardant en arrière, je ferais l'une de ces deux choses: 1. Utilisez un repo git sans SVN. 2. Utilisez un représentant central SVN et faites tout ma fusion et rebasing dans GIT, sans utiliser les branches SVN moins capables du tout. Si je devais partager des succursales, je le ferais dans un miroir Git -without - une branche principale et gardez uniquement la branche principale de SVN. Mais dans l'ensemble, je dispenserais avec SVN si possible.


5 Réponses :



1
votes

Ce ne serait-il pas un bon cas pour rebaser votre substance locale ( .. i ) sur le nouveau maître extrait de SVN?


1 commentaires

Cela fonctionne bien dans Git, mais pas avec l'histoire de la révision linéaire de SVN. Vous pouvez donc obtenir les changements de la branche au coffre, mais le développement continu sur la succursale est apparemment futile.



3
votes

OK, donc quelques approches que j'ai trouvées: xxx

ou xxx

ou xxx < / pré>

et ensuite après tout cela. xxx

puis (de svn parce que git-svn ne prend pas en charge la suppression) Supprimer la branche, et recréez-le du coffre et commencez le cycle de plus.


3 commentaires

Comment obtenir une branche de SVN? Il est stocké là-bas .. pas dans Repo local.


Je pense que c'est juste une question de "git svn chercher" ou quelque chose. Kernel.org/pub/software/scm/git/ Docs / git-svn.html


Je pense que vous devriez vraiment faire un git svn rebase à la place. Il devrait conserver une histoire linéaire selon la documentation à git-scm.com.com / Docs / git-svn # git-svn-emrebaseem



1
votes

Si vous dommageez une fusion, il l'écrase automatiquement en 1 commit. Malheureusement, il n'utilise pas à l'intérieur de l'intérieur svn: mergeinfo ou --Retintegrate tel qu'il le devrait, de sorte que vous perdez l'association avec la succursale créée via la «branche Git SVN».


0 commentaires

1
votes

Ce que vous pouvez aussi faire est Cherry-Chick em>, à condition que vous n'utilisiez pas fusion em>.

Les deux déclarations doivent être effectuées sur la branche sans les modifications. . P>

à condition que c soit plus âgé que moi et que vous souhaitez prendre toute la séquence. p> xxx pré>

ou distinct commits p>

git cherry-pick c d e f g h i


0 commentaires