diff mercurial/commands.py @ 17188:76e55914c303

debugrevlog: handle numrevs == numfull case (issue3537) Instead of tracing back with a ZeroDivisionError.
author Patrick Mezard <patrick@mezard.eu>
date Wed, 11 Jul 2012 11:52:42 +0200
parents cdf1532d89c6
children d99d0b559084
line wrap: on
line diff
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2245,6 +2245,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]
@@ -2252,7 +2257,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