Wie kann ich mit dem Befehl "diff" das Beste für mein Geld bekommen?


9

Ich habe diffin der Vergangenheit versucht, den Linux- Befehl ohne viel Glück oder Geduld zu verwenden. Normalerweise verwende ich ein GUI-Dienstprogramm wie DiffMerge oder Kdiff.

Vor kurzem habe ich erneut versucht, diffDateien auf Remote-Systemen über ssh zu vergleichen, und ich habe festgestellt, dass die -y / --side-by-sideOption sehr nützlich ist, aber ich habe immer noch das Gefühl, dass ich dieses Dienstprogramm nicht optimal nutzen kann.

Ich bin gespannt, wie ich Folgendes erreichen kann:

  1. Markieren Sie Änderungen oder verwenden Sie die Farbcodierung, um die Ausgabe besser lesbar zu machen
  2. Zusammenführen - Wählen Sie Zeilen mit Unterschieden aus und bewirken Sie die Änderungen in einer der Dateien

Außerdem habe ich beim Googeln nicht viele gute Beispiele gefunden. Wenn Sie also einige Linux-Fu-Geheimnisse haben, um das Beste aus Diff herauszuholen, können Sie dies bitte mitteilen? Ich werde hauptsächlich textbasierte Konfigurationsdateien vergleichen, aber alle Tricks und Tipps wären wunderbar.

Als Referenz - Das DiffMerge-Dienstprogramm zeigt Änderungen problemlos neben der Hervorhebung von Farben an. Mit den Symbolen oben können Sie zwischen den Ansichten "Alle anzeigen", "Unterschiede anzeigen" und "Unterschiede mit Kontext anzeigen" wechseln. Würde gerne einige dieser Funktionen an der Eingabeaufforderung.

ps: Ich sollte auch beachten, dass eine andere Option, die ich sehr nützlich finde, --suppress-common-linesdie ich in diesem kurzen und lesbaren Blog-Beitrag kennengelernt habe .


3
Ich benutze vimdiff ziemlich oft.
Nicerobot

@nicerobot Sie können dies als Antwort posten - es ist ein sehr nützliches und hilfreiches Tool.
Rozcietrzewiacz

Sie können nicht, es ist kostenlos ..... Entschuldigung Konnte nicht anders: D
whoami

Ich mache den größten Teil meines Unterschieds in Emacs.
Gilles 'SO - hör auf böse zu sein'

@whoami - was?
CWD

Antworten:


9

In keiner bestimmten Reihenfolge:

  • meld ist ein sehr schönes Diff-Programm, das sehr schöne Diffs und Drei-Wege-Zusammenführungen macht.
  • git config --global merge.conflictstyle diff3Sie erhalten eine Drei-Wege-Merge-Ausgabe zur Verwendung mit Tools wie meld.
  • wdifftut Wort diffs, sehr schön , wenn gefärbt :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • Um die Cruft in der diffAusgabe zu minimieren , verwende ich normalerweise die Option --ignore-all-space( -w)
  • diff-ignore-moved-lines* macht was auf dem Etikett steht.
  • difff* kann verwendet werden, um nur Linien zu unterscheiden, die in bestimmten Feldern übereinstimmen.

* Haftungsausschluss: Ich bin der Autor und habe diese entwickelt, um das Differenzieren und Zusammenführen von CLI und GUI zu erleichtern.


1
Ich benutze auch diffuseziemlich viel.
Arcege

diff -u ist auch ziemlich einfach, finde ich.
gabe.


3

Um eine Färbung im Diff zu erhalten, sollten Sie sich http://colordiff.sourceforge.net/ ansehen . Dies ist nur ein Wrapper um diff und als solches funktionieren alle Befehlsoptionen immer noch.

Wenn Sie Ubuntu haben, schreiben Sie einfach:

    # sudo apt-get install colordiff

Das Risiko, Ihren Anwendungsfall nicht zu erfüllen, gitist ein sehr schönes VCS , das sich gut in viele unterschiedliche und zusammengeführte Tools (sowohl Befehlszeilen- als auch GUI-Tools) integrieren lässt. Probieren Sie es aus, wenn es eine Option ist.


1

Versuchen sdiff

diffhat auch Optionen ( -eoder -ed) zum Erstellen eines Zusammenführungsskripts zur Verwendung mited

sdiff, diffUnd edsollte ein Teil der Shell sein , wo immer Sie gehen.

Ihre Versionskontrollsoftware wahrscheinlich hat auch ein diffund mergeWerkzeug eingebaut.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.