Переход с ClearCase на SVN - PullRequest
4 голосов
/ 07 мая 2009

Что ж, у меня проблема с инструментом импорта SVN для миграции одного из ClearCase VOB, который имеет огромную историю ... мы думали сделать это, взяв примерно 10 -15 базовых версий кода и импортировав их в SVN. Так что для этого я думаю, что пользователь должен предоставить мне конкретные версии одну за другой. Так что теперь он спрашивает меня, как указать конкретную версию в прозрачном и экспортировать ее ?? Идея состоит в том, чтобы дать мне код в виде tar-шара ... чтобы я мог взорвать его на рабочем столе и затем импортировать в SVN. .... !!!! Я не знаю, как импортировать / слой во всех этих базовых линиях в SVN ....... Это что-то похожее на SVN. Не могли бы вы помочь мне с этим.

Ответы [ 4 ]

2 голосов
/ 27 июня 2011

Другой вариант - Migrate2SVN. Разработчик (Clearvision) только что выпустил v2.0 и, похоже, включает в себя МНОГИЕ улучшения по сравнению с программным обеспечением Polarion и другими методами, упомянутыми выше.

http://www.clearvision -cm.com / ClearCase-подрывная-migration.html

Надеюсь, это поможет любым пользователям Google, которые оказались на той же странице, что и я: -)

1 голос
/ 08 мая 2009

Я сделал некоторую миграцию в чистом виде самостоятельно: вот мои мысли:

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

  2. создать список тегов, которые вы хотите экспортировать

  3. написать скрипт для генерации спецификации конфигурации clearcase для каждого тега в вашем списке тегов

  4. альтернатива: создайте список настроек конфигурации для каждого тега, если вы не можете преуспеть в шаге 3

  5. tar и почтовый индекс вашего прозрачного вида и скопируйте его на вашем SVN-компьютере

  6. извлечь каждый почтовый индекс в папку

  7. используйте svn_load_dirs.pl для импорта в SVN, вы также можете создать тег в SVN

  8. перейти к 6 со следующим тегом

Обратите внимание, что это также будет работать с несколькими проектами. Однако, если у вас есть общие модули (одно из слабых мест в SVN), вам потребуется определенная структура репо, а импорт в SVN может быть более сложным (возможно, используйте svn: externals). Вы действительно должны автоматизировать процесс, так как большую часть времени вы будете импортировать более одного раза, потому что в ваших конфигурационных спецификациях отсутствуют файлы, ваша структура SVN изменится и т. Д. Поэтому создайте сценарий для решения и запустите все автоматически, что будет намного больше гибкий, пока не закончится вся миграция. Вам также может понадобиться просмотреть результат миграции.

1 голос
/ 07 мая 2009

Я не использовал его, но слышал, что SVNImporter будет импортировать ваши VOBS ClearCase, включая историю.

Похоже, что ваш пользователь на самом деле просит экспортировать несколько версий за один раз из CC, чтобы «свернуть» существующую историю. Скажем, например, что у вас есть большой VOB с тысячами ревизий и сотнями меток, и вы хотите иметь только последние 5 основных выпусков в своей истории в новом хранилище Subversion. Вы можете экспортировать самую раннюю версию из CC, импортировать в SVN и создать рабочую копию. Затем вы экспортируете более позднюю версию из CC, копируете в свою рабочую копию и выполняете обновление. Пену, промыть, повторять, пока не дойдете до последних из CC.

Версия, которую вы получите от CC, контролируется спецификацией конфигурации views. Чтобы получить только файлы, связанные с определенной меткой (надеюсь, они имеют метки ...), измените спецификацию конфигурации на:

element /vob/MyPath/… DESIRED_LABEL

Чтобы получить версии, связанные с меткой И текущей версией того, что не связано с этой меткой, вы используете:

element /vob/MyPath/… DESIRED_LABEL
element /vobs/MyPath/… /main/LATEST

Для получения дополнительной информации см. Документацию IBM / Rational config_spec .

0 голосов
/ 07 мая 2009

Примечание: если под "базовой линией" вы ссылаетесь на "Базовую линию UCM", это становится проще для данного компонента (дерева файлов в Vob).

Создайте проект UCM с одним потоком интеграции и динамическим представлением, затем:

ct lsbl -s component:myComponentToExport@\myPVob

выдаст вам список базовых показателей для экспорта.

ct rebase -bas myIntStream@\myPVob aBaseline

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


Но если вы используете данные, помеченные base-ClearCase (а не UCM), помните об этой проблеме:

метка base-ClearCase может быть нанесена на любой файл. Правило, подобное предложенному Гари

element /vob/MyPath/... DESIRED_LABEL

может в конечном итоге выбрать 0 файлов просто потому, что метка 'DESIRED_LABEL' не была помещена в корневой каталог 'MyPath'!


Плюс нет понятия «пересмотр временной шкалы» (например, пересмотр в Subversion).
Если метка окажется слишком ненадежной (поскольку не помещены в все файлы), решение может состоять в том, чтобы объединить дату метки с правилом на основе времени .

element /vob/MyPath/... DESIRED_LABEL
element /vob/MyPath/... .../myBranch/LATEST -time (date_Of_The_Label_Put)

'date_Of_The_Label_Put' - дата нанесения ярлыка хотя бы на один элемент.
Если бы некоторые элементы не были помечены, они все равно были бы выбраны в правильной версии, то есть в версии во время метки, частично применяемой к набору файлов.

...