[PATCH STABLE] debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard
patrick at mezard.eu
Wed Jul 11 05:00:53 CDT 2012
# HG changeset patch
# User Patrick Mezard <patrick at mezard.eu>
# Date 1342000362 -7200
# Branch stable
# Node ID 1d58855f4ab5d2a8c25b9bd2d1d2db06971d7976
# Parent b3f005d3105aa3c771051862d150462872bce522
debugrevlog: handle numrevs == numfull case (issue3537)
Instead of tracing back with a ZeroDivisionError.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2175,6 +2175,11 @@
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]
@@ -2182,7 +2187,8 @@
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
More information about the Mercurial-devel
mailing list