Shortlog zur Arbeitserleichterung
posted by Steve Losh on October 7, 2009
Viele Befehle von Mercurial die eine Ausgabe liefern sind anpassbar durch
die Option --template. Für einen tieferen Einblick in die Möglichkeiten
die Vorlagen bieten empfielt sich hg help templating.
Für diesen Tipp verwenden wir eine ganz kleine Vorlage die sich als äusserst hilfreich erweisen wird.
Eine Vorlage für Shortlog
Lassen Sie uns ein ganz einfaches Beispiel einer Vorlage anschauen, wie sie bei
hg log verwendet wird:
hg log --template '{rev}:{node|short} {desc|firstline}\n'
Dieser Befehl wird alle Änderungen eines ChangeSets im Repository ausgeben, eines pro Zeile mit der Revisions Nummer, dem Hash und der Zusammenfassung. Dies sollte ungefähr so aussehen:
81:966ff708eb3a Add the Shortcuts for Specifying Revisions beginner tip.
80:3dca217e76a2 Change the title to something better.
79:4edca6026448 Change the title to something more description.
78:bea31254eba5 Add the Graphlog beginner tip.
77:5ef6bf0c5081 Add scrollbars to code blocks if needed.
76:dd1fa17eaa1f Reduce the number of tips on the front page to 4 per category.
75:f3d5a6d9d5a5 Fix the nested <p> tag issue.
74:e6a76edf8032 Add the Creating Repositories Over SSH advanced tip.
73:a4f1c617f01f Reword "N.B." to "Note" because it looks better before the colon.
72:e44939482007 Mention the feature requirement for HTTP User Auth.
... a lot more lines ...
Dies kann Ihnen dabei helfen einen Überblick zu bekommen ohne von den ganzen
Informationen erschlagen zu werden. Sie können diesen Alias in ihre
~/.hgrc Datei einfügen:
[alias]
slog = log --template '{rev}:{node|short} {desc|firstline}\n'
Nun können Sie mit hg slog eine kompakte Änderungsübersicht anzeigen lassen.
Wir sind aber noch nicht ganz fertig.
Zählen
Es gibt etwas sehr spezielles zu diesem Template: jeder Logeintrag benötigt
nur eine Zeile. Dies bedeutet, dass Sie den UNIX Befehl wc (wordcount -
Wörter zählen) zum zählen der Zeilen und damit der ChangeSets nutzen können.
Als Beispiel wollen wir die Änderungen im Repository zählen:
$ hg slog | wc -l
82
Dies ist allerdings ziemlich unnütz, da die gleiche Information als
Revisionsnummer bei der letzten Änderung angezeigt wird. Interessant wird es
wenn wir die Filtermöglichkeiten von hg log nutzen um nur einen Teil der
Änderungen auszuwählen.
Um die Anzahl merges zu erfahren:
hg slog --only-merges | wc -l
Um alle non-merges zu zählen:
hg slog --no-merges | wc -l
Um zu zählen wie viele commits von ‘Steve’ gemacht wurden:
hg slog --user Steve | wc -l
Um alle commits der letzten 3 Tage zu zählen:
hg slog --date -3 | wc -l
Um alle commits seit dem 1. Februar zu zählen:
hg slog --date '>Feb 1' | wc -l
Um zu zählen welche non-merges von Steve seit März commited wurden:
hg slog --no-merges --user Steve --date '>Mar 1' | wc -l
Die Verwendung einer Vorlage die das ChangeSet auf einer einzigen Zeile ausgibt
ermöglicht das Zählen von allem was mit hg log gefiltert werden kann. Sie
können hg help log aufrufen ummehr über die Filtermöglichkeiten zu erfahren.