среда, 23 ноября 2011 г.

Использование SVN в связке с ClearCase

Так уж исторически сложилось, что ClearCase наше все. Что уж тут поделаешь?! Это интегрированная система с большими возможностями для анализа и других дел, непонятных простому разработчику. И про тормознутость этого ClearCase рассказывать не приходится. Да еще известная фича - когда ClearCase сервер на виндах то и работает с виндовыми клиентами, и наоборот с unix. Ну да где наша не пропадала?!

Создаем отдельную инфраструктуру на SVN - для этого, погуглив, я нашел то, что доктор прописал: VisualSVN. Это виндовый сервер SVN, есть бесплатная лицензия для коммерческого ипользования, HTTPS опять-же.

Клиенты для VisualStudio есть, но я остановился на TortoiseSVN, как более удобном в эксплуатации. Для своих unix машинок - скомпилял в хоме svn из оригинальных исходников.

Теперь об самом интересном: требуется из SVN периодически переливать изменения в ClearCase. Пришлось перебрать несколько способов, в поиске находились такие, которые или не работали или требовали какие то запредельные права для ClearCase типа CREATE VIEW. Наконец нашел один замечательный проект, написанный на java: svn2cc.
Использую его так:
  1. С помощью svndump создаю изначально полный дамп базы SVN (тут нужен локальный доступ к базе, но подойдет и read-only шара).
  2. Сохраняю последнюю ревизию базы svn в файле.
  3. С помощью svn2cc переливаю все в ClearCase.
  4. Далее использую сохраненную ревизию, чтобы полного дампа не делать, а только инкрементальный.
  5. Опять повторяем шаг 3 и так по кругу, как только надо залить изменения.
Правда есть некоторые ограничения этого способа: например не работает переименование каталога в svn - наверно нужно доработать svn2cc - пока просто: если нужно переименовать - то удаляю и создаю заново в svn.

И на последок: если не нужно в ClearCase переливать историю всех изменений - то достаточно
залить туда вывод svn export с помощью cleartool import и уже потом инкрементально лить изменения.

2 комментария:

  1. Интересная статья, спасибо автору! А есть-ли возможность получить полный дамп svn-репозитария с удалённого сервера с read/write доступом(например с code.google.com)?

    ОтветитьУдалить
  2. Спасибо читателям! Полный дамп svn репозитория можно получить имея локальный доступ к базе (как к файлам). По http(s) не получится, если нет опять-же интерфейса специального для этого.

    ОтветитьУдалить