磁盘空间开销最小的版本控制

时间:2009-01-19 02:01:59

标签: svn version-control

我一直在考虑使用像SVN这样的版本控制系统作为我使用的几台PC之间的通用备份和同步工具。这将适用于所有类型的数据,包括MP3和翻录的DVD - 大量数据(120gb +)。

我的主要问题是SVN在.svn目录中创建了每个版本化文件的副本。虽然我可以看到这在大多数情况下非常有用,但对于我的目的而言,这完全没有必要,并且大量浪费磁盘空间。

是否存在不会在工作副本中创建文件副本的VCS?

编辑以澄清:我只是在谈论每台计算机上所需文件的大小。对于SVN,这意味着工作副本及其元文件的大小 - 对于DVCS来说,这就是WC和存储库的大小。

4 个答案:

答案 0 :(得分:9)

对于磁盘空间,

Git非常节俭。

Git vs SVN Comparison Wiki州:

  

与SVN相比,Git的存储库和工作目录大小非常小。

     

例如,当使用fsfs后端存储在SVN 中时,据报道Mozilla存储库几乎 12 GiB。 fsfs后端还需要一个目录中的240,000多个文件来记录10年项目历史记录中的所有240,000次提交。 完全相同的历史记录仅存储在Git中,只有两个文件总共超过420 MiB。 SVN需要30倍的磁盘空间来存储相同的历史记录。

     

SVN工作目录始终包含每个文件的两个副本:一个用于实际使用的用户,另一个隐藏在.svn /中以帮助操作,例如status,diff和commit。相比之下,Git工作目录只需要一个小索引文件,每个跟踪文件存储大约100个字节的数据。在具有大量文件的项目中,这可能是每个工作副本所需的磁盘空间的重大差异。

答案 1 :(得分:4)

我认为您需要提出一个更具体的问题,以便为您要做的事情找到正确的答案。您实际上并不需要版本控制系统,而是数字资产管理系统。

http://en.wikipedia.org/wiki/Digital_asset_management

这听起来更好吗?

答案 2 :(得分:0)

实际上,我相信,至少对于文本文件,SVN只存储每个更改的文件之间的差异,而不是整个文件。此外,对于每个修订版,它仅将更改存储到已更改的文件中,而对于未更改的文件则不存储任何其他内容。除非实际的MP3文件不断变化(可能不是),否则这将是用于跟踪文件的一个不错的系统。但是,对于这样的文件,您可能最好只使用rsync来同步文件,而不用担心跟踪它们的实际历史记录。

答案 3 :(得分:0)

版本控制对二进制文件不起作用。我建议使用rsync备份而不要担心历史记录,如果你只是翻录和存储,你可能不会更改文件。

如果您不想删除源上备份中的内容,请不要在rsync中添加--delete选项。