哪些成熟的版本控制系统允许覆盖发现和应用增量的算法?无论是通过插件还是通过外部工具,都无关紧要。
对于特定文件类型,必须能够覆盖VCS的内部diff算法。自定义增量必须存储在存储库中,以便增量应用算法使用。
在我的例子中,内部二进制比较是不可接受的。
我的意思是完全覆盖算法,而不是使用自定义的diff程序来显示差异。
发布于 2011-03-17 19:13:05
服务器端:据我所知(我不是这方面的专家!)要做到这一点并不容易。所以你最好的办法似乎是从Apache Subversion获取源代码,并根据你的需要对其进行修改/扩展。看一看“预提交钩子”也是一个好主意。
对于客户端: ClearCase有一些很好的额外的合并工具,比如办公文档。还可以更改Tortoise SVN客户端中的diff/merge工具。
发布于 2011-03-17 19:52:02
在git的例子中,我不知道有什么简单的方法可以覆盖用于在包文件中有效存储的二进制增量的计算方法。(大多数传输都会生成包文件,以便高效地向服务器传输数据和从服务器传输数据。)
但是,您可能想看看git的bup项目。对于使用git备份大量数据的情况,这采取了直接生成git包文件的方法。这听起来和你想要做的大致相似。
[我知道您在问题中明确排除了这一点,但如果另一位读者发现这个问题,他对二进制文件的用户可见的优秀差异感兴趣,我将指出this useful example from Pro Git。]
发布于 2011-03-18 03:48:14
你绝对可以为Bazaar编写提供自定义合并算法的插件:http://doc.bazaar.canonical.com/development/en/user-guide/hooks.html#example-a-merge-plugin http://doc.bazaar.canonical.com/development/en/user-reference/hooks-help.html#merge-file-content
快速看一眼之后,我没有看到这样的东西来做差异,但我相信添加这样的东西不会那么难。我知道有像bzr-tools这样的插件可以提供替代的diff输出(cdiff,它用某种颜色打印diff )。
https://stackoverflow.com/questions/5338039
复制相似问题