Преодолеть 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 здесь.)