Есть ли разница между `bzr clone`,` bzr branch` и `bzr checkout`? - PullRequest
10 голосов
/ 05 июня 2010

Очевидно, bzr clone, bzr branch и bzr checkout все делают одно и то же, когда получают URL в качестве параметра и выполняются в каталоге, отличном от bzr.

Есть ли какая-то разница для дальнейшего использования Bazaar? т.е. bzr commit, bzr update и друзья.

Ответы [ 3 ]

14 голосов
/ 05 июня 2010

Ветвление и клонирование одинаковы, но ветвление и извлечение не одинаковы.

$ bzr help branch
...
Aliases:  get, clone
See also: checkout

Просматривая учебник Checkout , вы увидите, что checkout по сути связывает каждое действие, которое вы выполняете, непосредственно с веткой. Так что все, что вы делаете, по существу push редактируется, когда вы делаете это - очевидно, это огромная разница в рабочем процессе.

Разница между Отделением и Оформлением заказа

Начнем с того, что ничего нет вы можете сделать с Checkout, что вы не может делать с простыми ветвями. Оформить заказ просто позволяет разные настройки по умолчанию и рабочие процессы.

Что делает Checkout

С Checkout, когда вы создаете новые записи в местном отделении, это также создает их в удаленном филиале. это соответствует командам типа bzr commit и bzr pull. Если вы попытаетесь совершить новые изменения, и удаленный Филиал имеет другое состояние, чем местный, он вам помешает, и сообщить, что вы устарели. Вы можете использовать bzr update, чтобы применить удаленные изменения локально.

4 голосов
/ 05 июня 2010

bzr branch и bzr checkout делают очень разные вещи.Они оба дают вам рабочее дерево, но bzr checkout дает вам только рабочее дерево;коммиты и обновления работают напрямую в / из исходного репозитория.bzr branch дает вам рабочее дерево новой ветви репозитория;коммиты в этой ветке не будут автоматически применяться к исходной ветке.Я не уверен в clone.

Обновление : согласно комментарию, checkout дает вам полную историю;это кажется правильным.Семантически checkout выглядит и ощущается как централизованная проверка VCS с локальной ветвью;он реализует это, сохраняя локальную историю (которую вы можете просматривать в автономном режиме - плюс), но связывая ее с исходной историей, чтобы вы могли фиксировать только тогда, когда вы обновлены, а фиксации автоматически отправляются.Кроме того, можно выполнить фиксацию без подключения, открепив извлечение, и в этом случае оно становится обычной ветвью.

0 голосов
/ 31 января 2012

Как говорили другие авторы, "bzr checkout" - это расширенный набор "bzr clone / branch", в котором "bzr checkout" создает связанную ветвь .Связанные ветви извлекают из исходного репо всякий раз, когда выполняется операция обновления, и передают в исходное репо всякий раз, когда выполняется фиксация.

Чтобы связать клонированную ветвь или открепить извлеченную ветвь, используйте «bzr bind» /"bzr unbind".

...