##// END OF EJS Templates
diffstat: scale adds/removes proportionally to graph width...
Brodie Rao -
r9330:be2a1315 default
parent child Browse files
Show More
@@ -9,7 +9,7 b''
9 from i18n import _
9 from i18n import _
10 from node import hex, nullid, short
10 from node import hex, nullid, short
11 import base85, cmdutil, mdiff, util, diffhelpers, copies
11 import base85, cmdutil, mdiff, util, diffhelpers, copies
12 import cStringIO, email.Parser, os, re, math
12 import cStringIO, email.Parser, os, re
13 import sys, tempfile, zlib
13 import sys, tempfile, zlib
14
14
15 gitre = re.compile('diff --git a/(.*) b/(.*)')
15 gitre = re.compile('diff --git a/(.*) b/(.*)')
@@ -1429,18 +1429,21 b' def diffstat(lines, width=80):'
1429 maxtotal = max(maxtotal, adds+removes)
1429 maxtotal = max(maxtotal, adds+removes)
1430
1430
1431 countwidth = len(str(maxtotal))
1431 countwidth = len(str(maxtotal))
1432 graphwidth = width - countwidth - maxname
1432 graphwidth = width - countwidth - maxname - 6
1433 if graphwidth < 10:
1433 if graphwidth < 10:
1434 graphwidth = 10
1434 graphwidth = 10
1435
1435
1436 factor = max(int(math.ceil(float(maxtotal) / graphwidth)), 1)
1436 def scale(i):
1437 if maxtotal <= graphwidth:
1438 return i
1439 # If diffstat runs out of room it doesn't print anything,
1440 # which isn't very useful, so always print at least one + or -
1441 # if there were at least some changes.
1442 return max(i * graphwidth // maxtotal, int(bool(i)))
1437
1443
1438 for filename, adds, removes in stats:
1444 for filename, adds, removes in stats:
1439 # If diffstat runs out of room it doesn't print anything, which
1445 pluses = '+' * scale(adds)
1440 # isn't very useful, so always print at least one + or - if there
1446 minuses = '-' * scale(removes)
1441 # were at least some changes
1442 pluses = '+' * max(adds // factor, int(bool(adds)))
1443 minuses = '-' * max(removes // factor, int(bool(removes)))
1444 output.append(' %-*s | %*.d %s%s\n' % (maxname, filename, countwidth,
1447 output.append(' %-*s | %*.d %s%s\n' % (maxname, filename, countwidth,
1445 adds+removes, pluses, minuses))
1448 adds+removes, pluses, minuses))
1446
1449
General Comments 0
You need to be logged in to leave comments. Login now