Местные отделения с базаром? - PullRequest
2 голосов
/ 29 октября 2009

Я недавно поигрался с Git, чтобы получить представление о распределенном контроле версий. Сейчас я смотрю на Bazaar, но не могу понять, как создать локальную ветку, то есть ветку, к которой мне не нужно переходить, когда я хочу зафиксировать изменения. С Git я бы сделал

git branch branch_name

или

git checkout -b branch_name

Затем я могу работать в своем локальном филиале, фиксируя изменения по ходу работы, не отправляя изменения в удаленное хранилище. Когда я закончу с веткой, я могу объединить ее с моей локальной веткой master. Если я захочу, я могу отправить эти изменения в удаленное хранилище.

Возможно ли это на базаре? Bazaar больше похож на SVN, поскольку ветви просто являются отдельными каталогами, так что, возможно, нет.

Ответы [ 4 ]

4 голосов
/ 29 октября 2009

Да, вы определенно можете это сделать.

Допустим, есть удаленный репозиторий на bzr + ssh: //foo.com/repo/mainline

Вы можете создать локальную ветку, выполнив:

bzr branch bzr+ssh://foo.com/repo/mainline local_branch

Теперь вы можете вносить изменения в local_branch и фиксировать их, и эти изменения находятся только в этом локальном каталоге. e.g.:

cd local_branch
touch foo
bzr add foo
bzr commit -m "Add foo."

Это добавит foo только в локальную ветку.

3 голосов
/ 16 декабря 2009

Если вы правильно настроили свой репозиторий, вы можете работать аналогично git.

cd ~/dev
bzr init-repo
bzr reconfigure --with-no-trees
mkdir branches
bzr branch bzr+ssh://foo.com/repo branches/mainline
bzr checkout --lightweight branches/mainline working

Это создаст такую ​​структуру:

/dev
    /branches
        /mainline
        <other branches go here>
    /working
        <this is your working tree>

А если вы хотите создавать ветки, вы можете сделать следующее:

cd ~/dev/checkout
bzr branch --switch ~/dev/branches/mainline ~/dev/branches/some-feature

и теперь вы будете в ветви some-feature, которая будет в той же точке, что и основная линия.

2 голосов
/ 06 октября 2012

Старый вопрос, но, похоже, что колократичные ветви - путь для этого в наши дни. Bzr включает в себя плагин с различными вспомогательными функциями, в том числе colo-init для создания репозиториев с поддержкой colocated-ветвлений и colo-branch для фактического использования / создания веток (я еще не широко использовал эти функции, поэтому Я, возможно, немного перемешался ..)

1 голос
/ 29 октября 2009

bzr отличается от git тем, что вы не можете переключать ветку, представленную рабочим каталогом. Однако вы можете переходить из своего рабочего каталога, вместо того чтобы переходить из удаленного хранилища. Так что вместо

git clone git+ssh://foo.com/repo
cd repo
git checkout -b new_branch

вы бы сделали

bzr branch bzr+ssh://foo.com/repo
bzr branch repo new_branch
...