Я работаю над проектом, который использует subversion для своего репозитория. Поскольку мне нужно внести некоторые изменения, которые пока нельзя отправить на сервер svn, я начал использовать git svn
, чтобы выполнять локальные проверки. Моя установка выглядит следующим образом:
Ветви: ствол (отслеживание ствола svn), мастер (довольно близко к тому, что находится в svn) и тема.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
Рабочий процесс:
[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
Предполагая, что между git svn fetch
и git svn rebase
никто не фиксирует svn,
Является ли git svn rebase
запуском на мастере в основном таким же, как git rebase trunk
запуском на мастере?
Можно ли использовать более разумный рабочий процесс?Похоже, происходит много изменений веток и перебазирования. Я понимаю, что хочу иметь возможность перебазировать свою работу поверх всего, что есть в svn, но похоже, что я делаю больше перебазировок, чем это строго необходимо.