2010-09-29 61 views
0

寻找Ruby差异引擎。所以你可以做一些与meld viewer相同的东西。ruby​​差异引擎

比如你有这样的第一套每行代码:

  1. String1中
  2. String2的
  3. STRING3

第2集:

  1. String1中
  2. STRING3
  3. 串,4

的差异会出来,以显示线2和3是不同的。

我已经在使用这一个:http://github.com/pvande/differ,但它绝对不是完美的,但很不错。我想补充一点,但是我试图在继续讨论这个问题之前找到另一个知识。

+0

Google“Ruby diff” - > http://rubydiff.rubyforge.org/。你看过吗? – Nakilon 2010-09-29 05:35:00

+0

有趣的宝石!似乎任何发展与它一起死亡,但仍值得一看 – nictrix 2010-09-30 20:30:48

+1

可能重复[diff a ruby​​ string or array](http://stackoverflow.com/questions/80091/diff-a-ruby-string-or-array) – sawa 2011-05-23 08:23:42

回答

1

“标准”解决方案是奥斯汀齐格勒的diff-lcs库,它  –顾名思义  –实现最长公共子序列算法。更准确地说,McIlroy和Hunt的LCS算法。该库是Mario I. Wolczko从1993年开始的McIlroy-Hunt算法的Smalltalk实现以及Perl库的一个端口。

不幸的是,自2004年以来还没有一个版本发布。从1976年以来McIlroy-Hunt算法没有改变,但是Ruby的String处理已经在Ruby 1.9中发生了很大变化。

+0

感谢您的历史和理解,我现在将会使用同样的宝石,但是计划添加或创建更灵活的东西。 – nictrix 2010-10-16 05:26:19