2010-09-08 33 views
16

我想svn diff通过寻呼机显示有色差(就像git一样)。我已经成功地通过设置来获得彩色差异的diff-cmd~/.subversion/config如何在svn diff中获得寻呼机?

diff-cmd = colordiff 

现在我想通过管寻呼机的diff的输出,我该怎么做呢? (写svn diff | less,当然短。)

+1

[在这里很好的回答](http://superuser.com/a/241833/197866)(下面不同的'less'选项)。 – 2015-05-24 15:29:16

回答

14

在过去,我已经使用了包装脚本,并设置diff-cmd这个脚本:

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

但你得到一个单独的寻呼机每一个文件,我我不确定这是你想要的。现在我只写svn diff | less

另一个简单的解决方法是制作一个别名:alias svndiff='svn diff | less'。或者,如果你想使用svn diff,让一个shell函数:

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'更有用的,并在屏幕左侧显示一个烦人的折叠条。 – 2015-05-24 15:33:29

+0

@AlastairIrvine该问题特别要求彩色差异传呼机。 Vim standalone不这样做。 Vimdiff展示了非常有用的并排差异。 – 2015-05-25 12:56:04

+1

就像我说的,Vimdiff在这种情况下并没有做任何特别的事情。对于Vimdiff来说,它需要两个文件。 – 2015-05-25 14:04:35

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