Ответ 1
Обратите внимание, из git svn, как указано в "Почему смысл "наши" и "их" обращены с помощью git -svn":
git svn rebase
Это выбирает ревизии родительского элемента SVN текущего HEAD и переустанавливает текущую (не совместимую с SVN) работу против него.
Поэтому вам не нужно git svn fetch
перед вашими git checkout master
и git svn rebase
, особенно если вы отслеживаете только trunk
(родительский элемент master
).
Вторая точка, git svn dcommit
создаст изменения в SVN для каждой новой фиксации на master
, но ваш рабочий процесс не показывает никаких новых фиксаций на master
, только на topic
(который никогда не был слито на master
)
Комментарий Шона Макмиллана:
В соответствии с документами
git svn dcommit
без указанной ветки посылает коммиты на текущий HEAD, а не только наmaster
. Поэтому я передаю SVN из своей ветки, а затем полагаюсь наgit svn rebase
onmaster
, чтобы вернуть коммиты из SVN. Я оставляю ветвьtopic
после того, как яdcommited
. Это не кошерный?
Он уточняет, что:
Я не могу отправить их в SVN... пока. Upstream хочет "заморозить" туловище для выпуска, тем временем я работаю над функциональностью для следующей версии.
Но главный вопрос: " есть git мастер магистральной переадресации так же, как git svn rebase на главной ветке?" Если это так, то мне не нужно быть постоянно меняя свои ветки, просто чтобы переустановить мою ветвь мастера против SVN. Но если это не так, и там какая-то магия происходит, когда я git svn rebase, я хочу знать.
На что я отвечаю:
A git svn fetch
, за которым следует a git rebase trunk master
, будет эквивалентно a git svn rebase
.