Mercurial > hg > evolve
changeset 2179:778afb036245
discovery: introduce a official 'obshash associated to a range
The hash in a combination of the hash a its subrange. If the range is a leaf,
we have the obsmarker relevant to the node in that leaf range.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Fri, 10 Mar 2017 10:36:46 -0800 |
parents | 3f787182509f |
children | b1f029dcf573 |
files | hgext3rd/evolve/obsdiscovery.py tests/test-evolve.t tests/test-exchange-A1.t tests/test-exchange-A2.t tests/test-exchange-A3.t tests/test-exchange-A4.t tests/test-exchange-A5.t tests/test-exchange-A6.t tests/test-exchange-A7.t tests/test-exchange-B1.t tests/test-exchange-B2.t tests/test-exchange-B3.t tests/test-exchange-B4.t tests/test-exchange-B5.t tests/test-exchange-B6.t tests/test-exchange-B7.t tests/test-exchange-C1.t tests/test-exchange-C2.t tests/test-exchange-C3.t tests/test-exchange-C4.t tests/test-exchange-D1.t tests/test-exchange-D2.t tests/test-exchange-D3.t tests/test-exchange-D4.t tests/test-stablerange.t |
diffstat | 25 files changed, 654 insertions(+), 385 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext3rd/evolve/obsdiscovery.py +++ b/hgext3rd/evolve/obsdiscovery.py @@ -295,10 +295,10 @@ toproceed.append(r) ranges = list(ranges) ranges.sort(key=lambda r: (-len(r), n(r.head))) - ui.status('rev node index size depth\n') + ui.status('rev node index size depth obshash\n') for r in ranges: - ui.status('%3d %s %5d %4d %5d\n' - % (r.head, s(n(r.head)), r.index, len(r), r.depth)) + d = (r.head, s(n(r.head)), r.index, len(r), r.depth, node.short(r.obshash)) + ui.status('%3d %s %5d %4d %5d %s\n' % d) _depthcache = {} def _depth(repo, rev): @@ -313,7 +313,6 @@ """return highest power of two lower than 'i'""" return 2 ** int(math.log(i - 1, 2)) - class _range(object): def __init__(self, repo, head, index, revs=None): @@ -395,6 +394,51 @@ assert standard_start < self.depth return self._slicesat(standard_start) + @util.propertycache + def obshash(self): + cache = self._repo.obsstore.rangeobshashcache + cl = self._repo.changelog + n = cl.node + obshash = cache.get(self._id) + if obshash is not None: + return obshash + sha = hashlib.sha1() + count = 0 + if len(self) == 1: + tmarkers = self._repo.obsstore.relevantmarkers([n(self.head)]) + bmarkers = [] + for m in tmarkers: + mbin = obsolete._fm1encodeonemarker(m) + bmarkers.append(mbin) + bmarkers.sort() + for m in bmarkers: + count += 1 + sha.update(m) + else: + for subrange in self.subranges(): + obshash = subrange.obshash + if obshash != node.nullid: + count += 1 + sha.update(obshash) + + # note: if there is only one subrange with actual data, we'll just + # reuse the same hash. + if not count: + obshash = node.nullid + elif count != 1 or obshash is None: + obshash = cache[self._id] = sha.digest() + return obshash + +@eh.wrapfunction(obsolete.obsstore, '_addmarkers') +def _addmarkers(orig, obsstore, *args, **kwargs): + obsstore.rangeobshashcache.clear() + return orig(obsstore, *args, **kwargs) + +@eh.addattr(obsolete.obsstore, 'rangeobshashcache') +@util.propertycache +def rangeobshashcache(obsstore): + return {} + ############################# ### Tree Hash computation ### #############################
--- a/tests/test-evolve.t +++ b/tests/test-evolve.t @@ -169,6 +169,14 @@ fbb94e3a0ecf6d20c2cc31152ef162ce45af982f * (glob) e44648563c73f75950076031c6fdf06629de95f1 * (glob) +Smoketest stablerange.obshash: + + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 7c3bad9141dc 0 2 2 * (glob) + 0 1f0dee641bb7 0 1 1 000000000000 + 1 7c3bad9141dc 1 1 2 * (glob) + $ cd .. ##########################
--- a/tests/test-exchange-A1.t +++ b/tests/test-exchange-A1.t @@ -45,6 +45,14 @@ $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 50656e04a95ecdfed94659dd61f663b2caa55e98 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 f5bc6836db60 0 2 2 50656e04a95e + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 50656e04a95e $ cd .. $ cd ..
--- a/tests/test-exchange-A2.t +++ b/tests/test-exchange-A2.t @@ -57,6 +57,17 @@ $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 50656e04a95ecdfed94659dd61f663b2caa55e98 + 35b1839966785d5703a01607229eea932db42f87 b9c8f20eef8938ebab939fe6a592587feacf3245 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 35b183996678 0 2 2 b9c8f20eef89 + 1 f5bc6836db60 0 2 2 50656e04a95e + 2 35b183996678 1 1 2 b9c8f20eef89 + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 50656e04a95e $ cd .. $ cd ..
--- a/tests/test-exchange-A3.t +++ b/tests/test-exchange-A3.t @@ -70,6 +70,19 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000 + 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0000000000000000000000000000000000000000 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 3bc2ee626e11a7cf8fee7a66d069271e17d5a597 + f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 91716bfd671b5a5854a47ac5d392edfdd25e431a + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 3 e5ea8f9c7314 0 2 2 3bc2ee626e11 + 4 f6298a8ac3a4 0 2 2 91716bfd671b + 0 a9bdc8b26820 0 1 1 000000000000 + 3 e5ea8f9c7314 1 1 2 3bc2ee626e11 + 4 f6298a8ac3a4 1 1 2 91716bfd671b $ cd .. $ cd ..
--- a/tests/test-exchange-A4.t +++ b/tests/test-exchange-A4.t @@ -63,6 +63,20 @@ $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 5d69322fad9eb1ba8f8f2c2312346ed347fdde76 + 06055a7959d4128e6e3bccfd01482e83a2db8a3a fd3e5712c9c2d216547d7a1b87ac815ee1fb7542 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 cf518031fa753e9b049d727e6b0e19f645bab38f + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 06055a7959d4 0 3 3 000000000000 + 1 28b51eb45704 0 2 2 5d69322fad9e + 3 e5ea8f9c7314 0 2 2 cf518031fa75 + 2 06055a7959d4 2 1 3 000000000000 + 1 28b51eb45704 1 1 2 5d69322fad9e + 0 a9bdc8b26820 0 1 1 000000000000 + 3 e5ea8f9c7314 1 1 2 cf518031fa75 $ cd .. $ cd ..
--- a/tests/test-exchange-A5.t +++ b/tests/test-exchange-A5.t @@ -69,6 +69,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 8c0a98c8372212c6efde4bfdcef006f27ff759d3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 5d69322fad9eb1ba8f8f2c2312346ed347fdde76 + 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 fd3e5712c9c2d216547d7a1b87ac815ee1fb7542 + f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 91716bfd671b5a5854a47ac5d392edfdd25e431a + 8c0a98c8372212c6efde4bfdcef006f27ff759d3 6e8c8c71c47a2bfc27c7cf2b1f4174977ede9f21 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 4 8c0a98c83722 0 3 3 70185b996296 + 3 f6298a8ac3a4 0 2 2 91716bfd671b + 4 8c0a98c83722 2 1 3 4d835a45c1e9 + 0 a9bdc8b26820 0 1 1 000000000000 + 3 f6298a8ac3a4 1 1 2 91716bfd671b $ cd .. $ cd ..
--- a/tests/test-exchange-A6.t +++ b/tests/test-exchange-A6.t @@ -59,6 +59,15 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 3bc2ee626e11a7cf8fee7a66d069271e17d5a597 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 e5ea8f9c7314 0 2 2 3bc2ee626e11 + 0 a9bdc8b26820 0 1 1 000000000000 + 2 e5ea8f9c7314 1 1 2 3bc2ee626e11 $ cd .. $ cd ..
--- a/tests/test-exchange-A7.t +++ b/tests/test-exchange-A7.t @@ -42,6 +42,14 @@ $ hg debugobsolete aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 50656e04a95ecdfed94659dd61f663b2caa55e98 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 f5bc6836db60 0 2 2 50656e04a95e + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 50656e04a95e $ cd .. $ cd ..
--- a/tests/test-exchange-B1.t +++ b/tests/test-exchange-B1.t @@ -46,6 +46,15 @@ $ hg debugobsolete f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 926d9d84b97b3483891ae983990ad87c1f7827e9 + f6fbb35d8ac958bbe70035e4c789c18471cdc0af e041f7ff1c7bd5501c7ab602baa35f0873128021 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 f5bc6836db60 0 2 2 926d9d84b97b + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 926d9d84b97b $ cd .. $ cd ..
--- a/tests/test-exchange-B2.t +++ b/tests/test-exchange-B2.t @@ -41,6 +41,12 @@ $ hg debugobsolete f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 52a5380bc04783a9ad43bb2ab2f47a02ef02adcc + f5bc6836db60e308a17ba08bf050154ba9c4fad7 c5a567339e205e8cc4c494e4fb82944daaec449c + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 0 a9bdc8b26820 0 1 1 52a5380bc047 $ cd .. $ cd ..
--- a/tests/test-exchange-B3.t +++ b/tests/test-exchange-B3.t @@ -57,6 +57,18 @@ $ hg debugobsolete e56289ab6378dc752fd7965f8bf66b58bda740bd 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 0000000000000000000000000000000000000000 + 35b1839966785d5703a01607229eea932db42f87 631ab4cd02ffa1d144dc8f32a18be574076031e3 + e56289ab6378dc752fd7965f8bf66b58bda740bd 47c9d2d8db5d4b1eddd0266329ad260ccc84772c + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 35b183996678 0 2 2 631ab4cd02ff + 1 f5bc6836db60 0 2 2 000000000000 + 2 35b183996678 1 1 2 631ab4cd02ff + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 000000000000 $ cd .. $ cd ..
--- a/tests/test-exchange-B4.t +++ b/tests/test-exchange-B4.t @@ -67,6 +67,18 @@ $ hg debugobsolete 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 1900882e85db10a1dc5bc7748f436a8a834356c6 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 c27e764c783f451ef3aa40daf2a3795e6674cd06 + f6fbb35d8ac958bbe70035e4c789c18471cdc0af 907beff79fdff2b82b5d3bed7989107a6d744508 + 7f7f229b13a629a5b20581c6cb723f4e2ca54bed c27e764c783f451ef3aa40daf2a3795e6674cd06 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 f6fbb35d8ac9 0 3 3 000000000000 + 1 f5bc6836db60 0 2 2 000000000000 + 0 a9bdc8b26820 0 1 1 1900882e85db + 1 f5bc6836db60 1 1 2 000000000000 + 2 f6fbb35d8ac9 2 1 3 000000000000 $ cd .. $ cd ..
--- a/tests/test-exchange-B5.t +++ b/tests/test-exchange-B5.t @@ -66,6 +66,18 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 554c0b12f7d9fff20cb904c26e12eee337e3309c + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 5c81c58ce0a8ad61dd9cf4c6949846b5990af30d + 06055a7959d4128e6e3bccfd01482e83a2db8a3a 201e20697f2a6b0752335af7cd813f140e9e653e + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 ae1ac676a5e6d6f4216595c53da763d588929970 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 06055a7959d4 0 3 3 000000000000 + 1 28b51eb45704 0 2 2 000000000000 + 2 06055a7959d4 2 1 3 000000000000 + 1 28b51eb45704 1 1 2 000000000000 + 0 a9bdc8b26820 0 1 1 554c0b12f7d9 $ cd .. $ cd ..
--- a/tests/test-exchange-B6.t +++ b/tests/test-exchange-B6.t @@ -56,6 +56,16 @@ $ hg debugobsolete 962ecf6b1afc94e15c7e48fdfb76ef8abd11372b f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 86e41541149f4b6cccc5fd131d744d8e83a681e5 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 f2e05412d3f1d5bc1ae647cf9efc43e0399c26ca + 962ecf6b1afc94e15c7e48fdfb76ef8abd11372b 974507d1c466d0aa86d288836194339ed3b98736 + f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 04e03a8959d8a39984e6a8f4a16fba975b364747 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 f5bc6836db60 0 2 2 000000000000 + 0 a9bdc8b26820 0 1 1 86e41541149f + 1 f5bc6836db60 1 1 2 000000000000 $ cd .. $ cd ..
--- a/tests/test-exchange-B7.t +++ b/tests/test-exchange-B7.t @@ -49,6 +49,15 @@ $ hg debugobsolete f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 926d9d84b97b3483891ae983990ad87c1f7827e9 + f6fbb35d8ac958bbe70035e4c789c18471cdc0af e041f7ff1c7bd5501c7ab602baa35f0873128021 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 f5bc6836db60 0 2 2 926d9d84b97b + 0 a9bdc8b26820 0 1 1 000000000000 + 1 f5bc6836db60 1 1 2 926d9d84b97b $ cd .. $ cd ..
--- a/tests/test-exchange-C1.t +++ b/tests/test-exchange-C1.t @@ -48,6 +48,13 @@ $ hg debugobsolete f5bc6836db60e308a17ba08bf050154ba9c4fad7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 1ce18e5a71f78d443a80c819f2f7197c4706af70 + f5bc6836db60e308a17ba08bf050154ba9c4fad7 92af733686ce7e0469d8b2b87b4612a4c2d33468 + f6fbb35d8ac958bbe70035e4c789c18471cdc0af 3800aeba3728457abb9c508c94f6abc59e698c55 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 0 a9bdc8b26820 0 1 1 1ce18e5a71f7 $ cd .. $ cd ..
--- a/tests/test-exchange-C2.t +++ b/tests/test-exchange-C2.t @@ -55,6 +55,16 @@ $ hg debugobsolete 06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 72f95b7b9fa12243aeb90433d211f2c38263da31 + 06055a7959d4128e6e3bccfd01482e83a2db8a3a 58ecf9a107b10986d88da605eb0d03b7f24ae486 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 289cb0d058c81c763eca8bb438657dba9a7ba646 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 3 e5ea8f9c7314 0 2 2 289cb0d058c8 + 0 a9bdc8b26820 0 1 1 000000000000 + 3 e5ea8f9c7314 1 1 2 289cb0d058c8 $ cd .. $ cd ..
--- a/tests/test-exchange-C3.t +++ b/tests/test-exchange-C3.t @@ -60,6 +60,14 @@ 06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 40be80b35671116f2c61ef25797806536a6eb5a0 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f beac7228bbe708bc7c9181c3c27f8a17f21dbd9f + 06055a7959d4128e6e3bccfd01482e83a2db8a3a 8b648bd67281e9e525919285ac7b3bb2836c2f02 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 dcd2b566ad0983333be704afdc205066e1a6b742 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 0 a9bdc8b26820 0 1 1 40be80b35671 $ cd .. $ cd ..
--- a/tests/test-exchange-C4.t +++ b/tests/test-exchange-C4.t @@ -70,6 +70,16 @@ f5bc6836db60e308a17ba08bf050154ba9c4fad7 35b1839966785d5703a01607229eea932db42f87 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} f5bc6836db60e308a17ba08bf050154ba9c4fad7 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 a9c02d134f5b98acc74d1dc4eb28fd59f958a2bd + f5bc6836db60e308a17ba08bf050154ba9c4fad7 619b4d13bd9878f04d7208dcfcf1e89da826f6be + 35b1839966785d5703a01607229eea932db42f87 ddeb7b7a87378f59cecb36d5146df0092b6b3327 + 7f7f229b13a629a5b20581c6cb723f4e2ca54bed 58ef2e726c5bd89bceffb6243294b38eadbf3d60 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 35b183996678 0 2 2 2a098b4a877f + 2 35b183996678 1 1 2 916e804c50de + 0 a9bdc8b26820 0 1 1 a9c02d134f5b $ cd .. $ cd ..
--- a/tests/test-exchange-D1.t +++ b/tests/test-exchange-D1.t @@ -52,6 +52,14 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 289cb0d058c81c763eca8bb438657dba9a7ba646 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 1 e5ea8f9c7314 0 2 2 289cb0d058c8 + 0 a9bdc8b26820 0 1 1 000000000000 + 1 e5ea8f9c7314 1 1 2 289cb0d058c8 $ cd .. $ cd ..
--- a/tests/test-exchange-D2.t +++ b/tests/test-exchange-D2.t @@ -49,6 +49,12 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 554c0b12f7d9fff20cb904c26e12eee337e3309c + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 5c81c58ce0a8ad61dd9cf4c6949846b5990af30d + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 0 a9bdc8b26820 0 1 1 554c0b12f7d9 $ cd .. $ cd ..
--- a/tests/test-exchange-D3.t +++ b/tests/test-exchange-D3.t @@ -53,6 +53,15 @@ $ hg debugobsolete 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 {35b1839966785d5703a01607229eea932db42f87} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000 + 35b1839966785d5703a01607229eea932db42f87 65a9f21dff0702355e973a8f31d3b3b7e59376fb + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 2 35b183996678 0 2 2 65a9f21dff07 + 2 35b183996678 1 1 2 65a9f21dff07 + 0 a9bdc8b26820 0 1 1 000000000000 $ cd .. $ cd ..
--- a/tests/test-exchange-D4.t +++ b/tests/test-exchange-D4.t @@ -65,6 +65,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'} + $ hg debugobsrelsethashtree + a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 + 28b51eb45704506b5c603decd6bf7ac5e0f6a52f 0000000000000000000000000000000000000000 + 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0000000000000000000000000000000000000000 + e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0aacc2f86e8fca29f2d5fd8d0790644620acd58a + 069b05c3876d56f62895e853a501ea58ea85f68d 40b98bc2b5b1152416ea8e9665ae1c6a3ce32ba0 + $ hg debugstablerange --rev 'head()' + rev node index size depth obshash + 4 069b05c3876d 0 3 3 a2b2331da650 + 3 e5ea8f9c7314 0 2 2 0aacc2f86e8f + 4 069b05c3876d 2 1 3 901f118d4333 + 0 a9bdc8b26820 0 1 1 000000000000 + 3 e5ea8f9c7314 1 1 2 0aacc2f86e8f $ cd .. $ cd ..
--- a/tests/test-stablerange.t +++ b/tests/test-stablerange.t @@ -17,113 +17,113 @@ $ cd repo_linear $ hg debugbuilddag '.+6' $ hg debugstablerange --rev 1 - rev node index size depth - 1 66f7d451a68b 0 2 2 - 0 1ea73414a91b 0 1 1 - 1 66f7d451a68b 1 1 2 + rev node index size depth obshash + 1 66f7d451a68b 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 $ hg debugstablerange --rev 1 > 1.range bigger subset reuse most of the previous one $ hg debugstablerange --rev 4 - rev node index size depth - 4 bebd167eb94d 0 5 5 - 3 2dc09a01254d 0 4 4 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 + rev node index size depth obshash + 4 bebd167eb94d 0 5 5 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 $ hg debugstablerange --rev 4 > 4.range $ diff -u 1.range 4.range --- 1.range * (glob) +++ 4.range * (glob) @@ -1,4 +1,10 @@ - rev node index size depth - + 4 bebd167eb94d 0 5 5 - + 3 2dc09a01254d 0 4 4 - + 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - + 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - + 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - + 4 bebd167eb94d 4 1 5 + rev node index size depth obshash + + 4 bebd167eb94d 0 5 5 000000000000 + + 3 2dc09a01254d 0 4 4 000000000000 + + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + + 4 bebd167eb94d 4 1 5 000000000000 [1] Using a range not ending on 2**N boundary we fall back on 2**N as much as possible $ hg debugstablerange --rev 5 - rev node index size depth - 5 c8d03c1b5e94 0 6 6 - 3 2dc09a01254d 0 4 4 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 5 c8d03c1b5e94 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 - 5 c8d03c1b5e94 5 1 6 + rev node index size depth obshash + 5 c8d03c1b5e94 0 6 6 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 c8d03c1b5e94 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 c8d03c1b5e94 5 1 6 000000000000 $ hg debugstablerange --rev 5 > 5.range $ diff -u 4.range 5.range --- 4.range * (glob) +++ 5.range * (glob) @@ -1,10 +1,12 @@ - rev node index size depth - - 4 bebd167eb94d 0 5 5 - + 5 c8d03c1b5e94 0 6 6 - 3 2dc09a01254d 0 4 4 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - + 5 c8d03c1b5e94 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 - + 5 c8d03c1b5e94 5 1 6 + rev node index size depth obshash + - 4 bebd167eb94d 0 5 5 000000000000 + + 5 c8d03c1b5e94 0 6 6 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + + 5 c8d03c1b5e94 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + + 5 c8d03c1b5e94 5 1 6 000000000000 [1] Even two unperfect range overlap a lot $ hg debugstablerange --rev tip - rev node index size depth - 6 f69452c5b1af 0 7 7 - 3 2dc09a01254d 0 4 4 - 6 f69452c5b1af 4 3 7 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 5 c8d03c1b5e94 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 - 5 c8d03c1b5e94 5 1 6 - 6 f69452c5b1af 6 1 7 + rev node index size depth obshash + 6 f69452c5b1af 0 7 7 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 6 f69452c5b1af 4 3 7 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 c8d03c1b5e94 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 c8d03c1b5e94 5 1 6 000000000000 + 6 f69452c5b1af 6 1 7 000000000000 $ hg debugstablerange --rev tip > tip.range $ diff -u 5.range tip.range --- 5.range * (glob) +++ tip.range * (glob) @@ -1,6 +1,7 @@ - rev node index size depth - - 5 c8d03c1b5e94 0 6 6 - + 6 f69452c5b1af 0 7 7 - 3 2dc09a01254d 0 4 4 - + 6 f69452c5b1af 4 3 7 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 5 c8d03c1b5e94 4 2 6 + rev node index size depth obshash + - 5 c8d03c1b5e94 0 6 6 000000000000 + + 6 f69452c5b1af 0 7 7 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + + 6 f69452c5b1af 4 3 7 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 c8d03c1b5e94 4 2 6 000000000000 @@ -10,3 +11,4 @@ - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 - 5 c8d03c1b5e94 5 1 6 - + 6 f69452c5b1af 6 1 7 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 c8d03c1b5e94 5 1 6 000000000000 + + 6 f69452c5b1af 6 1 7 000000000000 [1] $ cd .. @@ -169,131 +169,131 @@ (left branch) $ hg debugstablerange --rev 'left~2' - rev node index size depth - 1 66f7d451a68b 0 2 2 - 0 1ea73414a91b 0 1 1 - 1 66f7d451a68b 1 1 2 + rev node index size depth obshash + 1 66f7d451a68b 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 $ hg debugstablerange --rev 'left~2' > left-2.range $ hg debugstablerange --rev left - rev node index size depth - 3 2dc09a01254d 0 4 4 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 + rev node index size depth obshash + 3 2dc09a01254d 0 4 4 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 $ hg debugstablerange --rev 'left' > left.range $ diff -u left-2.range left.range --- left-2.range * (glob) +++ left.range * (glob) @@ -1,4 +1,8 @@ - rev node index size depth - + 3 2dc09a01254d 0 4 4 - + 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - + 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - + 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 + rev node index size depth obshash + + 3 2dc09a01254d 0 4 4 000000000000 + + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 [1] (right branch) $ hg debugstablerange --rev right~2 - rev node index size depth - 4 e7bd5218ca15 0 2 2 - 0 1ea73414a91b 0 1 1 - 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + 4 e7bd5218ca15 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 4 e7bd5218ca15 1 1 2 000000000000 $ hg debugstablerange --rev 'right~2' > right-2.range $ hg debugstablerange --rev right - rev node index size depth - 6 a2f58e9c1e56 0 4 4 - 6 a2f58e9c1e56 2 2 4 - 4 e7bd5218ca15 0 2 2 - 0 1ea73414a91b 0 1 1 - 5 3a367db1fabc 2 1 3 - 6 a2f58e9c1e56 3 1 4 - 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + 6 a2f58e9c1e56 0 4 4 000000000000 + 6 a2f58e9c1e56 2 2 4 000000000000 + 4 e7bd5218ca15 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 5 3a367db1fabc 2 1 3 000000000000 + 6 a2f58e9c1e56 3 1 4 000000000000 + 4 e7bd5218ca15 1 1 2 000000000000 $ hg debugstablerange --rev 'right' > right.range $ diff -u right-2.range right.range --- right-2.range * (glob) +++ right.range * (glob) @@ -1,4 +1,8 @@ - rev node index size depth - + 6 a2f58e9c1e56 0 4 4 - + 6 a2f58e9c1e56 2 2 4 - 4 e7bd5218ca15 0 2 2 - 0 1ea73414a91b 0 1 1 - + 5 3a367db1fabc 2 1 3 - + 6 a2f58e9c1e56 3 1 4 - 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + + 6 a2f58e9c1e56 0 4 4 000000000000 + + 6 a2f58e9c1e56 2 2 4 000000000000 + 4 e7bd5218ca15 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 5 3a367db1fabc 2 1 3 000000000000 + + 6 a2f58e9c1e56 3 1 4 000000000000 + 4 e7bd5218ca15 1 1 2 000000000000 [1] The merge reuse as much of the slicing created for one of the branch $ hg debugstablerange --rev merge - rev node index size depth - 7 5f18015f9110 0 8 8 - 3 2dc09a01254d 0 4 4 - 7 5f18015f9110 4 4 8 - 3 2dc09a01254d 2 2 4 - 5 3a367db1fabc 1 2 3 - 7 5f18015f9110 6 2 8 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 5 3a367db1fabc 2 1 3 - 7 5f18015f9110 7 1 8 - 1 66f7d451a68b 1 1 2 - 6 a2f58e9c1e56 3 1 4 - 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + 7 5f18015f9110 0 8 8 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 7 5f18015f9110 4 4 8 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 5 3a367db1fabc 1 2 3 000000000000 + 7 5f18015f9110 6 2 8 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 5 3a367db1fabc 2 1 3 000000000000 + 7 5f18015f9110 7 1 8 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 6 a2f58e9c1e56 3 1 4 000000000000 + 4 e7bd5218ca15 1 1 2 000000000000 $ hg debugstablerange --rev 'merge' > merge.range $ diff -u left.range merge.range --- left.range * (glob) +++ merge.range * (glob) @@ -1,8 +1,16 @@ - rev node index size depth - + 7 5f18015f9110 0 8 8 - 3 2dc09a01254d 0 4 4 - + 7 5f18015f9110 4 4 8 - 3 2dc09a01254d 2 2 4 - + 5 3a367db1fabc 1 2 3 - + 7 5f18015f9110 6 2 8 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - + 5 3a367db1fabc 2 1 3 - + 7 5f18015f9110 7 1 8 - 1 66f7d451a68b 1 1 2 - + 6 a2f58e9c1e56 3 1 4 - + 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + + 7 5f18015f9110 0 8 8 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + + 7 5f18015f9110 4 4 8 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + + 5 3a367db1fabc 1 2 3 000000000000 + + 7 5f18015f9110 6 2 8 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + + 5 3a367db1fabc 2 1 3 000000000000 + + 7 5f18015f9110 7 1 8 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + + 6 a2f58e9c1e56 3 1 4 000000000000 + + 4 e7bd5218ca15 1 1 2 000000000000 [1] $ diff -u right.range merge.range --- right.range * (glob) +++ merge.range * (glob) @@ -1,8 +1,16 @@ - rev node index size depth - - 6 a2f58e9c1e56 0 4 4 - - 6 a2f58e9c1e56 2 2 4 - - 4 e7bd5218ca15 0 2 2 - + 7 5f18015f9110 0 8 8 - + 3 2dc09a01254d 0 4 4 - + 7 5f18015f9110 4 4 8 - + 3 2dc09a01254d 2 2 4 - + 5 3a367db1fabc 1 2 3 - + 7 5f18015f9110 6 2 8 - + 1 66f7d451a68b 0 2 2 - + 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - + 3 2dc09a01254d 3 1 4 - 5 3a367db1fabc 2 1 3 - + 7 5f18015f9110 7 1 8 - + 1 66f7d451a68b 1 1 2 - 6 a2f58e9c1e56 3 1 4 - 4 e7bd5218ca15 1 1 2 + rev node index size depth obshash + - 6 a2f58e9c1e56 0 4 4 000000000000 + - 6 a2f58e9c1e56 2 2 4 000000000000 + - 4 e7bd5218ca15 0 2 2 000000000000 + + 7 5f18015f9110 0 8 8 000000000000 + + 3 2dc09a01254d 0 4 4 000000000000 + + 7 5f18015f9110 4 4 8 000000000000 + + 3 2dc09a01254d 2 2 4 000000000000 + + 5 3a367db1fabc 1 2 3 000000000000 + + 7 5f18015f9110 6 2 8 000000000000 + + 1 66f7d451a68b 0 2 2 000000000000 + + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 3 2dc09a01254d 3 1 4 000000000000 + 5 3a367db1fabc 2 1 3 000000000000 + + 7 5f18015f9110 7 1 8 000000000000 + + 1 66f7d451a68b 1 1 2 000000000000 + 6 a2f58e9c1e56 3 1 4 000000000000 + 4 e7bd5218ca15 1 1 2 000000000000 [1] $ cd .. @@ -349,84 +349,84 @@ (left branch) $ hg debugstablerange --rev 'left~2' - rev node index size depth - 2 01241442b3c2 0 3 3 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 1 66f7d451a68b 1 1 2 + rev node index size depth obshash + 2 01241442b3c2 0 3 3 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 $ hg debugstablerange --rev 'left~2' > left-2.range $ hg debugstablerange --rev left - rev node index size depth - 4 bebd167eb94d 0 5 5 - 3 2dc09a01254d 0 4 4 - 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - 4 bebd167eb94d 4 1 5 + rev node index size depth obshash + 4 bebd167eb94d 0 5 5 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 $ hg debugstablerange --rev 'left' > left.range $ diff -u left-2.range left.range --- left-2.range * (glob) +++ left.range * (glob) @@ -1,6 +1,10 @@ - rev node index size depth - - 2 01241442b3c2 0 3 3 - + 4 bebd167eb94d 0 5 5 - + 3 2dc09a01254d 0 4 4 - + 3 2dc09a01254d 2 2 4 - 1 66f7d451a68b 0 2 2 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - + 3 2dc09a01254d 3 1 4 - 1 66f7d451a68b 1 1 2 - + 4 bebd167eb94d 4 1 5 + rev node index size depth obshash + - 2 01241442b3c2 0 3 3 000000000000 + + 4 bebd167eb94d 0 5 5 000000000000 + + 3 2dc09a01254d 0 4 4 000000000000 + + 3 2dc09a01254d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 3 2dc09a01254d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + + 4 bebd167eb94d 4 1 5 000000000000 [1] (right branch) $ hg debugstablerange --rev right~2 - rev node index size depth - 7 42b07e8da27d 0 4 4 - 7 42b07e8da27d 2 2 4 - 5 de561312eff4 0 2 2 - 0 1ea73414a91b 0 1 1 - 7 42b07e8da27d 3 1 4 - 6 b9bc20507e0b 2 1 3 - 5 de561312eff4 1 1 2 + rev node index size depth obshash + 7 42b07e8da27d 0 4 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 5 de561312eff4 1 1 2 000000000000 $ hg debugstablerange --rev 'right~2' > right-2.range $ hg debugstablerange --rev right - rev node index size depth - 9 f4b7da68b467 0 6 6 - 7 42b07e8da27d 0 4 4 - 7 42b07e8da27d 2 2 4 - 5 de561312eff4 0 2 2 - 9 f4b7da68b467 4 2 6 - 0 1ea73414a91b 0 1 1 - 7 42b07e8da27d 3 1 4 - 8 857477a9aebb 4 1 5 - 6 b9bc20507e0b 2 1 3 - 5 de561312eff4 1 1 2 - 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + 9 f4b7da68b467 0 6 6 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 9 f4b7da68b467 4 2 6 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + 8 857477a9aebb 4 1 5 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 5 de561312eff4 1 1 2 000000000000 + 9 f4b7da68b467 5 1 6 000000000000 $ hg debugstablerange --rev 'right' > right.range $ diff -u right-2.range right.range --- right-2.range * (glob) +++ right.range * (glob) @@ -1,8 +1,12 @@ - rev node index size depth - + 9 f4b7da68b467 0 6 6 - 7 42b07e8da27d 0 4 4 - 7 42b07e8da27d 2 2 4 - 5 de561312eff4 0 2 2 - + 9 f4b7da68b467 4 2 6 - 0 1ea73414a91b 0 1 1 - 7 42b07e8da27d 3 1 4 - + 8 857477a9aebb 4 1 5 - 6 b9bc20507e0b 2 1 3 - 5 de561312eff4 1 1 2 - + 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + + 9 f4b7da68b467 0 6 6 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + 5 de561312eff4 0 2 2 000000000000 + + 9 f4b7da68b467 4 2 6 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + + 8 857477a9aebb 4 1 5 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 5 de561312eff4 1 1 2 000000000000 + + 9 f4b7da68b467 5 1 6 000000000000 [1] In this case, the bottom of the split will have multiple heads, @@ -436,147 +436,147 @@ We are still able to reuse one of the branch however $ hg debugstablerange --rev merge - rev node index size depth - 10 8aca7f8c9bd2 0 11 11 - 4 bebd167eb94d 0 5 5 - 3 2dc09a01254d 0 4 4 - 7 42b07e8da27d 0 4 4 - 10 8aca7f8c9bd2 8 3 11 - 3 2dc09a01254d 2 2 4 - 7 42b07e8da27d 2 2 4 - 1 66f7d451a68b 0 2 2 - 5 de561312eff4 0 2 2 - 9 f4b7da68b467 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 7 42b07e8da27d 3 1 4 - 1 66f7d451a68b 1 1 2 - 8 857477a9aebb 4 1 5 - 10 8aca7f8c9bd2 10 1 11 - 6 b9bc20507e0b 2 1 3 - 4 bebd167eb94d 4 1 5 - 5 de561312eff4 1 1 2 - 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + 10 8aca7f8c9bd2 0 11 11 000000000000 + 4 bebd167eb94d 0 5 5 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + 10 8aca7f8c9bd2 8 3 11 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 9 f4b7da68b467 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 8 857477a9aebb 4 1 5 000000000000 + 10 8aca7f8c9bd2 10 1 11 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 de561312eff4 1 1 2 000000000000 + 9 f4b7da68b467 5 1 6 000000000000 $ hg debugstablerange --rev 'merge' > merge.range $ diff -u left.range merge.range --- left.range * (glob) +++ merge.range * (glob) @@ -1,10 +1,22 @@ - rev node index size depth - + 10 8aca7f8c9bd2 0 11 11 - 4 bebd167eb94d 0 5 5 - 3 2dc09a01254d 0 4 4 - + 7 42b07e8da27d 0 4 4 - + 10 8aca7f8c9bd2 8 3 11 - 3 2dc09a01254d 2 2 4 - + 7 42b07e8da27d 2 2 4 - 1 66f7d451a68b 0 2 2 - + 5 de561312eff4 0 2 2 - + 9 f4b7da68b467 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - + 7 42b07e8da27d 3 1 4 - 1 66f7d451a68b 1 1 2 - + 8 857477a9aebb 4 1 5 - + 10 8aca7f8c9bd2 10 1 11 - + 6 b9bc20507e0b 2 1 3 - 4 bebd167eb94d 4 1 5 - + 5 de561312eff4 1 1 2 - + 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + + 10 8aca7f8c9bd2 0 11 11 000000000000 + 4 bebd167eb94d 0 5 5 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + + 7 42b07e8da27d 0 4 4 000000000000 + + 10 8aca7f8c9bd2 8 3 11 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + + 7 42b07e8da27d 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + + 5 de561312eff4 0 2 2 000000000000 + + 9 f4b7da68b467 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + + 7 42b07e8da27d 3 1 4 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + + 8 857477a9aebb 4 1 5 000000000000 + + 10 8aca7f8c9bd2 10 1 11 000000000000 + + 6 b9bc20507e0b 2 1 3 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + + 5 de561312eff4 1 1 2 000000000000 + + 9 f4b7da68b467 5 1 6 000000000000 [1] $ diff -u right.range merge.range --- right.range * (glob) +++ merge.range * (glob) @@ -1,12 +1,22 @@ - rev node index size depth - - 9 f4b7da68b467 0 6 6 - + 10 8aca7f8c9bd2 0 11 11 - + 4 bebd167eb94d 0 5 5 - + 3 2dc09a01254d 0 4 4 - 7 42b07e8da27d 0 4 4 - + 10 8aca7f8c9bd2 8 3 11 - + 3 2dc09a01254d 2 2 4 - 7 42b07e8da27d 2 2 4 - + 1 66f7d451a68b 0 2 2 - 5 de561312eff4 0 2 2 - 9 f4b7da68b467 4 2 6 - + 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - + 3 2dc09a01254d 3 1 4 - 7 42b07e8da27d 3 1 4 - + 1 66f7d451a68b 1 1 2 - 8 857477a9aebb 4 1 5 - + 10 8aca7f8c9bd2 10 1 11 - 6 b9bc20507e0b 2 1 3 - + 4 bebd167eb94d 4 1 5 - 5 de561312eff4 1 1 2 - 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + - 9 f4b7da68b467 0 6 6 000000000000 + + 10 8aca7f8c9bd2 0 11 11 000000000000 + + 4 bebd167eb94d 0 5 5 000000000000 + + 3 2dc09a01254d 0 4 4 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + + 10 8aca7f8c9bd2 8 3 11 000000000000 + + 3 2dc09a01254d 2 2 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + + 1 66f7d451a68b 0 2 2 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 9 f4b7da68b467 4 2 6 000000000000 + + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + + 3 2dc09a01254d 3 1 4 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + + 1 66f7d451a68b 1 1 2 000000000000 + 8 857477a9aebb 4 1 5 000000000000 + + 10 8aca7f8c9bd2 10 1 11 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + + 4 bebd167eb94d 4 1 5 000000000000 + 5 de561312eff4 1 1 2 000000000000 + 9 f4b7da68b467 5 1 6 000000000000 [1] Range above the merge, reuse subrange from the merge $ hg debugstablerange --rev tip - rev node index size depth - 12 e6b8d5b46647 0 13 13 - 4 bebd167eb94d 0 5 5 - 12 e6b8d5b46647 8 5 13 - 3 2dc09a01254d 0 4 4 - 7 42b07e8da27d 0 4 4 - 11 485383494a89 8 4 12 - 3 2dc09a01254d 2 2 4 - 7 42b07e8da27d 2 2 4 - 11 485383494a89 10 2 12 - 1 66f7d451a68b 0 2 2 - 5 de561312eff4 0 2 2 - 9 f4b7da68b467 4 2 6 - 2 01241442b3c2 2 1 3 - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 7 42b07e8da27d 3 1 4 - 11 485383494a89 11 1 12 - 1 66f7d451a68b 1 1 2 - 8 857477a9aebb 4 1 5 - 10 8aca7f8c9bd2 10 1 11 - 6 b9bc20507e0b 2 1 3 - 4 bebd167eb94d 4 1 5 - 5 de561312eff4 1 1 2 - 12 e6b8d5b46647 12 1 13 - 9 f4b7da68b467 5 1 6 + rev node index size depth obshash + 12 e6b8d5b46647 0 13 13 000000000000 + 4 bebd167eb94d 0 5 5 000000000000 + 12 e6b8d5b46647 8 5 13 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + 11 485383494a89 8 4 12 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + 11 485383494a89 10 2 12 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 9 f4b7da68b467 4 2 6 000000000000 + 2 01241442b3c2 2 1 3 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + 11 485383494a89 11 1 12 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 8 857477a9aebb 4 1 5 000000000000 + 10 8aca7f8c9bd2 10 1 11 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 de561312eff4 1 1 2 000000000000 + 12 e6b8d5b46647 12 1 13 000000000000 + 9 f4b7da68b467 5 1 6 000000000000 $ hg debugstablerange --rev 'tip' > tip.range $ diff -u merge.range tip.range --- merge.range * (glob) +++ tip.range * (glob) @@ -1,11 +1,13 @@ - rev node index size depth - - 10 8aca7f8c9bd2 0 11 11 - + 12 e6b8d5b46647 0 13 13 - 4 bebd167eb94d 0 5 5 - + 12 e6b8d5b46647 8 5 13 - 3 2dc09a01254d 0 4 4 - 7 42b07e8da27d 0 4 4 - - 10 8aca7f8c9bd2 8 3 11 - + 11 485383494a89 8 4 12 - 3 2dc09a01254d 2 2 4 - 7 42b07e8da27d 2 2 4 - + 11 485383494a89 10 2 12 - 1 66f7d451a68b 0 2 2 - 5 de561312eff4 0 2 2 - 9 f4b7da68b467 4 2 6 + rev node index size depth obshash + - 10 8aca7f8c9bd2 0 11 11 000000000000 + + 12 e6b8d5b46647 0 13 13 000000000000 + 4 bebd167eb94d 0 5 5 000000000000 + + 12 e6b8d5b46647 8 5 13 000000000000 + 3 2dc09a01254d 0 4 4 000000000000 + 7 42b07e8da27d 0 4 4 000000000000 + - 10 8aca7f8c9bd2 8 3 11 000000000000 + + 11 485383494a89 8 4 12 000000000000 + 3 2dc09a01254d 2 2 4 000000000000 + 7 42b07e8da27d 2 2 4 000000000000 + + 11 485383494a89 10 2 12 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 5 de561312eff4 0 2 2 000000000000 + 9 f4b7da68b467 4 2 6 000000000000 @@ -13,10 +15,12 @@ - 0 1ea73414a91b 0 1 1 - 3 2dc09a01254d 3 1 4 - 7 42b07e8da27d 3 1 4 - + 11 485383494a89 11 1 12 - 1 66f7d451a68b 1 1 2 - 8 857477a9aebb 4 1 5 - 10 8aca7f8c9bd2 10 1 11 - 6 b9bc20507e0b 2 1 3 - 4 bebd167eb94d 4 1 5 - 5 de561312eff4 1 1 2 - + 12 e6b8d5b46647 12 1 13 - 9 f4b7da68b467 5 1 6 + 0 1ea73414a91b 0 1 1 000000000000 + 3 2dc09a01254d 3 1 4 000000000000 + 7 42b07e8da27d 3 1 4 000000000000 + + 11 485383494a89 11 1 12 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 8 857477a9aebb 4 1 5 000000000000 + 10 8aca7f8c9bd2 10 1 11 000000000000 + 6 b9bc20507e0b 2 1 3 000000000000 + 4 bebd167eb94d 4 1 5 000000000000 + 5 de561312eff4 1 1 2 000000000000 + + 12 e6b8d5b46647 12 1 13 000000000000 + 9 f4b7da68b467 5 1 6 000000000000 [1] $ cd .. @@ -633,40 +633,40 @@ o 0 1ea73414a91b r0 $ hg debugstablerange --rev 'head()' - rev node index size depth - 15 1d8d22637c2d 0 8 8 - 9 dcbb326fdec2 0 7 7 - 10 ff43616e5d0f 0 7 7 - 13 b4594d867745 0 6 6 - 12 e46a4836065c 0 6 6 - 6 2702dd0c91e7 0 5 5 - 15 1d8d22637c2d 4 4 8 - 3 2b6d669947cd 0 4 4 - 5 f0f3ef9a6cd5 0 4 4 - 9 dcbb326fdec2 4 3 7 - 10 ff43616e5d0f 4 3 7 - 15 1d8d22637c2d 6 2 8 - 3 2b6d669947cd 2 2 4 - 1 66f7d451a68b 0 2 2 - 13 b4594d867745 4 2 6 - 8 d62d843c9a01 4 2 6 - 12 e46a4836065c 4 2 6 - 5 f0f3ef9a6cd5 2 2 4 - 2 fa942426a6fd 0 2 2 - 15 1d8d22637c2d 7 1 8 - 0 1ea73414a91b 0 1 1 - 6 2702dd0c91e7 4 1 5 - 3 2b6d669947cd 3 1 4 - 14 43227190fef8 4 1 5 - 4 4c748ffd1a46 2 1 3 - 1 66f7d451a68b 1 1 2 - 13 b4594d867745 5 1 6 - 11 bab5d5bf48bd 4 1 5 - 8 d62d843c9a01 5 1 6 - 9 dcbb326fdec2 6 1 7 - 12 e46a4836065c 5 1 6 - 7 e7d9710d9fc6 4 1 5 - 5 f0f3ef9a6cd5 3 1 4 - 2 fa942426a6fd 1 1 2 - 10 ff43616e5d0f 6 1 7 + rev node index size depth obshash + 15 1d8d22637c2d 0 8 8 000000000000 + 9 dcbb326fdec2 0 7 7 000000000000 + 10 ff43616e5d0f 0 7 7 000000000000 + 13 b4594d867745 0 6 6 000000000000 + 12 e46a4836065c 0 6 6 000000000000 + 6 2702dd0c91e7 0 5 5 000000000000 + 15 1d8d22637c2d 4 4 8 000000000000 + 3 2b6d669947cd 0 4 4 000000000000 + 5 f0f3ef9a6cd5 0 4 4 000000000000 + 9 dcbb326fdec2 4 3 7 000000000000 + 10 ff43616e5d0f 4 3 7 000000000000 + 15 1d8d22637c2d 6 2 8 000000000000 + 3 2b6d669947cd 2 2 4 000000000000 + 1 66f7d451a68b 0 2 2 000000000000 + 13 b4594d867745 4 2 6 000000000000 + 8 d62d843c9a01 4 2 6 000000000000 + 12 e46a4836065c 4 2 6 000000000000 + 5 f0f3ef9a6cd5 2 2 4 000000000000 + 2 fa942426a6fd 0 2 2 000000000000 + 15 1d8d22637c2d 7 1 8 000000000000 + 0 1ea73414a91b 0 1 1 000000000000 + 6 2702dd0c91e7 4 1 5 000000000000 + 3 2b6d669947cd 3 1 4 000000000000 + 14 43227190fef8 4 1 5 000000000000 + 4 4c748ffd1a46 2 1 3 000000000000 + 1 66f7d451a68b 1 1 2 000000000000 + 13 b4594d867745 5 1 6 000000000000 + 11 bab5d5bf48bd 4 1 5 000000000000 + 8 d62d843c9a01 5 1 6 000000000000 + 9 dcbb326fdec2 6 1 7 000000000000 + 12 e46a4836065c 5 1 6 000000000000 + 7 e7d9710d9fc6 4 1 5 000000000000 + 5 f0f3ef9a6cd5 3 1 4 000000000000 + 2 fa942426a6fd 1 1 2 000000000000 + 10 ff43616e5d0f 6 1 7 000000000000 $ cd ..