Какова наилучшая стратегия при переходе с ClearCase на SVN? - PullRequest
16 голосов
/ 12 февраля 2009

Мы рассматриваем возможность перехода с ClearCase на Subversion. Проект был там некоторое время (7 лет), и мы активно поддерживаем три «основные» версии (ветви), а также некоторые случайные исправления в старых версиях. Проект довольно большой - около 2 млн. Строк Java-кода.

Мне любопытно, есть ли кто-то, кто сделал подобную миграцию.

  • Сможет ли SVN справиться с таким крупным проектом?
  • Имеет ли смысл переносить все исторические версии / ветки? Есть ли инструменты, которые могли бы делать это выборочно?
  • Сколько времени займет процесс миграции для такого проекта и каков эффективный способ работы, тогда миграция выполняется?

Ответы [ 5 ]

9 голосов
/ 12 февраля 2009

Сделав несколько миграций такого рода, я бы сказал, что:

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

  • вам нужно подумать о реорганизации во время миграции: что вы импортируете? Что вы оставляете? И хотите, чтобы содержимое SVN отражало точно структура файлов, хранящихся в ClearCase VOB? Иногда такие миграции являются поводом для переосмысления организации некоторых из этих файлов (обычно с помощью простых правил переименования для определенных каталогов).

  • миграция происходит быстрее в ClearCase 2 SVN, поскольку SVN ориентирован на репозиторий и фиксирует набор файлов, тогда как ClearCase ориентирован на файл и фиксирует файл за файлом (намного медленнее)

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

5 голосов
/ 03 марта 2009

Первые несколько ресурсов:

  1. Инструмент Clearvision CC2SVN
  2. SVN Importer от Polarion
  3. Статья и ресурсы в CollabNet

Размер реального хранилища, количество файлов или их размеры не являются ограничивающим фактором для SVN. Количество разработчиков, параллелизм изменений, сложность процесса интеграции и выпуска, необходимость слияния и управления версиями каталогов (рефакторинг) могут создавать проблемы для большого проекта. Если ваш проект просто большой, но он достаточно стабилен, с небольшим количеством разработчиков, небольшим количеством веток и не требует переноса множества исправлений в несколько предыдущих выпусков, SVN подойдет для вас.

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

Лично я бы попытался собрать как можно больше данных, но вы должны знать об ограничениях SVN по сравнению с ClearCase. Любая история управления версиями (рефакторинг) каталога может быть потеряна во время этой миграции. SVN не поддерживает разреженные ветки, такие как ClearCase, что может привести к увеличению размера вашего SVN-хранилища, если вы используете ветки задач. В этом случае вы, вероятно, захотите ограничиться только системными ветками. Файлы в ClearCase имеют индивидуальную структуру ветвления, в то время как SVN имеет разновидности веток для каждого продукта, что приводит к значительному переводу ветвей в процессе. Ограничив себя системными ветками и, возможно, просто помеченной версией в этих ветвях для полностью интегрированных меток в серии, вы можете сэкономить много хлопот. Если ваша команда использует UCM, вы можете забыть все метаданные UCM. Они не будут переводиться в SVN.

Сроки зависят в основном от используемых инструментов. Для такого крупного проекта, как у вас, это может быть даже недели. У базы данных ClearCase по какой-то странной причине много блокировок даже при операциях чтения, и есть одна центральная таблица всего, что создает множество проблем при крупномасштабном доступе, которые может вызвать миграция. Когда я впервые запустил свой инструмент для продукта, несколько большего, чем у вас, мы рассчитали, что он будет работать в течение 3 лет, после значительной оптимизации, распараллеливания и постепенной миграции он сократился примерно до недели. Но ожидайте, что в зависимости от того, насколько хорошо инструмент сделан, может быть много различий во времени, которое требуется. Хотя, поскольку вы мигрируете в SVN и игнорируете большую часть истории и метаданных из ClearCase, ваша миграция должна быть намного быстрее.

ClearVision на своих страницах упоминает, что его инструмент CC2SVN может создать мост между двумя продуктами. Хотя я не использовал этот инструмент, если он работает так, как я предполагаю, он позволит вам синхронизировать 2 репозитория после некоторой обработки, что позволит вам переключиться на выходные с нулевым временем простоя разработки. Если это невозможно, попробуйте запросить какую-нибудь альтернативу, например, инкрементную миграцию, где вы сначала переносите до некоторой даты, а затем переносите меньший кусок данных, измененных с этой даты.

Очень важной частью этого процесса является фаза после миграции. Пожалуйста, не сбрасывайте со счетов головные боли, которые коммутатор принесет вашим разработчикам. Вы не должны недооценивать необходимость обучения и четкой документации. Вам также понадобится обученная группа поддержки в вашем отделе разработки программного обеспечения, способная управлять обеими системами SCM и объяснять разработчикам, как делать то, к чему они привыкли в новой системе. Это на самом деле точка, которая может сломать вам шею при миграции. Разработчики противостоят любым изменениям и любым преимуществам, которые SVN приносит проекту, по сути, это значительно уступает системе. ClearCase предоставляет вашим разработчикам такую ​​гибкость, которой у них никогда не будет с SVN, и, если вы не включите их на раннем этапе процесса, вы можете потерять их или, что еще хуже, полностью перевернуть всю миграцию, объявить катастрофу и потерять свою работу. *

3 голосов
/ 12 февраля 2009

Если вы решите переместиться, вы можете посмотреть на этот вопрос о переполнении стека.
рекомендация-на-инструментов к Migrate-из-ClearCase-к-СВН

1 голос
/ 27 июня 2011

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

1 голос
/ 12 февраля 2009
  1. Да, Subversion может работать с очень большими проектами. Например, все проекты Apache находятся в одном репозитории Subversion, а подпроекты - это простые подпапки
  2. Если имеет смысл конвертировать всю историю, что вы должны решить сами. Но есть много доступных инструментов. Хороший пост в блоге можно найти здесь .
  3. Я не знаю, сколько времени займет такое преобразование. Но вы можете попробовать сначала с небольшим подмножеством и измерить время.
...