Version control “bzr克隆”、“bzr分支”和“bzr签出”之间有区别吗?
显然,Version control “bzr克隆”、“bzr分支”和“bzr签出”之间有区别吗?,version-control,dvcs,bazaar,Version Control,Dvcs,Bazaar,显然,bzr clone、bzr branch和bzrcheckout当给定一个URL作为参数并在非bzr目录中执行时,它们都做同样的事情 以后的集市工作流程有什么不同吗?i、 e.bzr提交,bzr更新和朋友。bzr分支机构和bzr签出做了非常不同的事情。它们都给你一个工作树,但是bzrcheckout只给你一个工作树;直接在源存储库上提交和更新bzr branch提供了存储库新分支的工作树;此分支上的提交不会自动应用于源分支。我不确定是否要克隆clone 更新:根据评论,结帐提供完整的历史记
bzr clone
、bzr branch
和bzrcheckout
当给定一个URL作为参数并在非bzr目录中执行时,它们都做同样的事情
以后的集市工作流程有什么不同吗?i、 e.
bzr提交
,bzr更新
和朋友。bzr分支机构
和bzr签出
做了非常不同的事情。它们都给你一个工作树,但是bzrcheckout
只给你一个工作树;直接在源存储库上提交和更新bzr branch
提供了存储库新分支的工作树;此分支上的提交不会自动应用于源分支。我不确定是否要克隆clone
更新:根据评论,
结帐
提供完整的历史记录;这似乎是对的。从语义上讲,签出
看起来和感觉上都像是一个集中的VCS签出,分支机构位于本地;它通过保留本地历史记录(您可以脱机浏览-a plus)来实现这一点,但将其链接回原始历史记录,以便您只能在更新时提交,并自动推送提交。此外,通过解除签出绑定,可以在没有连接的情况下提交,在这种情况下,签出将成为常规分支。分支和克隆是相同的,但分支和签出不相同
$ bzr help branch
...
Aliases: get, clone
See also: checkout
$bzr帮助处
...
别名:获取、克隆
另请参见:结帐
查看,您将看到签出实际上将您执行的每个操作直接绑定到分支。所以你做的任何事情本质上都是推送,显然这是一个巨大的工作流程差异
分支和签出之间的区别
让我们先说什么都没有
你可以用你想要的结账单
不能用普通的树枝。A.
签出只是启用不同的功能
默认值和工作流帮助程序
结帐是做什么的
使用签出,无论何时创建
本地分支机构中的新条目
在远程分支中创建它们。这
对应于像bzr这样的命令
提交
和bzr拉取
。如果你试图
提交新的更改,然后远程
分支的状态与
本地的,它会阻止你,和
让你知道你已经过时了。
您可以使用bzr update
应用
远程更改在本地进行
正如其他海报所说,“bzr签出”是“bzr克隆/分支”的超集,因为“bzr签出”创建了一个绑定分支。每当执行更新操作时,绑定分支从源repo拉入,每当执行提交时,绑定分支推送到源repo
要绑定克隆的分支或解除绑定签出的分支,请使用“bzr绑定”/“bzr解除绑定”。不要使用
bzr克隆
。现在它是bzr分支的别名,但将来它可能会被更改为做不同的事情。因此checkout将bzr切换到类似svn的模式,失去了分布式版本的所有好处control@knittl:不是全部,因为您仍然可以进行另一个分支的结帐,例如。。。Bazaar的一个优点是它提供了多种工作流程,结帐可以让来自集中VCSE的人们放心。除了PhiLho的观点,结帐可以让一个人拥有多个功能分支,而无需为每个分支建立工作树。通过使用bzr-switch
而不是cd
在分支之间切换,代码可以始终位于同一目录中。这对于使用IDE之类的工具或提供web项目的本地版本非常方便。@knittl此外,您还可以在脱机时浏览历史记录、注释和制作差异。如果你想提交你的连接,你可以取消绑定(这样它会立即变成一个常规的分支),然后提交。这是错误的。bzr校验本质上是bzr分支+bzr绑定。您确实可以获得完整的分支,例如,您可以在脱机时浏览日志、差异和历史记录。轻量级的签出只会给你一棵树。