Mic*_*tum 13 .net c# algorithm version-control
我需要编写一个简单的源代码控制系统,并想知道我将用于文件差异的算法是什么?
由于许可证问题,我不想查看现有的源代码.我需要在MPL下获得许可,因此我无法查看任何现有系统,如CVS或Mercurial,因为它们都是GPL许可的.
为了给出一些背景知识,我只需要一些非常简单的函数 - 文件夹中的二进制文件.没有子文件夹,每个文件的行为都像它自己的存储库.没有元数据,除了一些权限.
总的来说非常简单,我唯一担心的是如何只存储文件从修订版到修订版的差异,而不会浪费太多空间但也没有太低效(也许存储每个X更改的完整版本,有点像视频中的关键帧?)
Patience Diff是一种很好的算法,用于查找两个可能对人有意义的文件之间的增量.这通常比天真的"最长公共子序列"算法提供更好的结果,但结果是主观的.
话虽如此,许多现代版本控制系统在每个阶段存储完整的文件,并在以后仅在需要时计算实际差异.对于二进制文件(可能不是非常可压缩的),您可能会发现存储反向增量可能最终会更有效.
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |