VCS независимый diff - PullRequest
       7

VCS независимый diff

4 голосов
/ 18 января 2010

Вместо запуска "svn diff", "hg diff" и так далее ... можем ли мы написать одну команду, которая вызывает svn / hg / git соответственно?Можно ли сделать вывод diff довольно красивым?

edit : предпочтительнее инструменты командной строки (не GUI).

Ответы [ 3 ]

3 голосов
/ 18 января 2010

Существует также ряд проектов «обернуть все общие команды VCS в одну утилиту». pyvcs и UVC - это два, которые приходят на ум. Может быть, они будут делать то, что вы хотите?

3 голосов
/ 18 января 2010

Ввод "svn diff" или "hg diff" не доставляет удовольствия, если вам пришлось вводить его снова, чтобы листать вывод с меньшими затратами. Кроме того, когда есть вероятность, что ваш текстовый редактор выполняет подсветку синтаксиса ... нет причин, по которым вывод diff в терминале также не должен выделяться соответствующими цветами.

альтернативный текст http://img25.imageshack.us/img25/8597/colordiff.png

Вам понадобится colordiff , который можно установить через apt или macports.

Следующая функция bash позволит вам напечатать просто `dif 'в рабочем каталоге выбранной вами VCS (не нужно указывать, hg это или svn).

function dif {
   if [ -d .hg ]; then
       VC='hg'
   elif [ -d .svn ]; then
       VC='svn'
   else
       echo "cannot find VC type"
       return 1
   fi
   $VC diff $1 | colordiff | less -R
}

Должно быть легко добавить поддержку других инструментов VCS (git, cvs и т. Д.)

Кроме того, если у вас установлен UVC (согласно ответу Райана Уилкокса), приведенный выше сценарий можно упростить как:

function dif {
   uvc diff $1 | colordiff | less -R
}
0 голосов
/ 18 января 2010

Попробуйте Диффузный .Он определит подходящую систему контроля версий и отобразит различия с хорошей подсветкой синтаксиса.

...