J'ai un référentiel Git qui suit un référentiel svn. Je l'ai cloné en utilisant --stdlayout
.
J'ai créé une nouvelle branche locale via git checkout -b foobar
Maintenant, je veux que cette branche finisse en …/branches/foobar
dans le référentiel svn.
Comment vais-je à ce sujet?
(coupé beaucoup de texte d'enquête. voir l'historique des questions si vous vous en souciez)
à partir de git v1.6.1, git svn branch
est disponible.
À partir des documents Git:
branche Créer une branche dans le référentiel SVN. -m, --message Permet de spécifier le message de validation. -t, --tag Créez une balise en utilisant tags_subdir au lieu du nom branches_subdir spécifié lors de git svn init.
Les versions précédentes de git ne permettent pas de créer une branche svn.
Je sais que cette question a reçu une réponse il y a quelque temps, mais après l'avoir lue, elle pourrait aider à ajouter des exemples de la commande de branche spécifique de git svn et à la relier à un flux de travail typique.
Comme kch a répondu, utilisez git svn branch
. Voici un exemple complet (notez le -n
pour essai à sec):
git svn branch -n -m "Branch for authentication bug" auth_bug
Si cela se passe bien, le serveur répond avec la réponse suivante:
Copie https://scm-server.com/svn/portal/trunk à l'adresse r8914 vers https://scm-server.com/svn/portal/branches/auth_bug ...
Et sans le -n
_ switch le serveur ajoute probablement quelque chose comme:
Point de succursale possible trouvé: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug =, 8914
Parent de branche trouvé: (refs/remotes/auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
Suivi du parent avec do_switch
Le parent suivi avec succès r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8
(refs/remotes/auth_bug)
La meilleure partie de celle-ci, vous pouvez maintenant créer une branche locale basée sur votre branche distante comme ceci:
git checkout -b local/auth_bug auth_bug
Ce qui signifie "vérifier et créer une branche locale nommée auth_bug
et lui faire suivre la branche distante (dernier paramètre) auth_bug
Vérifiez que votre branche locale fonctionne sur cette branche distante en utilisant dcommit
avec --dry-run
(-n
):
git svn dcommit -n
Et le serveur SVN devrait répondre avec le nouveau nom de la branche:
S'engager à https://scm-server.com/svn/portal/branches/auth_bug ...
@kch Je viens de (7 décembre 2008) compiler la balise v1.6.1-rc1 de git qui contient la commande de branche git svn et la documentation correspondante. Ainsi, la version 1.6.1 de git devrait (espérons-le) contenir cette commande.