Clearcase - разница между обновлением и rebase

Недавно я был брошен в изучение ClearCase (я пришел из фона с git и svn - я отчаянно пропустил их обоих:)) и пережевывал это на некоторое время: в представлении моментального снимка в чем разница между обновлением и rebase?

Я знаю, что есть различия (и, честно говоря, я начал игнорировать "обновление" вообще, потому что он никогда не делает то, что я хочу (чтобы снести изменения, которые недавно выпустили другие разработчики (git pull, svn update ))), Я просто не понимаю, в чем разница (и документы cc менее полезны по этому вопросу (для бонусных очков: любые указатели на хорошие ресурсы cc (что-то похожее на svn-book или страницы git), например))). Да, это предложение one и полдюжины в скобках.

Ответ 1

Обновление строго для моментального снимка: см. раздел разница между моментальным снимком и динамическим представлением.

Когда вы выполняете переустановку, используя представление моментального снимка, эта операция (которая изменяет базовые линии фундамента потока, связанные с представлением), будет завершена обновлением указанного моментального снимка.

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

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

Для хорошего первого чтения:

Ответ 2

Если мы не поняли, поток = ветвь в общем члене.

Для UCM обновление обычно полезно только при работе с общим потоком, так что другой разработчик может проверять файлы в этом потоке, над которым вы работаете. В этом случае вы используете "обновление", чтобы вытащить изменения, сделанные этим разработчиком в том же потоке.

Батарея вытягивает изменения, сделанные в центральном потоке интеграции, которые были совершены разными разработчиками в вашей компании из их соответствующих потоков. Фиксирование потоком субпотока в интеграцию называется "доставить", что является противоположностью rebase.

Ответ 3

Обновление только обновляет представление моментального снимка, чтобы оно соответствовало соответствующим версиям в ClearCase.

Rebase для проектов UCM - он объединяет изменения с последней рекомендованной базовой линии в потоке интеграции в ваш личный поток разработки.

Обычно вы используете обновление для снимков моментальных снимков не-UCM файлов, тогда как вы используете rebase для проектов UCM.

Ответ 4

Из того, что я понимаю, обновление Clearcase похоже на merge в git.

  • Он переносит изменения, а затем добавляет их как новую фиксацию в этой ветке.
  • Базовая метка не изменяется.

С другой стороны, перебаза похожа на rebase в git.

  • Если вы переадресовываете другой ярлык, то, как переписывание вашей истории, чтобы показать, что эта ветка была сделана с этой новой метки.
  • Это позволяет продолжить разработку на ветке функций, а затем, прежде чем вы отпустите свои изменения, вы можете rebase отнести свою ветку к последней официальной метке.