diff_match_patch: Генерация вида бок о бок - PullRequest
6 голосов
/ 02 июня 2011

Я использую google-diff-match-patch с моим Java-приложением для создания diff. Я использую метод diff_prettyHtml для генерации HTML-вывода diff.

Однако мне бы хотелось иметь два разных выхода, чтобы я мог расположить их рядом, чтобы пользователю было легче видеть различия. (Например, как Eclipse.)

Есть ли в этой библиотеке что-нибудь, что я могу использовать для достижения этой цели? Как бы ты сделал это? (Я бы не стал использовать другую библиотеку, если это возможно.)

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

Если вы не пытаетесь использовать HTML, в таком случае я бы предложил использовать DaisyDiff , что вы, вероятно, захотите сделать с diff-match-patch - разность строк, описано на вики-странице проекта . В основном это включает в себя создание массива хеш-кодов, по одному для каждой строки слева и справа, и отслеживание этих хеш-кодов относительно линий на карте, а затем запуск этих массивов с помощью алгоритма сравнения. Затем вы используете вывод diff вместе с картой для регидратации подсветки влево и вправо в зависимости от ситуации.

0 голосов
/ 11 июля 2011

Я попытался реализовать другой подход в Python:

http://code.activestate.com/recipes/577784-line-based-side-by-side-diff/

Неудачные тесты приветствуются.

...