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
отнести свою ветку к последней официальной метке.