Upravte soubor $HOME/.subversion/config
takže obsahuje řádek:
diff-cmd = <your favorite diff application>
Některé rozdílové aplikace podporují svn. Například diff-cmd = meld
by měl fungovat dobře. Nicméně vimdiff
není jeden z nich. Důvodem je, že svn diff
dává soubory k porovnání jako 6. a 7. argument, a ne jako 1. a 2. jako obvykle. Takže to, co většina lidí v této situaci dělá, je toto:
Vytvořte skript obálky :
#!/bin/sh
/usr/bin/vimdiff ${6} ${7}
Uložte jej například na $HOME/bin/svndiffwrap.sh
Nezapomeňte jej nastavit jako spustitelný chmod +x $HOME/bin/svndiffwrap.sh
.
Udělejte z něj příkaz svn diff :
v $HOME/.subversion/config
:
diff-cmd = /home/<username>/bin/svndiffwrap.sh
Poznámka :Někteří svn klienti nepodporují cesty, které používají $HOME
proměnná prostředí. Je tedy užitečné zadat úplnou cestu.
Najdete ji na:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/
Tento blogový příspěvek přebírá skript přímo z příkladu externích nástrojů pro porovnání knihy SVN:
diffwrap.sh
#!/bin/sh
# Configure your favorite diff program here.
DIFF="/usr/local/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).
$DIFF $LEFT $RIGHT
# Return an errorcode of 0 if no differences were detected, 1 if some were.
# Any other errorcode will be treated as fatal.
Poznámka: To předpokládá, že váš vimdiff
je v /usr/local/bin
, pro mě ve Fedoře to bylo v /usr/bin
. Pokud jej nemůžete najít, spusťte:
$ whereis vimdiff
Poté v ~/.subversion/config
:
[helpers]
...
diff-cmd = /home/<username>/bin/diffwrap.sh
vimdiff <(svn diff)
<()
se označuje jako substituce procesu, která vytváří pseudo soubor z výstupu svn diff
pro vimdiff
konzumovat.
Můžete vytvořit alias shellu takto:alias svndiff='vimdiff <(svn diff)'
Podobná odpověď
PS - toto je nejjednodušší řešení, které jsem ještě nenašel; změnilo to můj život (relativně řečeno)!
VCSCommand to může udělat za vás – nainstalujte plugin, přejděte k souboru a stiskněte <Leader>cv