До сих пор я использовал SVN, и теперь нуждается для взятия ClearCase быстро, с точки зрения разработчика. Там хорошо работает ресурс для этого?Спасибо.
- прибавьте-
Существует ли карта между понятиями/терминологией SVN (т.е. репозиторий, рабочая копия, соединительная линия, ответвление, тег, контроль, фиксация, обновление, вернитесь) с CC? Основа на начальной букве, читая я выпустил следующее.
Репозиторий => VOB?
Рабочая копия => представление Snapshot?
Соединительная линия =>??
Ответвление => поток Интеграции? поток разработки?
Тег => Маркировка? Базовая линия?
Контроль от repo как работающий копия => Контроль от VOB как представление снимка?
Фиксация из рабочей копии в repo => Регистрация от снимка просматривает в VOB?
Обновление => Переоснова?
Вернуться =>??
?? => Поставляют
AFAIK CC имеет свои собственные уникальные понятия, таким образом я не могу сказать ближайшую карту.
Вы можете начать с чтения моих ответов на SO:
Два основных отличия, о которых вы должны знать:
ClearCase ориентирован на файлы, а не на репозиторий, что означает, что вы получаете файлы только для чтения, которые нужно проверять по одному, чтобы иметь возможность изменять (и вы "коммитите" (проверяете) также по одному): здесь нет глобальной ревизии рабочего пространства
ClearCase рассматривает ветвление как настоящие метаданные, а не как "каталог" с дешевой копией в нем: нет никакого "каталога" с именем ветвления в нем.
Учитывая это, быстро:
Репозиторий => VOB:
.
Да: VOB - это просто другой термин для repo (Versioned Object base). Это не база данных SQL, а старая база плоских файлов Atria.
Рабочая копия => представление моментального снимка?
Представление моментального снимка - это наиболее близкий механизм доступа к рабочей копии, поскольку он копирует файлы на жесткий диск.
Динамическое представление достигает такого же доступа к рабочей копии... не копируя ничего на жесткий диск, что интересно для целей быстрой консультации.
Магистраль => ?
"main
": это главная ветвь в ClearCase (каждый элемент -- файл или каталог -- в ClearCase имеет по крайней мере одну версию на "main"), но на самом деле нет никакой магистрали, кроме той, которую вы выбрали в качестве магистрали.
Филиал => интеграционный поток? поток разработки?
Поток - это не филиал. Это метаданные со списком меток (baselines), которые вам нужны для работы. При этом, только если вы решили использовать UCM. В противном случае, ветка - это любая ветка, которую вы можете создать без UCM (mkbranch myBranch
).
Поток может служить шаблоном для создания ветви, названной по его имени: любая проверка, которую вы делаете в представлении UCM (представление, сконфигурированное автоматически после потока), создаст ветвь, названную по имени ее потока.
Tag => Label? Baseline?
Во-первых, метка - это не каталог с дешевой копией, как в UCM.
Это метка, наложенная на любую версию, на которую вы хотите, чтобы она ссылалась.
Разница между меткой (не UCM) и базовой линией (UCM) в том, что базовая линия - это метка, наложенная на все файлы компонента (UCM) (группы файлов), в то время как метка может быть наложена на любой элемент по вашему выбору, например, только на подмножество данной группы файлов.
Выгрузка из репозитория как рабочая копия => Выгрузка из VOB как просмотр снимка?
Почти, но правильный термин для просмотра снимка - "обновление".
Для динамического представления вам даже не нужно обновление (или svn checkout), поскольку представление ... динамическое: вы просто мгновенно видите нужную рабочую копию через сеть. Это просто другой механизм доступа.
Commit из рабочей копии в репо => Checkin из snapshot view в VOB?
Не совсем, так как commit будет касаться всех изменённых файлов, в то время как checkin будет файловым (хотя ClearCase 7.1.1 ввёл понятие "atomic checkin": см. checkin man page).
Update => Rebase?
Нет: означает обновление в представлении snapshot (ничего в динамическом представлении, поскольку оно динамическое: любые изменения, сделанные в другом представлении с аналогичным правилом выбора, будут мгновенно видны в вашем представлении)
.
Rebase - это слияние UCM, которое выполняется, будучи веткой от родительского потока к ветке от дочернего потока. В конечном счете, это просто слияние.
Revert => ??
Не тривиально... Это субстрактивное слияние.
(?) => Deliver
Deliver и Rebase - это просто слияние между веткой "source" и веткой "destination":
.
Единственным преимуществом является то, что вы можете "видеть" свой рабочий процесс слияния заранее, определяя иерархию потоков (которые являются ничем иным, как списком меток), зная, что любое слияние между:
Главное, что вам нужно знать, это то, как вы используете SVN сегодня, это называется представления снимков
в чистом регистре. В остальном clearcase имеет множество функций, таких как динамические представления, действия, производные объекты и собственная система сборки. В компании, в которой я работал, этими функциями никто не пользовался, поэтому выбор пал на clearcase по всему миру. О да, и это действительно не работает, если сервер, к которому вы подключаетесь, находится не в вашем офисе.
Большинство ясных материалов, которые я видел, сосредоточены на всех этих особенностях, поэтому я прочитал их со здоровым скептицизмом.