Mercurial > hg-stable
changeset 3045:c0be8990e819
Add revision range support
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Fri, 18 Aug 2006 22:08:48 -0700 |
parents | fe0e3508ec6e |
children | 2a4d4aecb2b4 |
files | hgext/churn.py |
diffstat | 1 files changed, 15 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/churn.py Tue Aug 15 06:15:06 2006 -0400 +++ b/hgext/churn.py Fri Aug 18 22:08:48 2006 -0700 @@ -12,6 +12,7 @@ # <alias email> <actual email> from mercurial.demandload import * +from mercurial.i18n import gettext as _ demandload(globals(), 'time sys signal os') demandload(globals(), 'mercurial:hg,mdiff,fancyopts,commands,ui,util,templater') @@ -69,12 +70,15 @@ return (who, lines) -def gather_stats(ui, repo, amap): +def gather_stats(ui, repo, amap, revs=None): stats = {} cl = repo.changelog - for rev in range(1,cl.count()): + if not revs: + revs = range(1, cl.count()) + + for rev in revs: node2 = cl.node(rev) node1 = cl.parents(node2)[0] @@ -93,7 +97,7 @@ return stats -def churn(ui, repo, aliases): +def churn(ui, repo, **opts): "Graphs the number of lines changed" def pad(s, l): @@ -117,6 +121,7 @@ return aliases amap = {} + aliases = opts.get('aliases') if aliases: try: f = open(aliases,"r") @@ -126,8 +131,10 @@ amap = get_aliases(f) f.close() - - stats = gather_stats(ui, repo, amap) + + revs = [int(r) for r in commands.revrange(ui, repo, opts['rev'])] + revs.sort() + stats = gather_stats(ui, repo, amap, revs) # make a list of tuples (name, lines) and sort it in descending order ordered = stats.items() @@ -147,10 +154,7 @@ cmdtable = { "churn": (churn, - [('', 'aliases', '', 'file with email aliases')], - 'hg churn [-a file]'), + [('r', 'rev', [], _('limit statistics to the specified revisions')), + ('', 'aliases', '', _('file with email aliases'))], + 'hg churn [-r revision range] [-a file]'), } - -def reposetup(ui, repo): - pass -