В последних версиях git была введена конфигурация svn.pushmergeinfo
:
ключ конфигурации: svn.pushmergeinfo
Эта опция заставит git-svn попытаться автоматически заполнитьсвойство svn: mergeinfo в репозитории SVN, когда это возможно.В настоящее время это может быть сделано только при выполнении слияний без ускоренной пересылки, когда все родители, кроме первого, уже отправлены в SVN.
Мы используем это для создания смешанной среды, в которой некоторые разработчикииспользуйте SVN, а некоторые используют Git-SVN.Это прекрасно работает при ветвлении и слиянии SVN-ветвей в Git, а затем git svn dcommit
- обратно в SVN и фактически правильно заполняет свойство mergeinfo почти во всех случаях.Однако в определенных ситуациях это происходит неправильно.
Это происходит главным образом при объединении ветви в мастер (транк) после объединения транка в эту ветвь (фактически, эквивалент реинтеграции SVN).
При слиянии от внешней линии к ветви добавляется строка mergeinfo для внешней линии в этой ветви (по желанию), но реинтеграция-слияние из ветви обратно в магистральную копию копирует эту строку в объединенную информацию внешней линии, эффективно создаваяссылка на строку в свойстве mergeinfo транка, которая указывает на себя.Насколько я знаю, эта самостоятельная ссылка никогда не должна происходить, и не происходит при использовании только SVN.Итак, я считаю это ошибкой git-svn (о которой я сообщил здесь ).Это, в свою очередь, создает проблемы в будущем, которые влияют на других пользователей SVN и повреждают mergeinfo при будущих коммитах.
То, что я ищу, - это обходной путь: как я могу легко сказать, что git notскопировать строки mergeinfo для объединяемой ветви, или, альтернативно, как я могу сказать SVN удалить эти самоссылки при фиксации (или любое другое решение, которое не приводит к самообращающейся строке mergeinfo, но сохраняет другие качестваавтоматическое создание svn: mergeinfo из git).
(Для пояснения я не ищу людей, которые цитируют мне руководство по git или говорят мне, что "объединение с Git-SVN опаснои не поддерживается ". Пожалуйста, отвечайте, только если вы можете помочь с этой проблемой или предложить альтернативный рабочий процесс. Указатели на соответствующий git-код также будут полезны, поскольку они могут позволить мне создать патч для решения этой проблемы. Спасибо!)