Source

hgtip-content / beginner / 2009-10-27-show-changesets-not-yet-pushed.html

{% extends "_tip.html" %}
{%hyde
    title: Shortlog zur Arbeitserleichterung
    author_name: Steve Losh
    author_link: http://stevelosh.com/
    created: 2009-10-07
%}


{% block excerpt %}
Das Hinzufügen von einem `hg shortlog` Alias wird ihnen einige raffinierte 
Möglichkeiten eröffen.
{% endblock %}


{% block tip %}
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 empfiehlt 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 Revisionsnummer, 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][hgrc] einfügen:

[hgrc]: {{ links.tip_edit_hgrc }}

    [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 um mehr über die Filtermöglichkeiten zu erfahren.

{% endblock %}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.