public
Last active

simple hg extension to aggregate commit history by week

  • Download Gist
summary.py
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
"""Display commit summary by week."""
 
import time
 
def summary(ui, repo, fs='', **opts):
"""Display commit summary by week"""
buckets = []
init_date = repo[0].date()[0]
now = time.time()
 
bucket_size = 7*24*60*60
 
c = now
while True:
buckets.append(0)
c = c - bucket_size
if c <= init_date:
break
for rev in repo:
ctx = repo[rev]
timestamp = ctx.date()[0]
 
changes = 0
if opts['diffs']:
for diff in ctx.diff():
cs = len(diff.split("\n"))
changes = changes + cs
else:
changes = len(ctx.files())
 
d = now - timestamp
bucket = int(d / bucket_size)
buckets[bucket] = buckets[bucket]+changes
 
buckets.reverse()
ui.write(','.join(map(str, buckets)))
ui.write('\n')
 
 
cmdtable = {
"summary":
(summary,
[('f', 'files', None, 'count by changed files (fast, default)'),
('d', 'diffs', None, 'count by diffs (slow but more accurate)')], "[options]")
}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.