Git Import из Surround SCM? - PullRequest
       35

Git Import из Surround SCM?

13 голосов
/ 20 августа 2009

У моей компании есть большая кодовая база в Surround SCM, которая была перенесена из SourceSafe несколько лет назад. Мы стремимся перейти к чему-то более подходящему для наших нужд, но вывести нашу историю из Surround становится непростой задачей.

Поиск в git-импортерах, я нашел хороший учебник по пользовательским импортерам . Также, кажется, есть поддержка SVN, Perforce и многих других, но нет Surround.

Было бы лучше просто сделать снимок и начать новый репозиторий git? Или стоит написать скрипт, чтобы получить 15+ лет истории кода?

Ответы [ 3 ]

6 голосов
/ 20 сентября 2014

Находясь в этом точном сценарии, я взял на себя задачу написать такой собственный импортер: export -round-to-git

Этот метод способен сохранять полную историю, метки времени, авторов, комментарии, ветки, снимки и т. Д.

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

4 голосов
/ 14 ноября 2012

Surround SCM имеет SDK. Я использовал это, чтобы перенести репозиторий из CVS в Surround. Спустя годы одна команда собиралась перейти в SVN и спросила, могу ли я перенести репозиторий. Я придумал решение, которое состояло из обхода хранилища Surround и создания промежуточной базы данных в памяти, а затем ее обработки. Чтобы даты были правильными, я переустанавливал часы на компьютере. Прежде чем я смог полностью реализовать решение, мы решили сохранить для этой команды плавающую лицензию на тот случай, когда им нужно будет взглянуть на историю и запланировать их переосмысление всей организации своих проектов. (Как к вашему сведению, два года спустя эта команда все еще использует Surround.)

4 голосов
/ 20 августа 2009

В этом сценарии можно написать сценарий, но не для получения всех истории.

Я бы порекомендовал только импортировать:

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

Однако для миграции на Git требуется также работа по идентификации модулей или приложений в централизованном хранилище Surround.
Попытка импортировать все эти данные в один Git-репозиторий была бы ошибкой, если только это не одна гигантская система, которая не может быть разработана по частям независимо друг от друга (как ядро ​​Linux).

См:

...