2009-06-30 163 views
6

我正在寻找一个快速但不太脏的方法来完成大约80个演出的一组文件的快照。这里的问题是许多文件大约有1 GB左右。大文件版本控制系统?

什么是这种类型的最好的免费版本控制系统?

我知道ZFS是一个选项,但我宁愿先尝试别的。

+0

ascii还是binary? – Johan 2009-06-30 14:11:58

+0

二进制 - 虽然我不知道任何现代版本控制系统有算法区分ascii和二进制。 我会试试看,并在此发布我的结果。 – 2009-07-01 05:03:54

+0

初始提交非常繁忙,并且使用file://协议,Subversion每秒平均传输1.5 MB。该死的很慢。 – 2009-07-01 10:54:07

回答

6

Subversion会处理与温厚沉着你> 1GB的文件,在大多数情况下,但如果有很多大的变化预期的diff的产生需要一段时间...

Subversion Best practices对大型文件的部分:

Subversion的一个很好的功能是,在设计上, 可以处理的文件的大小没有限制。文件在Subversion客户端和服务器之间通过 两个方向“流”地发送,在网络的每一侧使用一个小的,恒定的内存量。

当然,还有一些实际问题需要考虑。虽然 没有必要担心在千字节大小范围内的文件(例如 典型的源代码文件),但提交较大的文件可能需要大量的时间和空间(例如,数十个 或数百兆字节大)。

首先,请记住,你的Subversion工作拷贝存储所有版本控制文件的原始 副本中的.svn /文基/ 区域。这意味着您的工作副本至少占原始数据集磁盘空间的两倍以上。除此之外,Subversion 客户端遵循用于提交 文件的(当前不可调整的)算法:

。将文件复制到.svn/tmp /(可能需要一段时间,并且临时使用 多余的磁盘空间))

。在tmpfile和 原始副本之间执行二进制比较,如果新添加 ,则在tmpfile和空文件之间执行二进制比较。 (可能需要很长时间来计算,即使最终可能通过网络发送少量数据)

。发送 DIFF到服务器,然后移动到TMPFILE的.svn /文基/

所以 尽管没有理论上的限制文件的大小,你会 需要注意的是非常大的文件可能需要相当多的病人等待,而您的客户突然离开。但是,您可以放心, 与CVS不同,您的大文件不会损坏 服务器或影响其他用户。

3

虽然你可能真的想尝试Monotone,但只是检查出来。你可能会发现你在找什么。

相关问题