7

我正在寻找一种快速但不那么脏的方法来对总共大约 80 个演出的一堆文件进行快照。这里的问题是许多文件大约 1 GB 大。

对于这类事情,最好的免费版本控制系统是什么?

我知道 ZFS 是一种选择,但我宁愿先尝试其他方法。

4

2 回答 2

6

Subversion 将在大多数情况下以良好的态度处理您 > 1GB 的文件,但如果有很多大的变化,预计差异的生成需要一段时间......

Subversion 最佳实践有一个关于大文件的部分:

Subversion 的一个很好的特性是,根据设计,它可以处理的文件大小没有限制。文件在 Subversion 客户端和服务器之间双向“流式”发送,使用网络每一侧的少量恒定内存。

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

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

. 将文件复制到 .svn/tmp/ (可能需要一段时间,并暂时使用额外的磁盘空间))

. 在 tmpfile 和原始副本之间执行二进制差异,或者在 tmpfile 和新添加的空文件之间执行二进制差异。(计算可能需要很长时间,即使最终可能只有少量数据通过网络发送)

. 将 diff 发送到服务器,然后将 tmpfile 移动到 .svn/text-base/

因此,虽然理论上对文件的大小没有限制,但您需要注意,非常大的文件可能需要相当多的耐心等待,而您的客户却突然离开。但是,您可以放心,与 CVS 不同的是,您的大文件不会使服务器无法运行或影响其他用户。

于 2009-06-30T14:14:49.057 回答
3

不过,您可能真的想尝试Monotone,只需检查一下。你可能会找到你正在寻找的东西。

于 2009-06-30T14:23:52.453 回答