Git-SVN с svn.pushmergeinfo:как избежать самоссылки строк mergeinfo

StackOverflow https://stackoverflow.com//questions/9700998

  •  13-12-2019
  •  | 
  •  

Вопрос

В последних версиях git конфигурация svn.pushmergeinfo был представлен:

ключ конфигурации:svn.pushmergeinfo

Эта опция приведет к тому, что git-svn попытается автоматически заполнить свойство svn:mergeinfo в репозитории SVN, если это возможно.В настоящее время это можно сделать только при выполнении слияний без перемотки вперед, когда все родительские элементы, кроме первого, уже были отправлены в SVN.

Мы используем это для создания смешанной среды, в которой некоторые разработчики используют SVN, а некоторые — Git-SVN.Это прекрасно работает при разветвлении и слиянии SVN-веток в Git, а затем git svn dcommit- возвращается в SVN, и он фактически правильно заполняет свойство mergeinfo почти во всех случаях.Однако в конкретных ситуациях это происходит неправильно.

Это происходит в основном при объединении ветки с главной (магистралью) после объединения магистрали с этой веткой (по сути, эквивалент реинтеграции SVN).

Слияние из магистрали в ветку добавляет строку mergeinfo для магистрали в этой ветке (по желанию), но реинтеграция-слияние из ветки обратно в магистраль копирует эту строку в mergeinfo транка, эффективно создавая самоссылающуюся строку в свойстве mergeinfo транка. это указывает на себя.Насколько я знаю, такая ссылка на самого себя никогда не должна происходить и не происходит при использовании только SVN.Итак, я считаю это ошибкой git-svn (о которой я сообщил здесь).Это, в свою очередь, создает проблемы в будущем, которые влияют на других пользователей SVN и повреждают информацию о слиянии при будущих коммитах.

Я ищу обходной путь: как я могу легко сказать git не копировать строки mergeinfo для объединяемой ветки или, альтернативно, как я могу сказать SVN удалить эти ссылки на себя при фиксации (или любое другое решение, которое не приводит к созданию самоссылающейся строки mergeinfo но сохраняет другие качества автоматического создания svn:mergeinfo из git).

(Для уточнения я нет ищу людей, которые процитируют мне руководство по git или скажут, что «слияние с Git-SVN опасно и не поддерживается».Пожалуйста, отвечайте только в том случае, если вы можете помочь с проблемой или предложить альтернативный рабочий процесс.Указатели на соответствующий код git также будут полезны, поскольку они могут позволить мне создать патч для решения этой проблемы.Спасибо!)

Это было полезно?

Решение

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top