Быстрый способ для пользователя SVN изучить ClearCase - PullRequest
12 голосов
/ 14 марта 2010

До сих пор я использовал SVN, и теперь мне нужно быстро получить ClearCase, с точки зрения разработчика. Есть ли хороший ресурс для этого? Спасибо.

- добавить -
Есть ли карта между понятиями / терминологией SVN (то есть хранилище, рабочая копия, ствол, ветвь, тег, извлечение, фиксация, обновление, возврат) с CC? Исходя из первоначального прочтения, я получил следующее.

Репозиторий => VOB?
Рабочая копия => Снимок?
Магистраль => ??
Ветвь => Поток интеграции? Поток разработки?
Tag => Метка? Базовый уровень?
Оформить заказ из репозитория в качестве рабочей копии => Оформить заказ из VOB в виде снимка?
Принять из рабочей копии в репо => Вернуть из представления снимка в VOB?
Обновить => Перебазировать?
Вернуть => ??
?? => Доставить

AFAIK CC имеет свои уникальные концепции, поэтому я не могу сказать ближайшую карту.

Ответы [ 2 ]

14 голосов
/ 14 марта 2010

Вы можете начать с чтения моих SO ответов:

Два основных различия, о которых вам нужно знать:

  • ClearCase ориентирован на файл, а не на репозиторий , что означает, что вы получаете файлы только для чтения, которые вы должны извлекать по одному, чтобы иметь возможность изменять (и вы «фиксируете») (отмечается) также по одному): здесь нет глобальной ревизии рабочего пространства

  • ClearCase рассматривает ветвление как истинные метаданные, а не как «каталог» с дешевой копией в нем: не является «каталогом» с именем ветви в нем.


Как говорится, быстро:

  • Репозиторий => VOB :
    Да: VOB - это просто еще один термин для репо (базовая версия объекта). Это не база данных SQL, а старая база плоских файлов Atria.

  • Рабочая копия => Просмотр снимка?
    Снимок - это самый близкий механизм доступа из рабочей копии, поскольку он копирует файлы на ваш жесткий диск.
    Динамический просмотр обеспечивает такой же доступ к рабочей копии ... без копирования чего-либо на жесткий диск, что интересно для быстрой консультации.

  • Магистраль => ??
    «main»: это основная ветвь в ClearCase (каждый элемент - файл или каталог - в ClearCase имеет хотя бы одну версию на «main»), но на самом деле нет никакой магистрали, кроме одна ветка, которую вы выбрали в качестве ствола.

  • Branch => Поток интеграции? поток разработки?
    Поток не является веткой. Это метаданные со списком меток (базовых линий), с которыми вам нужно работать. Это только в том случае, если вы решите использовать UCM. В противном случае ветвь - это любая ветка, которую вы можете создать без UCM (mkbranch myBranch).
    Поток может служить шаблоном для создания ветви, названной в его честь: любая проверка, сделанная вами в представлении UCM (представление, настроенное автоматически после потока), создаст ветку, названную в честь его потока.

  • Tag => Метка? Базовый уровень?
    Во-первых, тег - это не каталог с дешевой копией, такой как UCM.
    Это метка, применяемая к любой версии, на которую она должна ссылаться.
    Разница между меткой (не-UCM) и базовой линией (UCM) заключается в том, что базовая линия - это метка, применяемая к всем файлам компонента (UCM) (группы файлов), тогда как метка может быть применяется к любому элементу по вашему выбору, например, только к подмножеству данной группы файлов.

  • Извлечь из репозитория в качестве рабочей копии => Извлечь из VOB в виде снимка?
    Почти, но правильный термин для представления снимка - «обновление».
    Для динамического просмотра вам даже не нужно обновление (или svn checkout), так как представление ... динамическое: вы просто сразу видите правильную рабочую копию через сеть. Это просто еще один механизм доступа.

  • Передать из рабочей копии в репо => Вернуть из представления моментального снимка в VOB?
    Не совсем, так как фиксация будет касаться всех измененных файлов, в то время как регистрация будет файловой (даже если в ClearCase 7.1.1 введено понятие "атомарная регистрация" : см. check man man page ).

  • Обновление => Rebase?
    Нет: означает обновление в представлении моментального снимка (в динамическом представлении - ничего, поскольку оно динамическое: любые изменения, внесенные в другом представлении с аналогичным правилом выбора, будут сразу же видны в вашем представлении)
    Rebase - это слияние UCM, выполняемое как ветвь от родительского потока к ветке от дочернего потока. В конце концов, это просто слияние.

  • Вернуть => ??
    Не тривиально ... Это субстративное слияние .

  • ?? => Доставить
    DeПечень и Rebase - это просто слияния ветки «источник» и ветки «назначение»:
    Единственное преимущество в том, что вы можете заранее «увидеть» свой рабочий процесс слияния - это определить иерархию потоков (которые представляют собой не что иное, как список меток), зная, что любое слияние между

    • переход от дочернего потока к родительскому потоку будет «доставлять»
    • переход от родительского потока к дочернему потоку будет «ребазом»
1 голос
/ 14 марта 2010

Главное, что вам нужно знать, это то, как вы используете SVN сегодня, в открытом регистре называется snapshot views. В остальном в clearcase есть множество функций, таких как динамические представления, действия, производные объекты и собственная система make. Никто не использовал эти функции в компании, в которой я работал, которая сделала глобальный выбор для clearcase. О да, и это не работает, если сервер, к которому вы подключаетесь, находится не в вашем офисе.

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

...