Небольшое описание настройки
SVN с тем, чтобы дефолтным менеджером сравнения использовался трушный vimdiff (специальный режим работы
vim). У SVN есть команда
diff, которая сравнивает указанный файл с его предыдущими ревизиями - по умолчанию с предыдущей. И, опять-таки по умолчанию, она выводит список различий в довольно таки неудобочитаемом формате. Для использования внешнего менеджера различий нужно указать в командной строке модификатор
--diff-cmd <команда запуска менеджера>, либо прописать <команда запуска менеджера> в файле
~/.subversion/config в параметре
diff-cmd. Но не все так просто. SVN в дополнение к именам файлов передает менеджеру еще 5 параметров. При брутальном указании
vimdiff он начинает ругаться на несуществующие файлы и отсутствующие команды. Для обхода этого используем unix-way - скрипты. Итаг:
1. создаем следующий файл bash-скрипта:
#!/bin/sh
# Configure your favorite diff program here.
VIMDIFFCMD="/usr/bin/vimdiff"
# Subversion provides the paths we need as the sixth and seventh
# parameters.
LEFT=${6}
RIGHT=${7}
# Call the diff command (change the following line to make sense for your merge program).
$VIMDIFFCMD "$LEFT" "$RIGHT"
называем его как-то типа svndiff.sh, устанавливаем права доступа для выполнения
chmod +x svndiff.sh
и кладем где-то в $PATH - можно в домашней директории, можно в /usr/local/bin - куда руки дотянутся.
2. Далее в файле ~/.subversion/config добавляем/заменяем строку:
diff-cmd = svndiff.sh
Ну и в принципе все. Делаем
svn diff <filename>
и пользуемся правильными инструментами.
Комментариев нет:
Отправить комментарий