Bazaar的当地分店?

时间:2009-10-29 18:29:12

标签: git branch bazaar

我最近一直在玩Git,以掌握分布式版本控制。现在我正在看Bazaar,但是无法弄清楚如何创建一个本地分支,即当我想提交更改时我不需要推送的分支。有了Git,我会做

git branch branch_name

git checkout -b branch_name

然后我可以在我的本地分支中工作,随时提交更改,而无需将更改推送到远程仓库。当我通过分支时,我可以将它合并到我的本地主分支。如果我想,我可以将这些更改推送到远程仓库。

Bazaar有可能吗? Bazaar看起来更像SVN,分支只是单独的目录,所以也许不是。

4 个答案:

答案 0 :(得分:4)

是的,你绝对可以做到。

假设在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。

答案 1 :(得分:3)

如果以正确的方式设置存储库,则可以采用与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 :(得分:2)

旧问题,但现在似乎colocated branches是这样做的方法。 Bzr包含一个plugin,具有各种便利功能,包括colo-init用于创建支持colocated-branch的存储库,colo-branch用于实际使用/创建分支(我还没有广泛使用这些功能,所以我可能有点混乱..)

答案 3 :(得分:1)

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