hgext/churn.py
changeset 50895 5a22b2594d96
parent 48966 6000f5b25c9b
equal deleted inserted replaced
50894:0c76520ec4cc 50895:5a22b2594d96
    50     return (added, removed)
    50     return (added, removed)
    51 
    51 
    52 
    52 
    53 def countrate(ui, repo, amap, *pats, **opts):
    53 def countrate(ui, repo, amap, *pats, **opts):
    54     """Calculate stats"""
    54     """Calculate stats"""
    55     opts = pycompat.byteskwargs(opts)
    55     if opts.get('dateformat'):
    56     if opts.get(b'dateformat'):
       
    57 
    56 
    58         def getkey(ctx):
    57         def getkey(ctx):
    59             t, tz = ctx.date()
    58             t, tz = ctx.date()
    60             date = datetime.datetime(*time.gmtime(float(t) - tz)[:6])
    59             date = datetime.datetime(*time.gmtime(float(t) - tz)[:6])
    61             return encoding.strtolocal(
    60             return encoding.strtolocal(
    62                 date.strftime(encoding.strfromlocal(opts[b'dateformat']))
    61                 date.strftime(encoding.strfromlocal(opts['dateformat']))
    63             )
    62             )
    64 
    63 
    65     else:
    64     else:
    66         tmpl = opts.get(b'oldtemplate') or opts.get(b'template')
    65         tmpl = opts.get('oldtemplate') or opts.get('template')
    67         tmpl = logcmdutil.maketemplater(ui, repo, tmpl)
    66         tmpl = logcmdutil.maketemplater(ui, repo, tmpl)
    68 
    67 
    69         def getkey(ctx):
    68         def getkey(ctx):
    70             ui.pushbuffer()
    69             ui.pushbuffer()
    71             tmpl.show(ctx)
    70             tmpl.show(ctx)
    78 
    77 
    79     def prep(ctx, fmatch):
    78     def prep(ctx, fmatch):
    80         rev = ctx.rev()
    79         rev = ctx.rev()
    81         key = getkey(ctx).strip()
    80         key = getkey(ctx).strip()
    82         key = amap.get(key, key)  # alias remap
    81         key = amap.get(key, key)  # alias remap
    83         if opts.get(b'changesets'):
    82         if opts.get('changesets'):
    84             rate[key] = (rate.get(key, (0,))[0] + 1, 0)
    83             rate[key] = (rate.get(key, (0,))[0] + 1, 0)
    85         else:
    84         else:
    86             parents = ctx.parents()
    85             parents = ctx.parents()
    87             if len(parents) > 1:
    86             if len(parents) > 1:
    88                 ui.note(_(b'revision %d is a merge, ignoring...\n') % (rev,))
    87                 ui.note(_(b'revision %d is a merge, ignoring...\n') % (rev,))
    94 
    93 
    95         progress.increment()
    94         progress.increment()
    96 
    95 
    97     wopts = logcmdutil.walkopts(
    96     wopts = logcmdutil.walkopts(
    98         pats=pats,
    97         pats=pats,
    99         opts=opts,
    98         opts=pycompat.byteskwargs(opts),
   100         revspec=opts[b'rev'],
    99         revspec=opts['rev'],
   101         date=opts[b'date'],
   100         date=opts['date'],
   102         include_pats=opts[b'include'],
   101         include_pats=opts['include'],
   103         exclude_pats=opts[b'exclude'],
   102         exclude_pats=opts['exclude'],
   104     )
   103     )
   105     revs, makefilematcher = logcmdutil.makewalker(repo, wopts)
   104     revs, makefilematcher = logcmdutil.makewalker(repo, wopts)
   106     for ctx in scmutil.walkchangerevs(repo, revs, makefilematcher, prep):
   105     for ctx in scmutil.walkchangerevs(repo, revs, makefilematcher, prep):
   107         continue
   106         continue
   108 
   107