J'ai un dépôt central SVN dans lequel je dois commiter, mais j'ai une passion pour git (comme tous les autres développeurs que je connais). Le cas est bien connu.
Puis j'ai lu un article sur git-svn et je l'ai essayé. Comme je n'ai pas besoin de l'historique complet, juste de deux mois environ, j'ai fait comme ça :
git svn clone -r 34000 -s https://svn.ourdomain.com/svn/repos/Project/SubProject
SubProject avait, comme d'habitude, les sous-répertoires trunk
, tags
y branches
. Super.
Ensuite, afin d'obtenir la dernière révision, j'ai fait
git svn rebase
Quelques téléchargements plus tard, super. Dernière révision, logs, etc. Ok, maintenant je vais passer à ma branche de fonctionnalité.
$ git branch
* master
$ git branch -r
trunk
$ git branch -a
* master
remotes/trunk
Les questions sont : Où sont mes branches ? Ai-je fait quelque chose de mal ? Comment dois-je faire pour que mes branches se retrouvent dans le nouveau repo git ?
git-svn, partout où j'ai lu à son sujet, a traité sagement les branches et les balises, mais le comportement n'est pas celui que j'attendais. Merci !
EDITAR : Je viens de découvrir que git svn fetch
le fera. Mais il y aura toutes les révisions, ce que je n'aimerais pas.
2 votes
Cela ne répondra pas à votre question, d'où le commentaire : En utilisant git-svn, vous briserez les fonctionnalités de suivi de fusion de subversion, car git-svn ne les supporte pas. A mon avis, ce seul 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 un jour développée - probablement pas, car les gens préfèrent passer à un DVCS plutôt que d'utiliser de telles astuces.
0 votes
J'ai lu quelque part que la transformation des fusions git en commits en utilisant --squash ne casse pas le suivi des fusions subversion.
5 votes
Pour la disposition standard "trunk/branches/tags", que vous semblez utiliser, vous pourriez essayer
--stdlayout
, comme dansgit svn clone --stdlayout svn://...
- voir stackoverflow.com/questions/5361559/0 votes
@JoelPurra Je ne sais pas pour les autres mais
--stdlayout
était ce dont j'avais besoin4 votes
N'est-ce pas ?
-s
un diminutif de--stdlayout
?