跟踪文本文件修订版之间的行或段落的更改

时间:2014-08-22 14:36:29

标签: python algorithm version-control wiki

我正在研究在wiki上构建内联评论系统(但这不是 问题)。首先想到的是能够将注释与具有唯一ID的行,段落或字符串相关联。然后让这个关联对wiki的多次编辑保持有效。

例如,从此输入:

R1:

1 One
2 Two
3 
4 Three
5 Four

R2:

1 One
2 Three
3 Two
4
5 Four

我希望在1⇒1,2⇒3,3⇒4,5⇒5之间有一个映射,并且知道添加了新的第2行,并删除了4。处理第4行移动到第2行可能开始做出一些猜测,我不确定。

有很多工具可以执行类似的文本操作(不,我在工具之后)。我想到了差异,版本控制和修订合并。 是否有众所周知的算法来跟踪文件更改之间的内容?我的偏好是python,但我也有兴趣了解其他人。

1 个答案:

答案 0 :(得分:1)

由于您已经听说过diff,因此您可能对它所基于的Hunt-McIlroy algorithm(及其类型的其他工具)感兴趣。顺便说一下,diff在Python中可用作difflib

实际修订跟踪(就像Word启用“跟踪更改”时所做的那样)需要以某种方式标记文本,而无法使用纯文本进行标记。但是差异和合并算法非常善于解决这个问题。