J'ai un référentiel SVN central auquel je dois m'engager, mais j'ai une passion pour git (comme tout développeur que je connais). L'affaire est bien connue. Puis j'ai lu à propos de git-svn et l'ai essayé. Depuis que je ne ai pas besoin toute l'histoire, juste de deux mois environ, je l'ai fait comme ceci:Comment importer des branches et des balises svn dans git-svn?
git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
Sous-projet avait, comme d'habitude, les sous-répertoires trunk
, tags
et branches
. Génial.
Ensuite, afin d'obtenir la dernière révision, je l'ai fait
git svn rebase
Quelques téléchargements plus tard, une grande. Dernière révision, les journaux, etc. Ok, maintenant je vais passer à ma branche de fonctionnalité. Où sont mes branches:
$ git branch
* master
$ git branch -r
trunk
$ git branch -a
* master
remotes/trunk
Les questions sont? Ai-je fait quelque chose de mal? Comment dois-je faire pour obtenir mes succursales dans le nouveau repo git? Git-svn, où que j'aie lu à ce sujet, a traité avec sagesse les branches et les balises, mais le comportement n'est pas ce que j'attendais. Merci! Je viens d'apprendre que git svn fetch
va le faire. Mais il recevra toutes les révisions, ce que je n'aimerais pas.
Eh bien, cela ne répondra pas à votre question, d'où le commentaire: Lors de l'utilisation git-s vn vous casserez les fonctions de suivi de fusion de subversion, car git-svn ne les supporte pas. À mon humble avis ce problème disqualifie git-svn pour une utilisation sérieuse avec un dépôt subversion. Je n'ai pas trouvé d'information pour savoir si cette fonctionnalité sera développée - probablement pas, car les gens aiment passer à un DVCS au lieu d'utiliser de tels hacks. – gimpf
J'ai lu quelque part que la transformation de git fusionne en commits en utilisant --squash ne cassera pas le suivi de fusion de subversion. –
Pour la mise en page standard "trunk/branches/tags" que vous semblez utiliser, vous pouvez essayer ['--stdlayout'] (http://www.kernel.org/pub/software/scm/git/docs /git-svn.html), comme dans 'git svn clone --stdlayout svn: // ...' - voir http://stackoverflow.com/questions/5361559/what-does-the-stdlayout-do-in -git-svn-clone –