J'ai vérifié un référentiel svn en utilisant git svn. Maintenant, j'ai besoin de vérifier une des branches et de la suivre. Quelle est la meilleure façon de le faire?
Créez un clone git qui inclut votre coffre, vos balises et vos branches Subversion avec
git svn clone http://svn.example.com/project -T trunk -b branches -t tags
L'option --stdlayout
Est un raccourci Nice si votre référentiel Subversion utilise la structure typique:
git svn clone http://svn.example.com/project --stdlayout
Faites en sorte que votre dépôt git ignore tout ce que le dépôt Subversion fait:
git svn show-ignore >> .git/info/exclude
Vous devriez maintenant pouvoir voir toutes les branches Subversion du côté de git:
branche git -r
Disons que le nom de la branche dans Subversion est waldo
. Du côté des git, vous courriez
git checkout -b télécommandes waldo-svn/waldo
Le suffixe -svn est d'éviter les avertissements de la forme
attention: 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 réservé au tronc, modifiez le .git/config
De votre référentiel git pour qu'il contienne
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs/remotes/mybranch
Vous aurez besoin de développer l'habitude de courir
git svn fetch --fetch-all
pour mettre à jour tout ce que git svn
considère comme 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 correspondant à mybranch, exécutez
git checkout -b télécommandes mybranch-svn/mybranch
Pour les branches à partir desquelles vous avez l'intention de git svn dcommit
, Gardez leurs historiques linéaires!
Vous pouvez également être intéressé par la lecture d'un réponse à une question connexe .