Делаем diff разборчивее

Я ищу инструмент, который будет принимать вывод diff / debdiff (более конкретно, и , вывод этого скрипта ) и отображать результат сравнения в высокой степени читаемый, графический способ. Любые указатели будут оценены.

В идеале, это будет GTK +, эквивалент FOSS MDR .

Meld, Diffuse и подобное программное обеспечение не подходят для этой цели, так как они предназначены для автономной работы и не принимают входные данные от stdin.

12
задан 13 April 2017 в 15:23

6 ответов

Несмотря на то, что приложение KDE может быть установлено без слишком большого количества зависимостей, kdiff является отличным инструментом для редактирования и объединения различий.

0
ответ дан 13 April 2017 в 15:23

Kompare может сделать это (и является лучшим GUI diff-viewer для IMO):

./whatchanged package_name | kompare -

Обратите внимание на '-', данное в качестве аргумента входного файла. Большинство * nix-программ имеют этот интерфейс для приема вводимых по трубопроводу данных, поэтому вы, вероятно, можете использовать тот, который вам больше нравится.

0
ответ дан 13 April 2017 в 15:23

Если у вас есть только консоль, colordiff - неплохое решение.

Чтобы установить его, выполните эту команду sudo apt-get install colordiff в терминале

0
ответ дан 13 April 2017 в 15:23

Мне нравится использовать внутреннюю подсветку синтаксиса vim в качестве пейджера, чтобы я мог просматривать цветные различия. Например, поместив это в свои .bashrc:

sudo apt-get install vim
alias vless='vim -u /usr/share/vim/vimcurrent/macros/less.vim'

(а затем повторно введите .bashrc с помощью . ~/.bashrc.) Затем вы можете запустить vless в качестве пейджера:

vless /path/to/your.diff

Это не графическое изображение, но оно, по крайней мере, выделено.

0
ответ дан 13 April 2017 в 15:23

Я бы использовал этот простой сценарий для использования meld (или любого другого существующего инструмента), таким образом, вы получите немного гибкости:

#!/bin/bash

TMPDIR=`mktemp -d`
DIFF_FILE=`mktemp`
TARGET='./'

cat /proc/$/fd/0 > $DIFF_FILE
cd $TARGET
rsync -apvz --delete --stats --compress --progress $TARGET $TMPDIR
patch -R -p0 -d $TMPDIR < $DIFF_FILE
meld $TARGET $TMPDIR

Протестировано с помощью meld и вывода из bzr diff , поэтому скопировал это в / usr / bin и chmod 755, и я сделал это:

bzr diff | meld-diff

Результаты показывают, как ожидалось.

0
ответ дан 13 April 2017 в 15:23

Я знаю, что вам не требуется инструмент сравнения, интегрированный в редактор, но я уверен, что вы можете избежать переключения контекста (от редактора к терминалу и обратно к редактору) после того, как узнаете немного о том, что может предоставить ваш редактор. И emacs, и vim поставляются с инструментами diff.

  • Для случая emacs вы будете использовать Ediff Mode (по умолчанию). Посмотрите эту вики-страницу или обратитесь к официальному руководству

  • Использовать emacs просто, просто наберите Alt + x и наберите ediff.

  • Вы можете использовать ediff для просмотра различий между ветками и ревизиями вашего хранилища (bzr, git, svn и т. Д.).

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: