svn命令行可以有两个版本的diff - 一个用于visual,一个用于text?

时间:2013-02-26 08:44:55

标签: svn

我可以使用Meld将svn命令行设置为diff,并使用Macbook Pro,我ssh -X到Linux框,这样Linux框就可以了,Meld可以将窗口发送到Mac

但有时,文件可以是2000行,我知道只有一两行diff,我只想要一个快速差异,否则Meld会很慢,发送到窗口并且很慢滚动到差异线。有没有办法调用不同的差异工具?如

svn diff        <-- the usual visual diff
svn textdiff    <-- doing just text diff

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以自定义svn命令,因此讽刺的回答是“使用git”:P

非讽刺的答案是,您可以设置shell别名或shell脚本,以您想要的方式调用svn diff

例如,如果您使用bash,则可以将其放入启动文件中:

alias svntdiff="svn diff --diff-cmd /usr/bin/diff"

然后使用svntdiffsvn diff(可能会在配置时使用Meld)


我可以推荐的另一件事是不通过网络传递Meld显示,而是传递文件。为此,我经常使用以下脚本(~/bin/sshm):

#!/bin/bash

HOST=$1
if [ -z "$HOST" ]; then
  echo Error: hostname not specified >&2
  exit 1
fi
mkdir -p /Volumes/$HOST
sshfs $HOST:/ -ofollow_symlinks /Volumes/$HOST
ssh $HOST
umount /Volumes/$HOST

您需要安装sshfsbrew install sshfs)。鉴于此,现在您可以sshm进入您的linuxbox,但可以通过/Volumes/linuxbox访问您的所有文件。然后在本地运行Meld,指向已安装的远程文件。 (或者更确切地说是mvimdiff,在我的情况下)。同样的事情也允许我使用MacVim编辑远程服务器上的东西,我的所有配置和插件都完好无损。

(您也可以将sshfs $HOST:/ ...替换为sshfs $HOST: ...以仅挂载您的目录,而不是整个文件系统。)