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 .

cwd
quelle
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.

l0b0
quelle
1
Ich benutze auch diffuseziemlich viel.
Arcege
diff -u ist auch ziemlich einfach, finde ich.
gabe.
5

Ich habe festgestellt vimdiff, dass es sehr nützlich ist.

Nicerobot
quelle
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.

Alexandre Martins
quelle
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.

Adam f
quelle