#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. Поэтому я подозреваю, что теперь отсутствие связанной истории может быть связано с этим.