我一直在考虑使用像SVN这样的版本控制系统作为我使用的几台PC之间的通用备份和同步工具。这将适用于所有类型的数据,包括MP3和翻录的DVD - 大量数据(120gb +)。
我的主要问题是SVN在.svn
目录中创建了每个版本化文件的副本。虽然我可以看到这在大多数情况下非常有用,但对于我的目的而言,这完全没有必要,并且大量浪费磁盘空间。
是否存在不会在工作副本中创建文件副本的VCS?
编辑以澄清:我只是在谈论每台计算机上所需文件的大小。对于SVN,这意味着工作副本及其元文件的大小 - 对于DVCS来说,这就是WC和存储库的大小。
答案 0 :(得分:9)
Git非常节俭。
与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选项。