пытается настроить SVN внешнюю программу сравнения на Mac - PullRequest
0 голосов
/ 07 марта 2012

У меня проблемы с попыткой настроить внешнюю программу сравнения для 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 ]

1 голос
/ 07 марта 2012

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

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

0 голосов
/ 08 марта 2012

Вот пример того, что я использую с 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 (Unified 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 (правая папка)

Подробнее здесь .

...