`bzr clone`,`bzr branch`和`bzr checkout`之间有区别吗?

时间:2010-06-05 15:44:54

标签: version-control dvcs bazaar

显然bzr clonebzr branchbzr checkout在将URL作为参数并在非bzr目录中执行时都会做同样的事情。

以后的Bazaar工作流程有什么不同吗?即bzr commitbzr update和朋友。

3 个答案:

答案 0 :(得分:14)

分支和克隆是相同的,但分支和结帐相同。

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

查看Checkout Tutorial,您会看到结帐实际上会将您直接采取的每项操作绑定到分支机构。因此,当你这样做时,你所做的任何事情都是push - 显然这是一个巨大的工作流程差异。

  

分支与结账之间的差异

     

让我们先说没有什么   你可以用Checkout来做你   不能用普通的分支机构。一个   Checkout只能启用不同的功能   默认值和工作流助手。

     

Checkout做什么

     

使用Checkout,无论何时创建   它也是当地分公司的新条目   在远程分支中创建它们。这个   对应于bzr commitbzr pull等命令。如果你试图   提交新的更改,以及远程   科有不同的状态   当地人,它会阻止你,而且   让你知道你已经过时了。   您可以使用bzr update来应用   远程本地更改。

答案 1 :(得分:4)

bzr branchbzr checkout做了很多不同的事情。它们都为您提供了一个工作树,但是bzr checkout只为您提供 工作树;直接在源存储库上提交和更新工作。 bzr branch为您提供了存储库新分支的工作树;此分支上的提交不会自动应用于源分支。我不确定clone

更新:根据评论,checkout为您提供完整的历史记录;这似乎是对的。从语义上讲,checkout看起来和感觉就像是本地分支的集中VCS结账;它通过保留本地历史记录(您可以脱机浏览 - 加号)来实现这一点,但将其链接回原始历史记录,这样您只能在最新版本时提交,并且提交会自动推送。此外,可以通过取消绑定结账而无需连接即可提交,在这种情况下,它将成为常规分支。

答案 2 :(得分:0)

正如其他海报所说," bzr checkout"是" bzr clone / branch"的超集,在那" bzr checkout"创建绑定分支。无论何时执行更新操作,绑定分支都会从源repo中拉出,并在执行提交时推送到源repo。

要绑定克隆分支或取消绑定已签出的分支,请使用" bzr bind" /" bzr unbind"。