Последующее переключение между удаленными ветвями, отслеживаемое git-svn

#git #git-svn

#git #git-svn

Вопрос:

Я с git-svn поверх клиентской ветви SVN («магистраль»)

магистраль -> мастер -> функция

Упрощенный рабочий процесс:

 master: git-svn rebase
git rebase master feature [working here...]
git checkout master
git merge feature
git svn-dcommit 
 

Теперь заказчик хотел бы, чтобы я работал над до сих пор не существующей веткой svn (‘feature_svn’). «функция» сильно продвинулась вперед и некоторое время не использовалась. Клиент, скорее всего, на данный момент избежал бы этих разработок в своей магистрали.

Каков наилучший способ переноса моей работы? Могу ли я просто отслеживать ‘feature_svn’ с помощью новой ветки git (скажем, ‘track_feature_svn’), объединить / перебазировать (?) ‘feature’ в ‘track_feature_svn’ и зафиксировать результат в ‘feature_svn’. Есть ли какие-либо возможные подводные камни?

Ответ №1:

Да, вы можете.

 git checkout trunk
#will create branch in svn and git, based on currently tracked svn branch (trunk I assume)
git svn branch feature_svn
git rebase feature_svn feature
git svn dcommit
 

Вы можете работать с feature_svn веткой так же, как вы работали с магистралью. Не ожидал бы никаких серьезных проблем, если бы вы предпочитали перебазирование слияниям.