contrib/churn.py
changeset 3223 53e843840349
parent 3090 eeaf9bcdfa25
child 3792 4670470b97bd
equal deleted inserted replaced
3222:a5603ad915c5 3223:53e843840349
    56     for f in modified:
    56     for f in modified:
    57         lines += dirtywork(f, mmap1, mmap2)
    57         lines += dirtywork(f, mmap1, mmap2)
    58 
    58 
    59     for f in added:
    59     for f in added:
    60         lines += dirtywork(f, None, mmap2)
    60         lines += dirtywork(f, None, mmap2)
    61         
    61 
    62     for f in removed:
    62     for f in removed:
    63         lines += dirtywork(f, mmap1, None)
    63         lines += dirtywork(f, mmap1, None)
    64 
    64 
    65     for f in deleted:
    65     for f in deleted:
    66         lines += dirtywork(f, mmap1, mmap2)
    66         lines += dirtywork(f, mmap1, mmap2)
    70 
    70 
    71     return (who, lines)
    71     return (who, lines)
    72 
    72 
    73 def gather_stats(ui, repo, amap, revs=None, progress=False):
    73 def gather_stats(ui, repo, amap, revs=None, progress=False):
    74     stats = {}
    74     stats = {}
    75     
    75 
    76     cl    = repo.changelog
    76     cl    = repo.changelog
    77 
    77 
    78     if not revs:
    78     if not revs:
    79         revs = range(0, cl.count())
    79         revs = range(0, cl.count())
    80 
    80 
   115 
   115 
   116     return stats
   116     return stats
   117 
   117 
   118 def churn(ui, repo, **opts):
   118 def churn(ui, repo, **opts):
   119     "Graphs the number of lines changed"
   119     "Graphs the number of lines changed"
   120     
   120 
   121     def pad(s, l):
   121     def pad(s, l):
   122         if len(s) < l:
   122         if len(s) < l:
   123             return s + " " * (l-len(s))
   123             return s + " " * (l-len(s))
   124         return s[0:l]
   124         return s[0:l]
   125 
   125 
   126     def graph(n, maximum, width, char):
   126     def graph(n, maximum, width, char):
   127         n = int(n * width / float(maximum))
   127         n = int(n * width / float(maximum))
   128         
   128 
   129         return char * (n)
   129         return char * (n)
   130 
   130 
   131     def get_aliases(f):
   131     def get_aliases(f):
   132         aliases = {}
   132         aliases = {}
   133 
   133 
   135             l = l.strip()
   135             l = l.strip()
   136             alias, actual = l.split(" ")
   136             alias, actual = l.split(" ")
   137             aliases[alias] = actual
   137             aliases[alias] = actual
   138 
   138 
   139         return aliases
   139         return aliases
   140     
   140 
   141     amap = {}
   141     amap = {}
   142     aliases = opts.get('aliases')
   142     aliases = opts.get('aliases')
   143     if aliases:
   143     if aliases:
   144         try:
   144         try:
   145             f = open(aliases,"r")
   145             f = open(aliases,"r")