Не удается объединить ветви после миграции SVN в git

#git #svn

#git #svn

Вопрос:

Недавно мы выполнили миграцию с SVN на GitHub. Из-за общего размера репозитория SVN мы перенесли только trunk (это стало master ) и нашу текущую release ветку. master и release регулярно объединялись до миграции.

Казалось, что все в порядке, и мы начали выполнять некоторую работу в git. Мы находимся примерно на 2 днях, и мы сделали открытие, что это приводит к тому, что master и release ветвь не могут быть объединены ( refusing to merge unrelated histories ).

Я попытался выполнить слияние с --allow-unrelated-histories в качестве быстрого теста, но это приводит к большому конфликту. У нас также есть много двоичных файлов. К сожалению, наше хранилище велико.

Я пытаюсь связаться с командой, которая выполняла миграцию, чтобы узнать больше о том, как они это сделали, но хотел проявить инициативу, чтобы лучше понять, что произошло, и возможные способы решения этой проблемы.

Была ли это проблема с тем, как они выполняли миграцию? Значение, после миграции, должны ли две ветви по-прежнему иметь связанную историю? Или это невозможно?

Есть ли какой-либо способ в git решить эту проблему?

Один из способов, который я могу придумать, который является ядерным вариантом, — это поместить diff в папку и объявить банкротство в другой ветке.

Другой вариант. Я мог видеть, что будет в SVN, слияние release с trunk , затем повторная синхронизация trunk с нашим master и просто повторное внесение наших изменений.

Любые мысли о том, как решить эту проблему, были бы весьма признательны.

Комментарии:

1. У вас есть доступ к исходному репозиторию svn? Можете ли вы попробовать выполнить миграцию самостоятельно (с помощью локального репозитория)? Я думаю, что импорт должен правильно обрабатывать ветви (то есть должен переводить ветви subversion в объединяемые ветви git), но, честно говоря, прошло почти 10 лет с тех пор, как мне в последний раз приходилось выполнять импорт git-svn.

2. Отличное предложение. Я об этом не подумал. Я сам выполнил миграцию, но обнаружил, что не смог успешно выполнить миграцию с 2 ветвями. Я также обнаружил у команды возможную причину проблемы. Они объединяли ветви разработки как в master, так и в release. По-видимому, они не объединяются между master и release. Поэтому я подозреваю, что теперь отсутствие связанной истории может быть связано с этим.