Java 如何跨文件版本存储文件的增量?

Java 如何跨文件版本存储文件的增量?,java,c,linux,diff,ms-office,Java,C,Linux,Diff,Ms Office,当我将文件上载到本地repo以存储文件时,我希望保留文件增量(MS Office/pdf/flash/images)。您可以想象我在本地使用的这个内部box.net或dropbox 是否有任何开源工具可以存储文件的差异并在此基础上重新生成文件 假设我上载file.doc(版本1),然后对文件进行一些更改,然后再次上载file.doc(版本2)。现在我可以再次保存整个文件,或者只保存两个文件的增量。当我访问文件的版本2时,我获取该增量并在版本1上应用,然后显示用户版本2 这个内部项目的全部目的是节

当我将文件上载到本地repo以存储文件时,我希望保留文件增量(MS Office/pdf/flash/images)。您可以想象我在本地使用的这个内部box.net或dropbox

是否有任何开源工具可以存储文件的差异并在此基础上重新生成文件

假设我上载file.doc(版本1),然后对文件进行一些更改,然后再次上载file.doc(版本2)。现在我可以再次保存整个文件,或者只保存两个文件的增量。当我访问文件的版本2时,我获取该增量并在版本1上应用,然后显示用户版本2

这个内部项目的全部目的是节省一些空间


我正在寻找一些开源工具来帮助我实现这个目标。

大多数版本控制软件基本上就是这样工作的。有些保留原始版本,还存储差异以创建最新版本;有些保留最新版本的完整性,还存储差异以创建原始版本

它们都使用二进制文件“工作”,以获得合适的“工作”值。(二进制文件之间的增量可以与原始文件一样大。)


您可以尝试在谷歌上搜索“二进制文件的版本控制”,或者查看。

Git和Hg都使用Delta。。不一定适用于二进制数据(如图像或视频),但它们都适用于文本(如基于XML的文档文件)。Svn等c-VCS可以更好地处理此类二进制文件。。(尽管我没有将SVN用于代码,但我已经非常成功地使用了它。)关于空间与时间的关系,请参阅。