17 Stimmen

Überschriften in git diff anpassen

Bei der Anzeige eines Diffs mit git diff Jede Änderung beginnt mit einer Zeile wie:

@@ -28,41 +20,10 @@ namespace ConsoleApplication1

Bei C ist der letzte Teil recht beschreibend - er zeigt zum Beispiel die Funktion, in der die Änderung aufgetreten ist. Bei C# wird jedoch immer nur der Namespace angezeigt, was nicht sehr nützlich ist. Ich denke, das liegt daran, dass die letzte nicht eingerückte Zeile angezeigt wird. Gibt es eine Möglichkeit, dies zu konfigurieren?

0 Stimmen

Ist es Ihnen gelungen, eine gute Konfiguration zu finden? Ich habe versucht, *.cs diff=csharp, aber ich bekomme immer noch Namespaces. diff=java funktioniert aber besser.

0 Stimmen

Ja, es funktioniert für mich, haben Sie eine ausreichend aktuelle Version von Git? diff=csharp sollte seit 1.7.3 funktionieren.

0 Stimmen

1.7.10 hier, von debian unstable, ich werde versuchen, später zu graben, für jetzt java ist ok :)

22voto

svick Punkte 224493

Ich habe es gefunden, die Zeile heißt hunk header und die Dokumentation steht, wie man sie anpasst:

Definieren einer benutzerdefinierten Hunk-Kopfzeile

Jeder Gruppe von Änderungen (genannt "Hunk") in der textuellen Diff-Ausgabe wird eine Zeile in der Form vorangestellt:

@@ -k,l +n,m @@ TEXT

Dies ist ein sogenannter Hunk-Header. Der "TEXT"-Teil ist standardmäßig eine Zeile, die mit einem Alphabet, einem Unterstrich oder einem Dollarzeichen beginnt; dies entspricht dem, was GNU diff -p Ausgabe verwendet. Diese Standardauswahl ist jedoch für einige Inhalte nicht geeignet, und Sie können ein benutzerdefiniertes Muster verwenden, um eine Auswahl zu treffen.

Zunächst weisen Sie in .gitattributes die diff Attribut für Pfade.

*.tex   diff=tex

Dann definieren Sie eine "diff.tex.xfuncname"-Konfiguration, um einen regulären Ausdruck anzugeben, der auf eine Zeile passt, die als Hunk-Header "TEXT" erscheinen soll. Fügen Sie einen Abschnitt zu Ihrer $GIT_DIR/config Datei (oder $HOME/.gitconfig Datei) wie folgt:

[diff "tex"]
        xfuncname = "^(\\\\(sub)*section\\{.*)$"

Anmerkung. Eine einzelne Ebene von Backslashes wird vom Parser der Konfigurationsdatei gefressen, so dass Sie die Backslashes verdoppeln müssten; das obige Muster wählt eine Zeile aus, die mit einem Backslash beginnt und null oder mehr Vorkommen von sub gefolgt von section gefolgt von einer offenen Klammer bis zum Ende der Zeile.

4voto

Jakub Narębski Punkte 286531

Véase gitattributes manpage den Abschnitt "Generierung von Diff-Text", und z.B. diff.csharp.xfuncname Konfiguration (Suche nach xfuncname ).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X