git-svn ветвление - PullRequest
       21

git-svn ветвление

27 голосов
/ 04 июня 2010

Я использую git с репозиторием svn, все идет хорошо. Я сделал все свои ветвления с помощью git, поэтому я не выполнял ветвления на svn, но я разветвлялся с помощью git и перенес эти ветви в отдельное место. Затем я внес изменения из ветки, когда это было необходимо.
Но теперь я хочу создать ветки, которые на самом деле существуют на SVN, я попробовал:

$ git svn branch someFeature -m "message" 

, и я получил это:

$ 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.

Как мне указать пункт назначения, который я не могу понять, и страница справочника также не совсем понятна.

Ответы [ 2 ]

32 голосов
/ 05 июня 2010

У вас есть несколько (или нет) каталогов из svn, помеченных как места для веток. Посмотрите в ваш файл .git / config, там будет такой раздел:

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

Там будет несколько записей для филиалов. (В качестве альтернативы, если у вас нет записей о филиалах, первая строка должна работать со стандартным макетом репозитория SVN.)

Итак, при ветвлении вы должны указать, в каком каталоге должна быть создана ветвь:

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

где последний элемент является одним из каталогов из веток в .git / config.

1 голос
/ 04 июня 2010

Если я читаю git svn справочную страницу вправо:

git svn <command> [options] [arguments]

, вы должны набрать:

git svn branch -m "message" someFeature 

вместо:

git svn branch someFeature -m "message"
...