J'ai un dépôt git qui suit un dépôt svn. Je l'ai cloné en utilisant --stdlayout
.
J'ai créé une nouvelle succursale locale via git checkout -b foobar
Maintenant, je veux que cette branche se retrouve …/branches/foobar
dans le référentiel svn.
Comment dois-je procéder?
(Vous avez coupé beaucoup de texte d'enquête. Consultez l'historique des questions si vous vous souciez)
Réponses:
Je sais que cette question a été répondue il y a un certain temps, mais après l'avoir lue, je pourrais aider à ajouter des exemples de la commande de branche git svn spécifique 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 un essai à sec à tester):Si cela se passe bien, le serveur répond avec une réponse comme celle-ci:
Et sans le
-n
commutateur, le serveur ajoute probablement quelque chose comme:La meilleure partie de celui-ci, maintenant vous pouvez créer une branche locale basée sur votre branche distante comme ceci:
Ce qui signifie "extraire et créer une branche locale nommée
auth_bug
et la faire suivre la branche distante (dernier paramètre)auth_bug
Testez que votre branche locale fonctionne sur cette branche distante en utilisant
dcommit
avec--dry-run
(-n
):Et le serveur SVN devrait répondre avec le nouveau nom de la branche:
la source
git co
pargit checkout
pour que l'exemple puisse fonctionner pour tout le mondegit-svn branch
commande - vous devez être en ligne pour créer une nouvelle branche de cette façon. Vous pouvez effectuer les opérations suivantes hors ligne: 1.git checkout -b foobar
2. hack-hack-hack 3git commit -m "Done foobar"
.. Et lorsque vous êtes en ligne, appuyez sur ce changement en faisant 1.git svn branch foobar
2.git branch --set-upstream foobar remotes/foobar
3git svn dcommit
..git checkout -b foobar-new remotes/foobar
. 3.git checkout foobar
4.git rebase foobar-new
5. Pour tester pour vous assurer que la branche est maintenant validée sur la branche svn.git svn dcommit --dry-run
6. Enfin valider réellementgit svn dcommit
7. Supprimer la branche temporairegit branch -D foobar-new
à partir de git v1.6.1,
git svn branch
est disponible.Depuis les git docs:
Les versions précédentes de git ne permettent pas de créer une branche svn.
la source
@kch Je viens (7 décembre 2008) de compiler la balise v1.6.1-rc1 de git et elle contient la commande de branche git svn et la documentation correspondante. Donc, la version v1.6.1 de git devrait (espérons-le) contenir cette commande.
la source