2013-02-26 74 views
2

我可以设置svn命令行来使用Meld进行差异化,并且使用Macbook Pro,我将ssh -X添加到Linux盒子中,以便Linux盒子可以完成Meld可以将窗口发送到Mac。svn命令行可以有两个版本的diff - 一个用于视觉,一个用于文本?

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

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

回答

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: ...只安装你的目录,而不是整个文件系统)。

+0

我认为这是很好的解决方案...现在我使用ExpanDrive但我觉得'sshfs'做的同样的事情......但我认为如果我在Macbook上执行'svn'命令,那么最好是一个特定的文件或文件夹,否则'svn status'将永远占用 - 我等了1分钟,仍然没有输出(在Linux机器上,需要1秒)。这是因为我们在项目中安装了依赖项(库和模块),并且有8000个文件。 – 2013-02-26 09:06:13

+0

如果可能的话,能够在Mac上调用,执行'ssh'并取回文件名以区别...然后在Mac上调用p4merge或araxis以区分这些文件应该是非常好的。 。 – 2013-02-26 10:06:16

+0

@动静能量:是的,这就是我的意思。我使用由我的脚本打开的控制台进行编译,搜索,在控制台中执行的操作,并且需要访问大量文件;以及使用Mac GUI界面工具的sshfs挂载以实现更有针对性的方法。我不会在8000个文件上通过挂载的目录运行'ack'或'diff':p另外,如果您有切换的能力,我关于'git'的评论不只是一个笑话,因为它不是一个集中的VCS,当你进行比较时,你会与本地资源库进行比较(与队友保持同步),所以它总是非常快速,并且可以使用所有Mac的强大功能。 – Amadan 2013-02-27 01:25:37

相关问题