Пытается настроить SVN внешнюю программу сравнения на Mac

У меня возникают проблемы при попытке установить внешнюю программу сравнения для SVN на Mac OSX Lion. У меня установлены и xxdiff, и opendiff.

Я добавляю эти строки в ~/.subversion/config:

diff-cmd = opendiff
diff3-cmd = opendiff

или же

diff-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff
diff3-cmd = /Applications/xxdiff.app/Contents/MacOS/xxdiff

Но когда я вызываю SVN, я получаю эту ошибку:

svn: /Users/tre11/.subversion/config:49: Option expected

Как мне исправить эту проблему?

2 ответа

Решение

Существует не так много утилит diff, кроме, конечно, GNU, которые будут принимать параметры, заданные svn (bbdiff - одна из немногих). Вы должны обернуть вызов в сценарий оболочки. Это объясняется в документах Subversion.

Редактировать Исходя из вашего комментария, что текстовый diff по умолчанию все еще выполняется, я думаю, что в вашем файле.subversion / config есть ошибка. Это соответствует вашему сообщению об ошибке. Наиболее вероятной причиной является пробел в начале diff-cmd линия. Да, парсер Subversion сходит с ума в пробелах в начале строки. Я поставил пробел в начале моего diff-cmd линия и получил ту же ошибку "Ожидается вариант".

Вот пример того, что я использую с MacVIM

#! /usr/bin/env perl

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;

Это программа на Perl (но у вас есть Perl на вашем Mac, так что все в порядке).

По сути, вы должны знать различные позиции параметров, передаваемых вашей программе. Быстрый тест показывает, что были пройдены следующие параметры:

  1. -u (Унифицированный Diff)
  2. -L (В diff используйте следующее как заголовок файла левой руки)
  3. bludgen.pl (revision 63) (Название левой руки)
  4. -L (В diff используйте следующее как заголовок правого файла)
  5. bludgen.pl (working copy) (Заголовок справа)
  6. .svn/text-base/bludgen.pl.svn-base (Файл левой руки)
  7. bludgen.pl (правая папка)

Больше информации здесь.

Другие вопросы по тегам