churn: show comitter email addresses unclipped (bug 1023)
authorStephen Deasey <sdeasey@gmail.com>
Sun, 09 Mar 2008 17:34:55 +0000
changeset 6223 bab6c8f2bb1a
parent 6222 d2353ed8b153
child 6224 210ee6204a29
child 6225 595a69a01129
churn: show comitter email addresses unclipped (bug 1023) Email addresses were being clipped at a hard-coded 20 chars. Measure the length of all email addresses and accommodate the longest.
contrib/churn.py
--- a/contrib/churn.py	Sat Mar 08 17:28:25 2008 -0800
+++ b/contrib/churn.py	Sun Mar 09 17:34:55 2008 +0000
@@ -178,21 +178,23 @@
 
     # make a list of tuples (name, lines) and sort it in descending order
     ordered = stats.items()
-    ordered.sort(lambda x, y: cmp(y[1], x[1]))
-
     if not ordered:
         return
-    maximum = ordered[0][1]
+    ordered.sort(lambda x, y: cmp(y[1], x[1]))
+    max_churn = ordered[0][1]
 
-    width = get_tty_width()
-    ui.note(_("assuming %i character terminal\n") % width)
-    width -= 1
+    tty_width = get_tty_width()
+    ui.note(_("assuming %i character terminal\n") % tty_width)
+    tty_width -= 1
 
-    for i in ordered:
-        person = i[0]
-        lines = i[1]
-        print "%s %6d %s" % (pad(person, 20), lines,
-                graph(lines, maximum, width - 20 - 1 - 6 - 2 - 2, '*'))
+    max_user_width = max([len(user) for user, churn in ordered])
+
+    graph_width = tty_width - max_user_width - 1 - 6 - 2 - 2
+
+    for user, churn in ordered:
+        print "%s %6d %s" % (pad(user, max_user_width),
+                             churn,
+                             graph(churn, max_churn, graph_width, '*'))
 
 cmdtable = {
     "churn":