GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie man svn diff im vimdiff-Stil in svn

Bearbeiten Sie die Datei $HOME/.subversion/config es enthält also die Zeile:

diff-cmd = <your favorite diff application>

Einige Diff-Apps unterstützen svn. Beispiel:diff-cmd = meld sollte gut funktionieren. Allerdings vimdiff ist nicht einer von ihnen. Der Grund dafür ist svn diff gibt die zu vergleichenden Dateien als 6. und 7. Argument an und nicht wie üblich als 1. und 2. Argument. Was die meisten Leute in dieser Situation also tun, ist Folgendes:

Erstellen Sie ein Wrapper-Skript :

#!/bin/sh

/usr/bin/vimdiff ${6} ${7}

Speichern Sie es beispielsweise unter $HOME/bin/svndiffwrap.sh

Vergessen Sie nicht, es ausführbar zu machen chmod +x $HOME/bin/svndiffwrap.sh .

Machen Sie es zum Befehl svn diff :

in $HOME/.subversion/config :

diff-cmd = /home/<username>/bin/svndiffwrap.sh

Hinweis :Einige SVN-Clients unterstützen keine Pfade, die $HOME verwenden Umgebungsvariable. Daher ist es sinnvoll, den vollständigen Pfad anzugeben.


Gefunden unter:http://blog.tplus1.com/index.php/2007/08/29/how-to-use-vimdiff-as-the-subversion-diff-tool/

Dieser Blogbeitrag übernimmt das Skript direkt aus dem Beispiel für externe Diff-Tools des SVN-Buchs:

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.

Hinweis: Dies setzt voraus, dass Ihr vimdiff ist in /usr/local/bin , für mich war es in Fedora in /usr/bin . Wenn Sie es nicht finden können, führen Sie Folgendes aus:

$ whereis vimdiff

Dann in ~/.subversion/config :

[helpers]
...
diff-cmd = /home/<username>/bin/diffwrap.sh

vimdiff <(svn diff)

<() wird als Prozesssubstitution bezeichnet, die eine Pseudodatei aus der Ausgabe von svn diff erstellt für vimdiff zu konsumieren.

Sie können einen Shell-Alias ​​wie folgt erstellen:alias svndiff='vimdiff <(svn diff)'

Ähnliche Antwort

PS - das ist die einfachste Lösung, die ich noch finden muss; es hat mein Leben (relativ gesehen) verändert!


VCSCommand kann das für Sie erledigen – installieren Sie das Plugin, navigieren Sie zu der Datei und drücken Sie <Leader>cv


Linux
  1. So ändern Sie den cPanel-Stil

  2. So zeigen Sie Bildmetadaten unter Linux an

  3. Probleme mit WinSCP mit End-of-Line-Stil unter Ubuntu Linux bei Verwendung von SVN Diff

  4. Wie erweitere/komprimiere ich einen Diff-Abschnitt in Vimdiff?

  5. Wie ignoriert man Verzeichnisse/Dateien in Subversion?

So zeigen Sie Hardwareinformationen unter Linux an

So zeigen Sie Batterieinformationen in Linux an

So installieren Sie Apache SVN unter CentOS 7

So installieren Sie Apache SVN unter Ubuntu 14.04

Wie ändere ich den Stil in cPanel?

So färben Sie die Diff-Ausgabe für eine bessere Ansicht ein