# HG changeset patch # User Augie Fackler # Date 1445612693 14400 # Node ID 39dbf495880b8a439d912091109427d27a7e616a # Parent 78539633acf3b573e0adba8ea8e4125fc4e014a3 debugrevlog: cope with empty revlog files I have no idea where it came from, but my clone of Mercurial has an empty filelog for `contrib/hgfixes/__init__.py` - it's *valid*, just contains no nodes. Without this change, debugrevlog crashes with a zero division error. diff -r 78539633acf3 -r 39dbf495880b mercurial/commands.py --- a/mercurial/commands.py Fri Oct 23 21:27:29 2015 +0200 +++ b/mercurial/commands.py Fri Oct 23 11:04:53 2015 -0400 @@ -3037,7 +3037,9 @@ totalsize = fulltotal + deltatotal avgchainlen = sum(chainlengths) / numrevs maxchainlen = max(chainlengths) - compratio = totalrawsize / totalsize + compratio = 1 + if totalsize: + compratio = totalrawsize / totalsize basedfmtstr = '%%%dd\n' basepcfmtstr = '%%%dd %s(%%5.2f%%%%)\n' @@ -3048,7 +3050,10 @@ return basepcfmtstr % (len(str(max)), ' ' * padding) def pcfmt(value, total): - return (value, 100 * float(value) / total) + if total: + return (value, 100 * float(value) / total) + else: + return value, 100.0 ui.write(('format : %d\n') % format) ui.write(('flags : %s\n') % ', '.join(flags))