[PATCH 2 of 2] bundlerepo: add support for treemanifests in cg3 bundles
Martin von Zweigbergk
martinvonz at google.com
Thu Aug 4 14:39:49 EDT 2016
On Thu, Aug 4, 2016 at 11:17 AM, Augie Fackler <raf at durin42.com> wrote:
> # HG changeset patch
> # User Augie Fackler <augie at google.com>
> # Date 1470334433 14400
> # Thu Aug 04 14:13:53 2016 -0400
> # Node ID 781e56c61c17a07164cd7cbcd4b319ce2ded511f
> # Parent c6da11db73e97aceabcc85c9f5bb893643bf01a7
> bundlerepo: add support for treemanifests in cg3 bundles
>
> diff --git a/mercurial/bundlerepo.py b/mercurial/bundlerepo.py
> --- a/mercurial/bundlerepo.py
> +++ b/mercurial/bundlerepo.py
> @@ -190,8 +190,8 @@ class bundlechangelog(bundlerevlog, chan
> self.filteredrevs = oldfilter
>
> class bundlemanifest(bundlerevlog, manifest.manifest):
> - def __init__(self, opener, bundle, linkmapper):
> - manifest.manifest.__init__(self, opener)
> + def __init__(self, opener, bundle, linkmapper, dir=''):
> + manifest.manifest.__init__(self, opener, dir=dir)
> bundlerevlog.__init__(self, opener, self.indexfile, bundle,
> linkmapper)
>
> @@ -332,7 +332,12 @@ class bundlerepository(localrepo.localre
> # XXX: hack to work with changegroup3, but we still don't handle
> # tree manifests correctly
No longer valid, right?
> if self.bundle.version == "03":
> - self.bundle.filelogheader()
> + dirheader = self.bundle.filelogheader()
> + while dirheader:
> + d = dirheader["filename"]
> + self.bundledirlogs = bundlemanifest(
> + self.svfs, self.bundle, linkmapper, dir=d)
> + dirheader = self.bundle.filelogheader()
> self.filestart = self.bundle.tell()
> return m
>
> diff --git a/tests/test-treemanifest.t b/tests/test-treemanifest.t
> --- a/tests/test-treemanifest.t
> +++ b/tests/test-treemanifest.t
> @@ -313,6 +313,15 @@ Stripping and recovering changes should
> rev offset length delta linkrev nodeid p1 p2
> 0 0 127 -1 4 064927a0648a 000000000000 000000000000
> 1 127 111 0 5 25ecb8cb8618 000000000000 000000000000
> + $ hg incoming --traceback .hg/strip-backup/*
I suspect --traceback was there while you were debugging, but I think
we usually leave it from out tests.
> + comparing with .hg/strip-backup/*-backup.hg (glob)
> + searching for changes
> + changeset: 6:51cfd7b1e13b
> + tag: tip
> + user: test
> + date: Thu Jan 01 00:00:00 1970 +0000
> + summary: modify dir1/a
> +
Should also be able to pull from the bundle, right? Can you add a test
for that too?
> $ hg unbundle -q .hg/strip-backup/*
> $ hg debugindex --dir dir1
> rev offset length delta linkrev nodeid p1 p2
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list