Git Импорт из Surround SCM?
Моя компания имеет большую базу кода в Surround SCM, которая была перенесена из SourceSafe несколько лет назад. Мы стремимся перейти к чему-то более подходящему для наших нужд, но получение нашей истории из Surround является проблемой.
Googling для git импортеров, я нашел хороший учебник по пользовательским импортерам. Также представляется поддержка svn, perforce и многих других, но нет Surround.
Было бы лучше всего сделать снимок и начать новый репо git? Или стоит написать script, чтобы получить более 15 лет истории кода?
Ответы
Ответ 1
В этом сценарии можно написать script, но не для получения всей истории.
Я бы порекомендовал только импортировать:
- основные ярлыки (для чего-либо старше года или любого другого периода, в котором вы чувствуете себя комфортно, вам не понадобится исследование полностью, потому что оно так устарело)
- все ярлыки (майор и несовершеннолетние) за последние годы.
Однако переход на Git требует также работы для идентификации модулей или приложений в вашем централизованном репозитории Surround.
Попытка импортировать все эти данные в один репозиторий Git была бы ошибкой, если только это не одна гигантская система, которая не может быть развита по частям независимо друг от друга (например, ядро Linux).
См:
Ответ 2
Находя себя в этом точном сценарии, я беру на себя ответственность за создание такого пользовательского импортера: export-surround-to-git
Этот метод способен сохранять полную историю, временные метки, авторы, комментарии, ветки, моментальные снимки и т.д.
Этот script был протестирован в ограниченном количестве сценариев и до сих пор оказался успешным. Хотя это еще не работает, это может быть то, что вы ищете. Это open-source - так что не стесняйтесь делать улучшения в script самостоятельно!
Ответ 3
Surround SCM имеет SDK. Я использовал это для создания репозитория из CVS в Surround. Несколько лет спустя одна команда смотрела на переход к SVN и спросила, могу ли я перенести репозиторий. Я придумал решение, которое состояло в том, чтобы пройти репозиторий Surround и создать промежуточную базу данных в памяти, а затем обработать его. Чтобы даты были правильными, я бы reset часы на компьютере. Прежде чем я смог полностью реализовать решение, мы решили сохранить плавающую лицензию для этой команды, когда им нужно было посмотреть на историю и спланировать их переосмысление всей организации своих проектов. (Как FYI, два года спустя, и эта команда все еще использует Surround.)