2010-10-18 3 views
40

git log hat eine nette --format Option, um anzugeben, wie die Ausgabe formatiert werden soll.Gibt es eine Möglichkeit, die Ausgabe von git Schuldzuweisung anzupassen?

Aber git blame scheint keine Entsprechung zu haben, obwohl die Standardausgabe von blame nicht sehr menschenfreundlich ist. Ich würde gerne viel weniger sehen.

Zum Beispiel statt:

5600cab7 js/sidebar/VehicleGrid.js  (Rene Saarsoo 2009-10-08 18:55:24 +0000 127) if (x > y) { 
b5f1040c js/map/monitoring/VehicleGrid.js (Mihkel Muhkel 2010-05-31 07:20:13 +0000 128)  return x; 

Ich mag würde haben:

5600cab7 Rene Saarsoo (1 year ago)  127: if (x > y) { 
b5f1040c Mihkel Muhkel (5 months ago) 128:  return x; 

Ich vermute, dass ich ein Skript schreiben, könnte die Ausgabe von git blame --porcelain aber angesichts der horrende Standard-Ausgabe zu analysieren von blame Ich fühle, dass jemand da draußen schon etwas getan haben muss.

Irgendwelche Ideen? Oder irgendwelche Tipps zum Implementieren eines solchen Skripts?

Bearbeiten: Gelöst es durch Schreiben small script.

+2

Sie können immer 'git gui Schuld ' verwenden :-) –

+6

Nun, ich bin mir ziemlich sicher, dass es nicht über SSH funktioniert. –

+1

es würde funktionieren (zumindest wenn beide Seiten X Window verwenden), wenn Sie ** X11 Forwarding ** aktivieren ... obwohl ich es nicht empfehlen würde, weil es langsam sein kann. –

Antwort

2

Betrachtet Web-Schnittstelle wie Trac oder Redmine integrieren git blame Ergebnisse, ich nehme an, eine solche Analyse wurde bereits getan.

Sie können in diesem Redmine Defect 3832 ein Beispiel mit diesem Ruby-Skript sehen:

+0

Danke, diese Quelle hilft tatsächlich. –

+0

** gitweb ** enthält auch die Ansicht "blame" (und "blame_incremental"), obwohl sie standardmäßig deaktiviert ist (weil es CPU-Schwindel ist). –

18

Sie können alternative Ausgabeformat verwenden: git annotate oder git blame -c.

Sie können mit --date=<format> Option Formatierung der Daten ändern (oder blame.date Konfigurationsvariable), wobei <format> ein relativ ist, lokal, default, iso, rfc, kurz. Weitere Informationen finden Sie unter git-blame und git-log Hilfeseiten.

+0

Ja, die Option --date hilft ein bisschen, aber es ist immer noch nicht annähernd so gut, wie ich es gerne hätte. Und Annotate erzeugt IMHO nur eine alternative hässliche Ausgabe: P –

+0

+1 für 'git blame -c'. Funktioniert gut mit awk. – Utopik

+0

@ReneSaarsoo: Es gibt GUIs für Schuld/Annotieren, von denen eine "git gui Schuld" ist. –

5

Für mich funktioniert das -s-Flag, denn alles, was ich brauche, ist die SHA1-ID, nach der ich das Commit für Details nachschlagen. Ein Skript scheint definitiv übertrieben zu sein. Ist es möglich, dass die Flagge vor einem Jahr nicht verfügbar war?

+1

Nachdem ich [mein kleines Skript] (https://github.com/nene/config/blob/master/bin/git-praise) nun schon seit über einem Jahr verwende, kann ich sagen, dass es ein wenig Aufwand war. Die -s-Flagge ist nicht genug für mich - ich interessiere mich wirklich für den Autor und das Datum, ich will nicht tiefer graben, wenn ich es vermeiden kann. Zusätzlich erzeugt mein Skript eine schöne farbige Ausgabe. –