2010-06-04 5 views
26

J'utilise git avec un dépôt svn tout va bien J'ai fait tout mon branchement avec git donc je n'ai pas ramifié sur svn mais j'ai ramifié avec git et poussé ces branches vers un emplacement séparé. Puis j'ai engagé des changements de la branche en cas de besoin.
Mais maintenant, je veux créer des branches qui existent réellement sur svn j'ai essayé:git-svn branchement

$ git svn branch someFeature -m "message" 

, et je suis arrivé ceci:

$ git svn branch someFeature -m "message" 
Multiple branch paths defined for Subversion repository. 
You must specify where you want to create the branch with the 
    --destination argument. 

Comment dois-je préciser la destination que je ne peux pas comprendre ce et la page de manuel n'est pas aussi claire.

Répondre

30

Vous avez plusieurs répertoires (ou pas) de svn marqué comme lieu pour les branches. Regardez dans vous .git/config, il y aurait section comme ça:

[svn-remote "svn"] 
url = file:///someurlto/svn 
fetch = trunk:refs/remotes/trunk 
branches = branches/*:refs/remotes/* 
branches = branches2/*:refs/remotes/* 

Il y aura plusieurs entrées pour les succursales. (Sinon, si vous n'avez pas encore entrées dans la branche, la première ligne devrait fonctionner avec une mise en page repo norme SVN.)

Ainsi, lorsque la ramification vous devez indiquer dans quel répertoire de la branche doit être créée:

git svn branch someFeature -m "test" --destination branches2 

où le dernier élément est l'un des répertoires des lignes de branches dans .git/config.

+1

Je ne vois url = file: /// someurlto/svn fetch = tronc: refs/remotes/trunk je ne vois pas dans ce fichier branches – slayerIQ

+1

Ahh, alors c'est le problème. Je ne sais pas où mettre cette branche. Ajoutez une ligne similaire à celle de mon exemple. (branches = pathinsvnrepo/*: réfs/télécommandes/*) – silk

+0

Qu'en est-il d'un svn repo simple sans la structure du dossier trunk/branches? La partie de branchement initiale est passée. Mais git svn dcommit échoue. Il se plaint que les dossiers n'existent pas ... – kakyo

1

Si je lis le droit git svn man page:

git svn <command> [options] [arguments] 

, vous devez taper:

git svn branch -m "message" someFeature 

au lieu de:

git svn branch someFeature -m "message" 
+0

$ git svn branch -m "message" someFeature Plusieurs chemins de dérivation définis pour le référentiel Subversion. Vous devez spécifier l'emplacement où vous souhaitez créer la branche avec l'argument --destination. Toujours le même message. – slayerIQ