Я работаю над проектом, который использует subversion для своего репозитория. Поскольку мне нужно внести некоторые изменения, которые не могут быть отправлены на сервер svn, я начал использовать git svn
, чтобы я мог выполнять локальные проверки. Моя настройка выглядит так:
Филиалы: trunk (трекинг svn trunk), мастер (довольно близко к чему в svn) и тема.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
Workflow:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
Предполагая, что никто не фиксирует svn между git svn fetch
и git svn rebase
,
Выполняется ли git svn rebase
на главном сервере так же, как git rebase trunk
выполняется на master?
Есть ли более разумный рабочий процесс для использования? Кажется, что происходит много изменений в ветких и происходит переполнение. Я понимаю, что хочу, чтобы у меня была возможность перезагрузить мою работу поверх всего в svn, но похоже, что я делаю больше переустановок, чем это необходимо.