2013-05-03 8 views
6

Gibt es eine Möglichkeit, Git indent/verschönern/Pretty zwei Versionen von C++ - Quelldateien vor der Diffie zu machen?Git Diff Indent/Pretty Print/Verschönerung vor Diff

Ich denke, mein Ziel ist offensichtlich: Ich will nicht, dass Git mir die Myriaden von Änderungen zeigt, die von irgendeiner dummen IDE eingeführt werden, nachdem ein Affe (wie ich) das Auto-Format getroffen hat.

Beispiel Nutzung: Ich traf git difftool --indent-before-diffing path/to/file und nutzen Sie die Änderungen nach der die Originalversion von path/to/file und der modifizierten Version von path/to/file eingekerbt wurden.

Antwort

8

Wenn Sie eine Anwendung finden können, die Einzüge für Sie tut, Sie die Methode here für odt-Dateien beschrieben verwenden:

Fügen Sie die folgende Zeile in die Datei .gitattributes:

*.odt diff=odt

nun die odt diff Filter in .git/config ein:

[diff "odt"] 
    binary = true 
    textconv = /usr/local/bin/odt-to-txt 

Also für C++ Dateien wäre es so etwas wie diese:

*.cpp diff=cpp 

Und im .git/config:

[diff "cpp"] 
    binary = true 
    textconv = /path/to/indenter 

Wie in den Kommentaren darauf hingewiesen, kann GNU Indent für Einrücken verwendet werden.

+1

Dies ist eine sehr gute Antwort !! Vielen Dank! Es hat immer noch den leichten Nachteil, dass ich die Funktion nicht einfach (d. H. Durch einen Befehlszeilenschalter) ausschalten kann. Ich werde dies als die richtige Antwort in ein paar Tagen markieren, es sei denn, jemand findet eine ähnliche Lösung, die direkt im Befehl "git diff" aktiviert/deaktiviert werden kann. – Hinton

+1

Eine solche "Anwendung" wäre der "Einzug" der GNU, im unwahrscheinlichen Fall, dass jemand vorher noch nichts davon gehört hat ... – Hinton