Ein Fall, in dem Sie sich zu Recht darum kümmern könnten, ist, wenn Sie zwischen "alten" Whitespase-Fehlern (die Sie möglicherweise aus alten Gründen behalten möchten) und "neuen" Whitespace-Fehlern (die Sie vermeiden möchten) unterscheiden möchten.
Zu diesem Zweck wird Git 2.5+ (2. Quartal 2015) eine spezifischere Option für die Erkennung von Leerzeichen vorschlagen.
Siehe Commits 0e383e1 , 0ad782f und d55ef3e [26. Mai 2015] von Junio C Hamano ( gitster
) .
(Zusammengeführt von Junio in Commit 709cd91 , 11. Juni 2015)
diff.c
: --ws-error-highlight=<kind>
Option
Traditionell haben wir uns nur um Leerzeichenbrüche gekümmert, die in neuen Linien eingeführt wurden.
Einige Leute möchten auch Leerzeichen auf alten Linien malen. Wenn sie in einer neuen Zeile einen Leerzeichenbruch sehen, können sie dieselbe Art von Leerzeichenbruch in der entsprechenden alten Zeile erkennen und möchten sagen: "Ah, diese Fehler sind vorhanden, aber sie wurden vom Original geerbt. Berühren wir sie also nicht jetzt."
Führen Sie --ws-error-highlight=<kind>
Option, die sie passieren eine durch Kommata getrennte Liste von können old
, new
und context
festlegen , welche Linien zu markieren Leerzeichen Fehler auf.
Die Dokumentation enthält jetzt :
--ws-error-highlight=<kind>
Markieren Sie Leerzeichenfehler in Zeilen, die <kind>
in der von angegebenen Farbe angegeben sind color.diff.whitespace
.
<kind>
ist eine durch Kommata getrennte Liste von old
, new
, context
.
Wenn diese Option nicht angegeben ist, werden nur Leerzeichenfehler in new
Zeilen hervorgehoben.
ZB werden --ws-error-highlight=new,old
Leerzeichenfehler sowohl in gelöschten als auch in hinzugefügten Zeilen hervorgehoben.
all
kann als Abkürzung für verwendet werden old,new,context
.
Zum Beispiel hatte das alte Commit einen Whitespace-Fehler ( bbb
), aber Sie können sich nur auf die neuen Fehler konzentrieren (am Ende von still bbb
und ccc
):
(Test danach durchgeführt t/t4015-diff-whitespace.sh
)
Mit Git 2.26 (Q1 2020) diff-*
achtet die Sanitärfamilie der Unterbefehle nun auf die diff.wsErrorHighlight
Konfiguration, die zuvor ignoriert wurde. Dadurch kann " git add -p
" auch dem Endbenutzer die Leerzeichenprobleme anzeigen.
Siehe Commit da80635 (31. Januar 2020) von Jeff King ( peff
) .
(Zusammengeführt von Junio C Hamano - gitster
- in Commit df04a31 , 14. Februar 2020)
diff
: Verschieben Sie diff.wsErrorHighlight in die "Grundkonfiguration"
Unterzeichnet von: Jeff King
Wir analysieren diff.wsErrorHighlight in git_diff_ui_config()
, was bedeutet, dass es nicht für Installationsbefehle wirksam wird, sondern nur für Porzellane wie sich git diff
selbst.
Dies ist leicht ärgerlich, da Skripte wie add--interactive
, die einen für den Benutzer sichtbaren Unterschied mit Farbe erzeugen, die Option nicht respektieren .
Wir könnten diesem Skript beibringen, die Konfiguration zu analysieren und sie an --ws-error-highlight
die Diff-Installation weiterzuleiten . Aber es gibt eine einfachere Lösung.
Es sollte für Installateure einigermaßen sicher sein, diese Option zu respektieren, da sie nur dann aktiviert wird, wenn die Farbe anderweitig aktiviert ist. Und jeder, der kolorierte Ausgaben analysiert, muss sich bereits mit der Tatsache befassen, dass color.diff.*
sich die genaue Ausgabe ändern kann, die er sieht. Diese Optionen waren Teil git_diff_basic_config()
seit ihrer Einführung in 9a1805a872 (fügen Sie einen "grundlegenden" Diff-Konfigurations-Rückruf hinzu, 2008-01-04, Git v1.5.4-rc3).
Wir können es also einfach in die "grundlegende" Konfiguration verschieben, die add--interactive
zusammen mit jedem anderen Skript im selben Boot ein sehr geringes Risiko für die Verletzung von Installationsbenutzern behebt .