Ali*_*ori 3 storage version-control git svn
我知道 SVN (Subversion) 存储文件的增量以有效地存储数据。然而,Git 稍微复杂一些。我想知道的是,如果我要存储纯 HTML、图像和 js 文件,并使用它们中的任何一个跟踪它们的更改,哪个会导致更好的存储效率,为什么?我对 HTML 文件特别感兴趣。起初应该没有太大区别。但是,随着网站的变化,尤其是首页的变化,差异应该是很明显的。
我可以同时尝试并比较它们,但是,需要很长时间才能看到任何真正的结果。因此,我决定看看哪个理论上应该更有效。
git绝对会赢,放手。这是很常见的,对于文本文件(如HTML)的Git仓库元数据的所有历史中.git的目录会比整个树的结账小。(您可能希望git gc偶尔运行一次,但git如果它注意到对象存储不是很优化,则会自动运行它)。
另一方面,对于 SVN,即使是简单的检出也至少是 2 倍——它将包含所有树以及.svn目录中的完整备份,并且不包含任何历史记录——它仍然依赖于工作服务器。
看看文章Repository Formats Matter:
Mozilla CVS 存储库是 2.7GB,导入到 Subversion 后它增长到 8.2GB。在 Git 下,它缩小到 450MB。考虑到 Mozilla 结帐大约 350MB,将整个项目历史记录(从 1998 年开始)放在稍微多一点的空间中是相当不错的。
这很难解释,但是一旦你使用 git 甚至一点点,你就会被它不可能的速度所震撼。一切都如此之快,以至于它改变了您对源代码控制的看法以及您如何使用它。
git 还有许多其他优点,但我显然不能在这里全部介绍。我建议阅读一些关于它的好书,例如ProGit。