GNU/Linux >> Znalost Linux >  >> Linux

Jak zobrazit svn rozdíl ve stylu vimdiff v svn

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


Linux
  1. Jak rozbalit/sbalit sekce rozdílu ve Vimdiffu?

  2. Jak vyrobit a aplikovat SVN patch?

  3. Jak porovnávat adresáře přes ssh

  1. Jak zobrazit statistiky v Plesku

  2. Jak zobrazím členy skupiny?

  3. Jak zobrazit soubor Core (obecně)

  1. Jak změnit styl cPanel

  2. Jak zobrazit metadata obrázků v systému Linux

  3. Problémy s WinSCP se stylem konce řádku na Ubuntu Linux při použití rozdílu SVN