J'ai extrait un dépôt svn en utilisant git svn. Maintenant, je dois vérifier l'une des branches et la suivre. Quelle est la meilleure façon de procéder?
J'ai extrait un dépôt svn en utilisant git svn. Maintenant, je dois vérifier l'une des branches et la suivre. Quelle est la meilleure façon de procéder?
Réponses:
Créez un clone git qui inclut votre tronc Subversion, vos balises et vos branches avec
git svn clone http://svn.example.com/project -T trunk -b branches -t balises
L' --stdlayout
option est un bon raccourci si votre référentiel Subversion utilise la structure typique:
clone git svn http://svn.example.com/project --stdlayout
Faites en sorte que votre dépôt git ignore tout ce que fait le dépôt subversion:
git svn show-ignore >> .git / info / exclude
Vous devriez maintenant pouvoir voir toutes les branches Subversion du côté git:
git branche -r
Disons que le nom de la branche dans Subversion est waldo
. Du côté git, tu courrais
git checkout -b télécommandes waldo-svn / waldo
Le suffixe -svn permet d'éviter les avertissements du formulaire
avertissement: refname 'waldo' est ambigu.
Pour mettre à jour la branche git waldo-svn
, exécutez
git checkout waldo-svn git svn rebase
Pour ajouter une branche Subversion à un clone de tronc uniquement, modifiez votre dépôt git pour .git/config
qu'il contienne
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs / remotes / mybranch
Vous devrez développer l'habitude de courir
git svn fetch --fetch-all
pour mettre à jour tout ce git svn
que l'on pense être des télécommandes séparées. À ce stade, vous pouvez créer et suivre les branches comme ci-dessus. Par exemple, pour créer une branche git qui correspond à mybranch, exécutez
git checkout -b mybranch-svn télécommandes / mybranch
Pour les branches à partir desquelles vous avez l'intention de le faire git svn dcommit
, gardez leur histoire linéaire!
Vous pourriez également être intéressé par la lecture d'une réponse à une question connexe .
--prefix=svn/
en faisant git-svn init
ou git-svn clone
) Cela éliminera le besoin d'ajouter un suffixe sur vos succursales locales.
show-ignore
erreurs surviennent, essayezgit svn show-ignore -i trunk