4
 $svn diff my.object 
 -        <description>reverse reference to the Update Center Enrollment Application task.
 +        <description>reverse reference to the Update Center Enrollment Application task.

它必须是空格/隐藏字符或行尾问题....但是我该如何弄清楚呢?

4

4 回答 4

2

只需管道输出到首选程序。例如

$ svn diff my.object | od -c

于 2013-10-12T12:56:47.637 回答
2

好吧,我想出了一个简单的解决方法

svn diff my.object > foo.txt

然后使用:

od -c foo.txt

它显示了新的行字符,我发现一个有\n,另一个有\r\n

于 2013-10-11T19:32:20.347 回答
1

您可以使用第三方差异程序。svn diff有一个--diff-cmd参数允许您使用我使用的工具,例如gvimdiff

我有一个相当简单的脚本,它将 SVN 传递给第三方差异程序的参数,并告诉我差异在哪里。

#! /usr/bin/env perl
# mydiff

use strict;
use warnings;

use constant DIFF => qw(mvim -d -f);

my $parameters = $#ARGV;
my $file1 = $ARGV[$parameters - 1];
my $file2 = $ARGV[$parameters];
my $title1 = $ARGV[$parameters - 4];
my $title2 = $ARGV[$parameters - 2];

$ENV{TITLE} = "$title1  -   $title2";
system DIFF, '-c', 'let &titlestring=$TITLE', $file1, $file2;

如果我需要使用它:

$ svn diff --diff-cmd mydiff

而且,我会看到这样的东西:

在此处输入图像描述

您可以看到第 158 行有空格差异。使用 GVIM,您也可以过滤掉 diff 中的空白——就像大多数 diff 程序一样。

于 2013-10-11T18:54:44.340 回答
0

一种更具可读性的方法可能是:

svn diff myfile --diff-cmd colordiff | less -R

它仅在使用colordiff 时才起作用

于 2016-08-23T10:52:59.467 回答