显然bzr clone
,bzr branch
和bzr checkout
在将URL作为参数并在非bzr目录中执行时都会做同样的事情。
以后的Bazaar工作流程有什么不同吗?即bzr commit
,bzr update
和朋友。
答案 0 :(得分:14)
分支和克隆是相同的,但分支和结帐不相同。
$ bzr help branch ... Aliases: get, clone See also: checkout
查看Checkout Tutorial,您会看到结帐实际上会将您直接采取的每项操作绑定到分支机构。因此,当你这样做时,你所做的任何事情都是push
- 显然这是一个巨大的工作流程差异。
分支与结账之间的差异
让我们先说没有什么 你可以用Checkout来做你 不能用普通的分支机构。一个 Checkout只能启用不同的功能 默认值和工作流助手。
Checkout做什么
使用Checkout,无论何时创建 它也是当地分公司的新条目 在远程分支中创建它们。这个 对应于
bzr commit
和bzr pull
等命令。如果你试图 提交新的更改,以及远程 科有不同的状态 当地人,它会阻止你,而且 让你知道你已经过时了。 您可以使用bzr update
来应用 远程本地更改。
答案 1 :(得分:4)
bzr branch
和bzr checkout
做了很多不同的事情。它们都为您提供了一个工作树,但是bzr checkout
只为您提供 工作树;直接在源存储库上提交和更新工作。 bzr branch
为您提供了存储库新分支的工作树;此分支上的提交不会自动应用于源分支。我不确定clone
。
更新:根据评论,checkout
为您提供完整的历史记录;这似乎是对的。从语义上讲,checkout
看起来和感觉就像是本地分支的集中VCS结账;它通过保留本地历史记录(您可以脱机浏览 - 加号)来实现这一点,但将其链接回原始历史记录,这样您只能在最新版本时提交,并且提交会自动推送。此外,可以通过取消绑定结账而无需连接即可提交,在这种情况下,它将成为常规分支。
答案 2 :(得分:0)
正如其他海报所说," bzr checkout"是" bzr clone / branch"的超集,在那" bzr checkout"创建绑定分支。无论何时执行更新操作,绑定分支都会从源repo中拉出,并在执行提交时推送到源repo。
要绑定克隆分支或取消绑定已签出的分支,请使用" bzr bind" /" bzr unbind"。