分支SVN和GIT的成本对比

3
与GIT相比,对于创建一个包含100个文件的分支目录,两者的相对成本对比如何?哪个成本更便宜?
3个回答

4
无论有多少文件,创建分支在这两个系统中都是几乎瞬间完成的。它只是创建对特定版本号的引用。

2
@Chris Subversion 制作的是“廉价副本”,而不是复制品。在 SVN 中,分支只是指向主树的链接。只有当无法摆脱链接时,SVN 才会制作副本。http://svnbook.red-bean.com/en/1.7/svn.branchmerge.using.html - user6123723

3
在这种情况下,Subversion会创建一个指向文件夹的“符号链接”。
在Apache Subversion中复制/标记/分支是瞬间完成且廉价的。让我引用SVNBook | 使用分支的话:

廉价副本

Subversion版本库有一个特殊的设计。当你复制一个目录时,你不需要担心版本库会变得非常庞大——Subversion实际上并不会复制任何数据。相反,它创建一个新的目录条目,指向现有的树。如果你是一位经验丰富的Unix用户,你会认识到这与硬链接背后的概念相同。在复制的目录下面的文件和目录进行更改时,Subversion继续使用这个硬链接的概念。只有在需要消除对象的不同版本时才复制数据。

这就是为什么你经常听到Subversion用户谈论“廉价副本”的原因。无论目录有多大,制作副本只需要极小的时间和空间。事实上,这个特性是提交在Subversion中工作的基础:每个版本都是前一个版本的“廉价副本”,其中有一些项目被惰性地更改了。(要了解更多信息,请访问Subversion的网站,并阅读Subversion设计文档中关于“冒泡”方法的介绍。)

当然,这些复制和共享数据的内部机制对用户来说是隐藏的,用户只看到树的副本。主要的点在于,复制是廉价的,无论是时间还是空间。如果你在版本库中创建一个完全分支(通过运行svn copy URL1 URL2),这是一个快速的、恒定时间的操作。随意制作分支。

阅读 SVNBook


在发布这篇文章之前,我已经阅读了那本书。但它并没有回答我的问题。SVN和GIT之间的成本差异。 - user6123723

2
你指的是哪种成本度量标准? http://lostechies.com/derickbailey/2010/02/24/branching-strategies-the-cost-of-branching-and-merging/ 以下是SVN和GIT之间的区别。 http://www.differencebetween.net/technology/software-technology/difference-between-git-and-svn/ 这里有一个SO链接,比较了SVN 1.8分支/合并和GIT之间的差异。 How is SVN v 1.8 branching / merging compared to Git? 最后,这是SVN对分支实际上是什么(以及不是什么)的评论: “Subversion的存储库具有特殊的设计。当您复制一个目录时,您不需要担心存储库变得庞大 - Subversion实际上不会复制任何数据。相反,它创建一个指向现有树的新目录条目。如果您是经验丰富的Unix用户,您将认识到这是硬链接背后的相同概念。” http://svnbook.red-bean.com/en/1.5/svn.branchmerge.using.html

在发布此帖子之前,我已经阅读了http://svnbook.red-bean.com/en/1.7/svn.branchmerge.using.html。我只是想比较一下两者之间的成本。我也查看了其他链接。它们都谈论GIT vs SVN,但没有任何资源讨论这两个系统之间的实际成本差异(以某种方式量化成本)。实际上可能无法量化,但这也需要证明。 - user6123723
由于您正在比较分布式和集中式控制系统,某些方面您有点在比较不同的东西。我同意GIT的驱动空间和创建时间更快,因为它只使用指针(http://stackoverflow.com/questions/21766283/how-does-git-handle-branches-compared-to-svn)。 - Jon Spencer
我并不打算比较GIT和SVN的所有方面。我的问题仅限于“分支成本”。 - user6123723

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接