diff --git a/remotefilelog/debugcommands.py b/remotefilelog/debugcommands.py --- a/remotefilelog/debugcommands.py +++ b/remotefilelog/debugcommands.py @@ -217,8 +217,10 @@ hashlen = 14 lastfilename = None + lastnode = None totaldeltasize = defaultdict(lambda: 0) totalblobsize = defaultdict(lambda: 0) + failures = 0 def printtotals(filename): if not (filename in totaldeltasize or filename in totaldeltasize): return @@ -256,9 +258,16 @@ hashformatter(deltabase), str(deltalen).ljust(14), blobsize)) + if not (deltabase == nullid or deltabase == lastnode): + ui.warn("^ BAD ENTRY\n") + failures += 1 + lastnode = node if filename is not None: printtotals(filename) + if failures > 1: + ui.warn("\n%d invalid entries\n" % failures) + return 1 def dumpdeltachain(ui, deltachain, **opts): hashformatter = hex diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t --- a/tests/test-treemanifest.t +++ b/tests/test-treemanifest.t @@ -71,6 +71,7 @@ (Root): Node Delta Base Delta Length Blob Size 70f2c6726cec bc0c2c938b92 61 (missing) + ^ BAD ENTRY Test that commit creates local trees $ hg up -q tip