Git Import из Surround SCM?
У моей компании есть большая кодовая база в Surround SCM, которая была перенесена из SourceSafe несколько лет назад. Мы стремимся перейти к чему-то более подходящему для наших нужд, но вывести нашу историю из Surround оказывается непростой задачей.
Погуглив импортеров git, я нашел хороший учебник по пользовательским импортерам. Также, кажется, есть поддержка SVN, Perforce и многих других, но нет Surround.
Было бы лучше просто сделать снимок и начать новый репозиторий git? Или стоит написать скрипт, чтобы получить 15+ лет истории кода?
3 ответа
В этом случае сценарий может быть написан, но не для получения всей истории.
Я бы порекомендовал только импортировать:
- основные лейблы (для чего-либо старше года или любого периода, который вам удобнее, экзамен не понадобится полностью, потому что он настолько старый)
- все лейблы (мажорные и минорные) за последние годы.
Однако миграция на Git также требует работы для идентификации модулей или приложений в вашем централизованном репозитории Surround.
Попытка импортировать все эти данные в один репозиторий Git была бы ошибкой, если только это не одна гигантская система, которая не может быть разработана по частям независимо друг от друга (как ядро Linux).
Увидеть:
Оказавшись в этом точном сценарии, я взял на себя ответственность написать такой собственный импортер: export -round-to-git
Этот метод способен сохранять полную историю, метки времени, авторов, комментарии, ветки, снимки и т. Д.
Этот сценарий был протестирован в ограниченном числе сценариев и до сих пор доказывал свою эффективность. В то время как все еще в стадии разработки, это может быть то, что вы ищете. Это с открытым исходным кодом - так что не стесняйтесь вносить улучшения в скрипт самостоятельно!
Surround SCM имеет SDK. Я использовал это, чтобы перенести репозиторий из CVS в Surround. Спустя годы одна команда собиралась перейти в SVN и спросила, могу ли я перенести репозиторий. Я придумал решение, которое состояло из обхода хранилища Surround и создания промежуточной базы данных в памяти, а затем ее обработки. Чтобы даты были точными, я переустанавливал часы на компьютере. Прежде чем я смог полностью реализовать решение, мы решили сохранить для этой команды плавающую лицензию на тот случай, когда им нужно будет взглянуть на историю и запланировать их переосмысление всей организации своих проектов. (Как к сведению, два года, и эта команда все еще использует Surround.)