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

Python 跟踪文本文件修订之间的行或段落更改,python,algorithm,version-control,wiki,Python,Algorithm,Version Control,Wiki,我正在研究在wiki上构建内联评论系统(但这不是问题)。首先想到的是能够将注释与具有唯一ID的行、段落或字符串相关联。然后使此关联在多次编辑wiki时保持有效 例如,从该输入: R1: R2: 我想在第1行之间做一个映射⇒1, 2⇒3, 3⇒4, 5⇒5并知道添加了新的第2行,删除了第4行。我不确定,处理4号线移到2号线的问题可能开始让人胡思乱想了 有很多工具可以执行类似的文本操作(不,我不是在寻找工具)。差异、版本控制和修订合并浮现在脑海中是否有众所周知的算法来跟踪文件更改之间的内容?我喜欢p

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

例如,从该输入:

R1:

R2:

我想在第1行之间做一个映射⇒1, 2⇒3, 3⇒4, 5⇒5并知道添加了新的第2行,删除了第4行。我不确定,处理4号线移到2号线的问题可能开始让人胡思乱想了


有很多工具可以执行类似的文本操作(不,我不是在寻找工具)。差异、版本控制和修订合并浮现在脑海中是否有众所周知的算法来跟踪文件更改之间的内容?我喜欢python,但我也有兴趣了解其他内容。

既然您听说了
diff
,您可能会对它所基于的(及其类型的其他工具)感兴趣。顺便说一下,
diff
在Python中作为
difflib
提供


实际的修订跟踪(就像Word在“Track Changes”(跟踪更改)处于启用状态时所做的那样)需要以某种方式对文本进行标记,而不能真正使用纯文本进行标记。但是diff和merge算法非常擅长解决这个问题。

好吧,我得问问。我闻到了吗?我认为这是一个关于编程的非常简洁(不太宽泛)的问题,以前没有讨论过(至少没有类似的标题)。为什么要进行投票?可能是因为你可以通过谷歌搜索
diff
文本合并算法找到你想要的信息。现在多亏了我,你也可以用谷歌来跟踪变化:)
1 One
2 Two
3 
4 Three
5 Four
1 One
2 Three
3 Two
4
5 Four