2010-09-30 3 views
1

Я использую git-svn, работая счастливо, разветвляясь для чего угодно, переустанавливая и удаляясь в багажник, а затем силы, которые решаются, что мы собираемся начать разработку ветви вместо ствола. Мой вопрос: как мне получить ветви, которые были созданы от мастера, который отслеживал соединительную линию, чтобы пересобирать/объединять в новую локальную ветвь, которая теперь отслеживает новую ветку?Поддерживать локальные ветви git при переключении удаленных ветвей svn

Чтобы попытаться проиллюстрировать это, здесь была моя установка до переключения (имена филиал/репо изменены, чтобы защитить невинных):

Git  ->  svn 
master  ->  trunk 
|-feature1 
|-feature2 

Теперь это моя установка

Git  ->  svn 
master  ->  trunk 
|-feature1 
|-feature2 
newDev  ->  branches/working 

Проблема в том, что у меня есть работа в тех ветвях функций, которые я хочу попасть в ветвь svn «working». Каков наилучший способ сделать это?

ответ

1

Я пару месяцев назад я выполнил команду git svn branch. Вы можете использовать это для создания новых ветвей на вашем svn-удаленном компьютере, а затем для этого отключите локальную ветку git. Также работает фиксация из этих местных филиалов в правильные филиалы svn.

Если у вас уже есть правильная локальная ветка и вы хотите поместить ее в ветвь svn, которая еще не существует, вы также можете использовать git svn branch. Используйте его для создания новой ветки svn remove, основанной на транке, вытащите ее в свой репозиторий git, а затем переустановите свою локальную ветвь git, основанную на вашем хозяине на вершине.

В результате вы получите локальную ветку git, содержащую все ваши изменения, сидящие поверх коммита с git-svn-id, указывающие на только что созданную ветку. Если это не удастся, ваши изменения также окажутся в этой ветви svn на удаленном конце.

Если у вас есть сомнения, всегда есть git svn dcommit -n, в котором сообщается, где именно git-svn будет совершать.

Смежные вопросы