2010-09-08 2 views
16

Я бы хотел, чтобы svn diff отображал цветную разницу через пейджер (точно так же, как git). Я удалось получить цветной диф, установив diff-cmd в ~/.subversion/config:Как получить пейджер в svn diff?

diff-cmd = colordiff 

Теперь я хотел бы, чтобы труба выход дифф через пейджер, как я могу это сделать? (Короткие записи svn diff | less, конечно.)

+1

[Хороший ответ здесь] (http://superuser.com/a/241833/197866) (разные опции «меньше» ниже). –

ответ

14

В прошлом я использовал сценарий оболочки и установить diff-cmd для этого сценария:

#!/bin/sh 
colordiff "[email protected]" | less -r 

Но тогда вы получите отдельный пейджер для каждого файла, я «Не уверен, что это то, что ты хочешь. В настоящее время я просто пишу svn diff | less.

Другим простым решением является псевдоним: alias svndiff='svn diff | less'. Или, если вы хотите использовать svn diff, сделать функцию оболочки:

svn() { 
    if [ x"$1" = xdiff ] || [ x"$1" = xdi ]; then 
     /usr/bin/svn "[email protected]" | less -r 
    else 
     /usr/bin/svn "[email protected]" 
    fi 
} 
6

Я обычно запустить svn diff | vim -.

+0

Оригинальный ответ использовал 'vimdiff', но это не более полезно для' vim' и показывает раздражающую панель сложения слева от экрана. –

+0

@AlastairIrvine Вопрос задается специально для цветного пейджера. Vim standalone этого не делает. Vimdiff показывает бок о бок diff, который очень полезен. –

+1

Vimdiff не делает ничего особенного в этом случае, как я уже сказал. Для работы Vimdiff требуется два файла. –

0

Добавление

function sdi() 
{ 
    if tty -s; then 
      exec svn diff --diff-cmd=colordiff "[email protected]" | less -R 
    else 
      exec svn diff --diff-cmd=colordiff "[email protected]" 
    fi 
} 

к моему ~/.bashrc сделал трюк для меня. Взято с here

Смежные вопросы