【问题标题】:Cheap Copy(hard link) in SVN branchSVN 分支中的廉价副本(硬链接)
【发布时间】:2013-01-04 02:33:12
【问题描述】:

我读到 SVN 的“分支”使用修订版的廉价副本(硬链接)。链接在这里。 http://svnbook.red-bean.com/en/1.7/svn.branchmerge.using.html “创建一个分支”一章会处理这个问题。

但这本书还说“就 Subversion 而言,这两个提交影响了不同存储库位置的不同文件。”在“使用您的分支”一章中。

我认为这些是矛盾的。 如果分支是主干中修订的硬链接,则提交到分支应该会影响主干,更不用说分支本身了。

“两个提交影响不同存储库位置的不同文件”怎么可能?

【问题讨论】:

    标签: svn branch commit hardlink


    【解决方案1】:

    在 'svn copy' 之后,分支实际上是一个修订版的硬链接。

    但是如果有东西被提交到那个分支,一个新的修订会通过'bubble-up'方法创建。 所以那个分支不再是一个简单的硬链接了。

    关于'bubble-up' 的文档很有帮助。

    【讨论】:

      【解决方案2】:

      是的,SVN 使用类似于硬链接的方式来引用相同版本的文件。但是,一旦您修改了文件,它就会从该硬链接中分离出来,以创建该特定文件的修订版。分支的问题是大多数时候您只更改数百个文件中的几个。因此,“廉价复制”的处理方式是使分支既节省时间又节省存储。

      正如你所指的文件所说:

      Subversion 的存储库有一个特殊的设计。当你复制一个 目录,您无需担心存储库增长 巨大的——Subversion 实际上并没有复制任何数据。相反,它 创建一个指向现有树的新目录条目。如果 你是一个有经验的 Unix 用户,你会认识到这是一样的 硬链接背后的概念。

      随着对以下文件和目录的进一步更改 复制的目录,Subversion 继续使用这个硬链接 它可以的概念。它仅在必要时复制数据 消除不同版本的对象的歧义。

      【讨论】:

      • 谢谢,“Subversion 继续在可能的地方使用这个硬链接概念”是模棱两可的。但是现在我在阅读了 Subversion 的“冒泡”之后才知道这意味着什么。
      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多