代码之家  ›  专栏  ›  技术社区  ›  knittl

“bzr clone”、“bzr branch”和“bzr checkout”之间有区别吗?

  •  10
  • knittl  · 技术社区  · 14 年前

    明显地 bzr clone , bzr branch bzr checkout 当给定一个URL作为参数并在非bzr目录中执行时,它们都会做同样的事情。

    以后的集市工作流程有什么不同吗?即 bzr commit , bzr update 和朋友们。

    3 回复  |  直到 13 年前
        1
  •  14
  •   Mark Rushakoff    14 年前

    分支和克隆是相同的,但是分支和签出是 相同的。

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

    看着 Checkout Tutorial ,您将看到签出基本上绑定了您直接对分支执行的每个操作。所以你所做的一切 push 当你这样做的时候——很明显这是一个巨大的工作流差异。

    分公司和结帐的区别

    我们先说什么都没有 你可以用一个收银台 不能用普通的树枝。一 结帐只启用不同的 默认值和工作流帮助器。

    结账是做什么的

    使用签出,无论何时创建 本地分支中的新条目 在远程分支中创建它们。这个 对应于如下命令 bzr commit bzr pull . 如果你试图 提交新的更改,然后 分支的状态与 当地的,它会阻止你,并且 告诉你你已经过时了。 你可以使用 bzr update 应用 本地远程更改。

        2
  •  4
  •   user334639    13 年前

    bzr branch bzr checkout 做非常不同的事情。他们都给你一棵树,但是 BZR校验 给你 只有 工作树;提交和更新直接在源存储库上/从源存储库中工作。 BZR分公司 为您提供存储库新分支的工作树;此分支上的提交不会自动应用于源分支。我不确定。 clone .

    更新 :根据评论, checkout 给你完整的历史;这似乎是正确的。语义上, 结帐 看起来和感觉像是一个集中的VCS在本地与分支结帐;它通过保存本地历史记录(您可以离线浏览)来实现这一点,但是将其链接回原始历史记录,这样您就只能在最新的情况下提交,提交被自动推送。此外,通过取消绑定签出可以在没有连接的情况下进行提交,在这种情况下,它将成为常规分支。

        3
  •  0
  •   Stavros Korokithakis    13 年前

    正如其他海报所说,“bzr checkout”是“bzr clone/branch”的超集,其中“bzr checkout”创建了一个 结合分支 . 每当执行更新操作时,绑定的分支从源repo中拉出,每当执行提交时,将推送到源repo。

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