web-dev-qa-db-fra.com

Commander une branche distante avec git svn

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?

180
markovuksanovic

Disposition standard de Subversion

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

À partir d'une caisse réservée au coffre

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!


Plus d'informations

Vous pouvez également être intéressé par la lecture d'un réponse à une question connexe .

343
Greg Bacon