2011-07-06 2 views
8

Lorsque j'exécute la commande "hg log" de Mercurial à partir d'une fenêtre de terminal, les résultats tombent souvent de l'écran, me forçant à faire défiler vers le haut. En conséquence, j'ai créé un modèle pour réduire la verbosité et le format du journal:Comment puis-je limiter la taille d'un journal Mercurial?

[alias] 
slog = log --template '{rev}:{node|short} {desc|firstline} ({author})\n' 

Cependant, je voudrais améliorer encore plus loin en soit a) en limitant la taille de la « slog » juste les 10 derniers commits ou b) en utilisant une commande comme "hg slog ##", où "##" serait le nombre de logs montrés dans les résultats.

Avez-vous des idées sur la façon d'obtenir A ou B?

Répondre

12

Vous pouvez définir votre alias pour faire seulement une limite fixe de cette façon:

slog = log --limit 10 --template "{rev}:{node|short} {desc|firstline} ({author})\n" 

Ou, vous pouvez mettre --limit à la fin afin que vous pouvez transmettre un numéro, comme arguments à un alias seront ajoutés à la fin:

slog = log --template "{rev}:{node|short} {desc|firstline} ({author})\n" --limit 

ci-dessus pourrait être appelé comme cela pour les 10 dernières changesets:

hg slog 10 

Vous devez également être en mesure de définir la version paramétrés de cette façon, mais il ne semble pas être la propriété en expansion $1:

slog = log --limit $1 --template "{rev}:{node|short} {desc|firstline} ({author})\n" 

#I had to use shell execute to make it expand: 
#slog = !hg log --limit $1 --template "{rev}:{node|short} {desc|firstline} ({author})\n" 
+0

Une pensée sur la façon de rendre "--limit" facultatif? Si je tape "hg slog", je n'ai pas besoin d'entrer une valeur. Ce serait bien si je pouvais le faire en option. – Huuuze

+0

Cela dépend de votre shell, mais vous devrez tester si '" $ 1 "' est égal à '" "'. Dans Windows, je ferais 'slog =! If" $ 1 "==" "(hg log --limit 10) sinon (hg log --limit $ 1)' pour le faire fonctionner sur une ligne avec ma connaissance limitée des fichiers batch. (modèles omis pour la brièveté) –

7

pour obtenir la dernière 10 changeset:
hg log -l10

Autre solution:
Configurer autopager plugin dans le fichier .hgrc.
Le résultat final est similaire à déjà mentionné solution

hg log | less 
+0

C'est-à-dire '-l' (L minuscule) pour limite. –

0

Si vous « utilisez un environnement * nix, ce qui vous permet de faire défiler à travers l'histoire du journal à votre guise:

hg log | less 

ou selon vos préférences:

hg log | more 
Questions connexes