dgo*_*rur 8 git version-control text
似乎有人必须已经这样做了,但我找不到我正在寻找的最终产品.
使用文本版本控制系统是费力的.你需要在每个句子的末尾添加换行符,甚至在长句中.看一下git源代码,似乎通过更改一些检查的例程,'\n'
应该可以让git(或任何其他版本控制系统)匹配'\n'
或模式'\\.\s'
.然而,这是一项需要精心完成的任务,或者我可以看到事情非常糟糕.
有谁知道有人已经这样做了吗?还是其他任何选择?
谢谢!
任何版本控制系统都应该能够处理散文。问题是它可以如何有效地做到这一点。
该git diff
命令使用类似的东西diff -u
来显示文件的两个版本之间的差异。如果文件由一行很长的文本组成(即,字符之间有很多'\n'
字符),那么有意义地显示差异可能会有些困难;它可能会显示两个 5000 个字符的行,只有一个字符更改。
但这并不一定意味着这就是git
存储文件的方式。我对 git 的内部存储格式不是很熟悉,但我的理解是它在二进制文件方面做得相当好,二进制文件可能有很多兆字节的数据而没有'\n'
字符。
请注意,一些较旧的版本控制系统(SCCS、RCS)可能会逐行存储版本之间的差异。但即使对于这样的系统,最坏的情况是您将存储每个版本的完整副本以及一些开销。系统应该仍然能够正常工作。
请注意,git diff --word-diff
至少应该部分解决比较版本的问题。