I am looking for a quick but not-so-dirty way to do snapshots of a bunch of files totaling about 80 gigs. The issue here is that many of the files are around 1 GB large.
我正在寻找一种快速但不那么脏的方法来制作总计约80演出的一堆文件的快照。这里的问题是许多文件大约1 GB。
What is the best free version control system for this type of thing?
什么是这种类型的最好的免费版本控制系统?
I know ZFS is an option, but I'd rather try something else first.
我知道ZFS是一个选项,但我宁愿先尝试别的。
2 个解决方案
#1
Subversion will handle your > 1GB files with good natured aplomb for the most part but if there are many large changes expect the generation of diffs to take a while...
Subversion将处理你的> 1GB文件,大部分都有良好的沉着,但是如果有很多大的变化,期望差异的产生需要一段时间......
Subversion Best practices has a section on large files:
Subversion最佳实践有一个关于大文件的部分:
A nice feature of Subversion is that by design, there is no limit to the size of files it can handle. Files are sent "streamily" in both directions between Subversion client and server, using a small, constant amount of memory on each side of the network.
Subversion的一个很好的功能是,通过设计,它可以处理的文件大小没有限制。文件在Subversion客户端和服务器之间双向“流畅地”发送,在网络的每一侧使用一小块恒定的内存。
Of course, there are a number of practical issues to consider. While there's no need to worry about files in the kilobyte-sized range (e.g. typical source-code files), committing larger files can take a tremendous amount of both time and space (e.g. files that are dozens or hundreds of megabytes large.)
当然,还有许多实际问题需要考虑。虽然不需要担心千字节大小范围内的文件(例如典型的源代码文件),但提交较大的文件会占用大量的时间和空间(例如,数十或数百兆字节的文件)。
To begin with, remember that your Subversion working copy stores pristine copies of all version-controlled files in the .svn/text-base/ area. This means that your working copy takes up at least twice as much disk space as the original dataset. Beyond that, the Subversion client follows a (currently unadjustable) algorithm for committing files:
首先,请记住您的Subversion工作副本存储.svn / text-base /区域中所有版本控制文件的原始副本。这意味着您的工作副本占用的磁盘空间至少是原始数据集的两倍。除此之外,Subversion客户端遵循(当前不可调整的)提交文件的算法:
. Copies the file to .svn/tmp/ (can take a while, and temporarily uses extra disk space))
。将文件复制到.svn / tmp /(可能需要一段时间,并暂时使用额外的磁盘空间))
. Performs a binary diff between the tmpfile and the pristine copy, or between the tmpfile and an empty-file if newly added. (can take a very long time to compute, even though only a small amount of data might ultimately be sent over the network)
。在tmpfile和pristine副本之间执行二进制diff,或者在新添加的tmpfile和空文件之间执行二进制diff。 (可能需要很长时间才能计算,即使最终只能通过网络发送少量数据)
. Sends the diff to the server, then moves the tmpfile into .svn/text-base/
。将diff发送到服务器,然后将tmpfile移动到.svn / text-base /
So while there's no theoretical limit to the size of your files, you'll need to be aware that very large files may require quite a bit of patient waiting while your client chugs away. You can rest assured, however, that unlike CVS, your large files won't incapacitate the server or affect other users.
因此,虽然对文件大小没有理论上的限制,但您需要注意的是,非常大的文件可能需要相当多的患者等待,而您的客户端会突然离开。但是,您可以放心,与CVS不同,您的大文件不会使服务器失效或影响其他用户。
#2
You might really want to try Monotone though, just check it out. You might find what you are looking for with it.
您可能真的想尝试Monotone,只需检查一下。你可能会找到你想要的东西。
#1
Subversion will handle your > 1GB files with good natured aplomb for the most part but if there are many large changes expect the generation of diffs to take a while...
Subversion将处理你的> 1GB文件,大部分都有良好的沉着,但是如果有很多大的变化,期望差异的产生需要一段时间......
Subversion Best practices has a section on large files:
Subversion最佳实践有一个关于大文件的部分:
A nice feature of Subversion is that by design, there is no limit to the size of files it can handle. Files are sent "streamily" in both directions between Subversion client and server, using a small, constant amount of memory on each side of the network.
Subversion的一个很好的功能是,通过设计,它可以处理的文件大小没有限制。文件在Subversion客户端和服务器之间双向“流畅地”发送,在网络的每一侧使用一小块恒定的内存。
Of course, there are a number of practical issues to consider. While there's no need to worry about files in the kilobyte-sized range (e.g. typical source-code files), committing larger files can take a tremendous amount of both time and space (e.g. files that are dozens or hundreds of megabytes large.)
当然,还有许多实际问题需要考虑。虽然不需要担心千字节大小范围内的文件(例如典型的源代码文件),但提交较大的文件会占用大量的时间和空间(例如,数十或数百兆字节的文件)。
To begin with, remember that your Subversion working copy stores pristine copies of all version-controlled files in the .svn/text-base/ area. This means that your working copy takes up at least twice as much disk space as the original dataset. Beyond that, the Subversion client follows a (currently unadjustable) algorithm for committing files:
首先,请记住您的Subversion工作副本存储.svn / text-base /区域中所有版本控制文件的原始副本。这意味着您的工作副本占用的磁盘空间至少是原始数据集的两倍。除此之外,Subversion客户端遵循(当前不可调整的)提交文件的算法:
. Copies the file to .svn/tmp/ (can take a while, and temporarily uses extra disk space))
。将文件复制到.svn / tmp /(可能需要一段时间,并暂时使用额外的磁盘空间))
. Performs a binary diff between the tmpfile and the pristine copy, or between the tmpfile and an empty-file if newly added. (can take a very long time to compute, even though only a small amount of data might ultimately be sent over the network)
。在tmpfile和pristine副本之间执行二进制diff,或者在新添加的tmpfile和空文件之间执行二进制diff。 (可能需要很长时间才能计算,即使最终只能通过网络发送少量数据)
. Sends the diff to the server, then moves the tmpfile into .svn/text-base/
。将diff发送到服务器,然后将tmpfile移动到.svn / text-base /
So while there's no theoretical limit to the size of your files, you'll need to be aware that very large files may require quite a bit of patient waiting while your client chugs away. You can rest assured, however, that unlike CVS, your large files won't incapacitate the server or affect other users.
因此,虽然对文件大小没有理论上的限制,但您需要注意的是,非常大的文件可能需要相当多的患者等待,而您的客户端会突然离开。但是,您可以放心,与CVS不同,您的大文件不会使服务器失效或影响其他用户。
#2
You might really want to try Monotone though, just check it out. You might find what you are looking for with it.
您可能真的想尝试Monotone,只需检查一下。你可能会找到你想要的东西。