Git-SVN с svn.pushmergeinfo: как избежать использования ссылок на строки mergeinfo - PullRequest
11 голосов
/ 14 марта 2012

В последних версиях 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-код также будут полезны, поскольку они могут позволить мне создать патч для решения этой проблемы. Спасибо!)

1 Ответ

8 голосов
/ 11 апреля 2012

просто обновление.выглядит так, как будто вы создали патч.это-configured.html

...