Как перейти с RTC Jazz на Git?

Моя команда была вынуждена перейти с SVN на RTC Jazz scm около года назад. поскольку мы очень недовольны RTC, мы решили отказаться от него и переключиться на Git для контроля версий.

Я не нашел много информации о миграции из RTC в целом, но я нашел это Rational Adapter for Git (я не уверен, что он может быть использован для такого рода миграции).

Как лучше всего перенести наш исходный код и изменить историю с RTC jazz на Git?

12 голосов | спросил Ido.Co 29 Maypm14 2014, 12:26:04

3 ответа


0

Поскольку мы столкнулись с той же проблемой и хотели сохранить нашу историю, мы начали создавать скрипт на python, который автоматизирует процесс миграции RTC SCM Stream от Stream на GIT.

Сценарий можно найти здесь: https://github.com/rtcTo/rtc2git

Некоторые подробности работы программы. Она основана на RTC CLI.

  1. Он клонирует пустой репозиторий git и создает там рабочее пространство на основе вашего самого старого потока.
  2. Для данного потока, заданного в файле конфигурации, он читает базовые показатели компонента.
  3. Для каждой базовой линии этого компонента будет выполняться команда сравнения (чтобы увидеть все различия, к сожалению, прямое сравнение с последним потоком вызывает исключение @RTC Version 5.0.1)
  4. Результаты сравнения будут проанализированы для получения необходимой информации (автор, комментарий, дата и т. д.)
  5. Изменение будет принято в рабочей области, и вскоре после этого будет выполнена соответствующая команда git, чтобы сделать то же самое в git

Для каждого потока будет создана ветка

В основном это все. Если вы хотите, я также могу предоставить некоторые примеры команд, которые помогли мне получить необходимую информацию (информация о конкретных вещах, касающихся RTC CLI, довольно редка).

РЕДАКТИРОВАТЬ. Я считаю текущую версию программы стабильной. Так что попробуйте. :) Я приветствую любые отзывы.

ответил Joker 27 Jpm1000000pmTue, 27 Jan 2015 12:00:20 +030015 2015, 12:00:20
0

Я протестировал адаптер и подтверждаю, что он не предназначен для миграции. Он предназначен для связывания git commit с набором изменений RTC.

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

Обычно я устанавливаю рабочее пространство репо на последние несколько базовых показателей и импортирую их в рабочее дерево git. Я не импортирую имена авторов.

При импорте используются --git-dir и --work-tree параметры git команда .
(Как показано в этом ответе или этот )

Вы можете печатать откуда угодно:

git --work-tree=/path/to/sandbox --git-dir=/path/to/repo/.git status|add|...

Сначала попробуйте статус, чтобы увидеть, что вы будете импортировать. Вы можете добавить в файл /path/to/repo/.git/exclude некоторый шаблон для исключения из элементов импорта, которые вам не нужны (например, .jazz5 папка!).
Конечно, /path/to/sandbox может быть любой подпапкой в ​​этой песочнице: вам не нужно все импортировать.

Повторите этот процесс с той же песочницей, обновленной с различными базовыми линиями /снимками, от самой старой до самой новой.

Это дает грубую историю, которой достаточно для начала.

ответил VonC 29 Maypm14 2014, 12:44:14
0

У меня была такая же работа, а именно - конвертировать весь поток с несколькими компонентами в отдельные репозитории git. После того, как я попробовал вышеупомянутый скрипт на python, я обнаружил, что это слишком сложно (например, выбрать все URL-адреса в eclipse для создания файлов истории, поиска по базовым линиям и т. Д.) И вовсе не надежно. По крайней мере, для компонентов с более чем 4000 наборов изменений.

Итак, я написал еще один скрипт на Perl, который работает практически из коробки, по крайней мере, в Windows 7.0. Сценарий включает в себя множество обходных путей для всех этих ошибок в scm, поэтому вам не нужно беспокоиться об этом.

Ссылка на Bitbucket

Он сделал свою работу и, возможно, может помочь вам.

Ральф

ответил Hennes 19 Maypm15 2015, 14:41:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132