【发布时间】:2020-12-05 01:01:54
【问题描述】:
(我找到了a related issue。它没有提到 Git。还有一个名为 Copy Paste Detector 的工具,但它是特定于代码的,而不是纯文本(也不是 git-aware)。)
我将知识库保存为一组纯 markdown(纯文本)文件,并在 git 中跟踪对其的更改。
假设 git diff 显示缺失的大块文本。可能是我删除了它,也可能是我移动了它(在同一个文件中,或移动到另一个文件中)。
我希望我有一些简单的方法可以知道是哪一个。目前我 grep 删除子字符串的整个知识库。如果我没有找到,我会再找几个。我可能应该模糊 grep —— 但即使那样它仍然可能不起作用,因为也许我移动了大部分文本,但没有移动我模糊 grep 的特定子字符串。
最好是一个 git-aware 工具,它可以查找删除和插入之间的模糊匹配。理想情况下可以忽略空格。
这样的事情存在吗?或者如果没有,是否可以在没有大量工作的情况下拼凑起来?
【问题讨论】:
-
Git 的
git blame实际上在某种程度上试图解决这个问题。主要问题是您必须查看代码移动到 的文件,然后它会找到代码来自 的文件。它(目前)不具备反过来工作的能力。
标签: git string-matching git-diff