diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2245,6 +2245,11 @@ def debugrevlog(ui, repo, file_ = None, elif delta != nullrev: numother += 1 + # Adjust size min value for empty cases + for size in (datasize, fullsize, deltasize): + if size[0] is None: + size[0] = 0 + numdeltas = numrevs - numfull numoprev = numprev - nump1prev - nump2prev totalrawsize = datasize[2] @@ -2252,7 +2257,8 @@ def debugrevlog(ui, repo, file_ = None, fulltotal = fullsize[2] fullsize[2] /= numfull deltatotal = deltasize[2] - deltasize[2] /= numrevs - numfull + if numrevs - numfull > 0: + deltasize[2] /= numrevs - numfull totalsize = fulltotal + deltatotal avgchainlen = sum(chainlengths) / numrevs compratio = totalrawsize / totalsize diff --git a/tests/test-debugcommands.t b/tests/test-debugcommands.t new file mode 100644 --- /dev/null +++ b/tests/test-debugcommands.t @@ -0,0 +1,25 @@ + $ hg init debugrevlog + $ cd debugrevlog + $ echo a > a + $ hg ci -Am adda + adding a + $ hg debugrevlog -m + format : 1 + flags : inline + + revisions : 1 + merges : 0 ( 0.00%) + normal : 1 (100.00%) + revisions : 1 + full : 1 (100.00%) + deltas : 0 ( 0.00%) + revision size : 44 + full : 44 (100.00%) + deltas : 0 ( 0.00%) + + avg chain length : 0 + compression ratio : 0 + + uncompressed data size (min/max/avg) : 43 / 43 / 43 + full revision size (min/max/avg) : 44 / 44 / 44 + delta size (min/max/avg) : 0 / 0 / 0