Преодолеть git svn оговорки
Я читаю CAVEATS git -svn. через этот вопрос SO.
Я понимаю, что:
Если вы зеркалируете ствол svn, ветки и т.д. в репозитории git, не объединяйте и не пересобираете что-либо локально в этих ветвях. В частности, master
указывает на trunk
.
Могу сказать, что это сделало бы git-svn
искалеченным. Какая точка git, если я не могу отделить от мастера, а затем слить, что изменил ветвь обратно в мастер? Возможно, я пропустил какое-то предостережение в предостережении, в котором говорится, что вполне нормально объединять определенные ветки с одним и тем же родителем без каких-либо переустановок.
Может ли кто-нибудь указать мне точно, чего следует избегать и что разрешено. Я бы хотел, чтобы локальные ветки, если необходимо, нуждались в зеркалировании и объединении, а главное git должны делать слияния, чем svn.
Если я использую ветки git для зеркалирования svn-ветвей, и я не могу объединить ветки git, какова действительно точка git -svn?
Ответы
Ответ 1
Вы можете объединить ветки git, то есть те, которые напрямую не отражены от SVN.
Я хотел бы иметь собственный набор ветвей git, сделанных из ветвей git -svn ", и регулярно обновлялся над ветвями" git -svn ".
Таким образом, я делаю все слияния, которые мне нужны локально, в репозитории git, затем я вишу, что мне нужно, чтобы обновить ветки "git -svn", чтобы я мог спокойно dcommit
, не беспокоясь о первый родитель, упомянутый в разделе CAVEAT git-svn
Ответ 2
git -svn искалечен по определению. Вы ничего не можете сделать. Subversion не громит, как слияния.
ОДНАКО, вы можете временно сгибать правила Subversion с перезагрузкой. Я показал пример этого в blog-post/screencast:
http://blog.tfnico.com/2010/10/gitsvn-4-collaborate-with-other-git.html
(Несколько советов по работе с git -svn здесь.)