changeset 14163:38184a72d793

debugbuilddag: use memctx for speed This drops the options to run arbitrary shell commands within commits and the option to create a file that gets appended to in every revision. It now supports to not write file data at all, which is very fast for generating a pure 00changelog.i (useful for discovery tests, for instance). Timings for 1000 linear nodes: * Old `hg debugbuilddag -o '+1000'` took 4.5 secs. * New `hg debugbuilddag -o '+1000'` takes 2 secs. * New `hg debugbuilddag '+1000'` takes 0.8 secs. (The last one creates only 00changelog.i).
author Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
date Mon, 02 May 2011 19:21:30 +0200
parents 301725c3df9a
children cb98fed52495
files mercurial/commands.py tests/test-debugbuilddag.t tests/test-debugcomplete.t tests/test-getbundle.t
diffstat 4 files changed, 289 insertions(+), 280 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Mon May 02 19:20:29 2011 +0200
+++ b/mercurial/commands.py	Mon May 02 19:21:30 2011 +0200
@@ -14,7 +14,7 @@
 import archival, changegroup, cmdutil, sshserver, hbisect, hgweb, hgweb.server
 import merge as mergemod
 import minirst, revset, templatefilters
-import dagparser
+import dagparser, context, simplemerge
 
 # Commands start here, listed alphabetically
 
@@ -962,7 +962,6 @@
 
 def debugbuilddag(ui, repo, text,
                   mergeable_file=False,
-                  appended_file=False,
                   overwritten_file=False,
                   new_file=False):
     """builds a repo with a given dag from scratch in the current empty repo
@@ -979,8 +978,6 @@
      - "/p2" is a merge of the preceding node and p2
      - ":tag" defines a local tag for the preceding node
      - "@branch" sets the named branch for subsequent nodes
-     - "!command" runs the command using your shell
-     - "!!my command\\n" is like "!", but to the end of the line
      - "#...\\n" is a comment up to the end of the line
 
     Whitespace between the above elements is ignored.
@@ -994,28 +991,12 @@
 
     All string valued-elements are either strictly alphanumeric, or must
     be enclosed in double quotes ("..."), with "\\" as escape character.
-
-    Note that the --overwritten-file and --appended-file options imply the
-    use of "HGMERGE=internal:local" during DAG buildup.
     """
 
-    if not (mergeable_file or appended_file or overwritten_file or new_file):
-        raise util.Abort(_('need at least one of -m, -a, -o, -n'))
-
-    if len(repo.changelog) > 0:
+    cl = repo.changelog
+    if len(cl) > 0:
         raise util.Abort(_('repository is not empty'))
 
-    if overwritten_file or appended_file:
-        # we don't want to fail in merges during buildup
-        os.environ['HGMERGE'] = 'internal:local'
-
-    def writefile(fname, text, fmode="wb"):
-        f = open(fname, fmode)
-        try:
-            f.write(text)
-        finally:
-            f.close()
-
     if mergeable_file:
         linesperrev = 2
         # determine number of revs in DAG
@@ -1024,58 +1005,95 @@
             if type == 'n':
                 n += 1
         # make a file with k lines per rev
-        writefile("mf", "\n".join(str(i) for i in xrange(0, n * linesperrev))
-                  + "\n")
-
-    at = -1
-    atbranch = 'default'
-    for type, data in dagparser.parsedag(text):
-        if type == 'n':
-            ui.status('node %s\n' % str(data))
-            id, ps = data
-            p1 = ps[0]
-            if p1 != at:
-                update(ui, repo, node=str(p1), clean=True)
-                at = p1
-            if repo.dirstate.branch() != atbranch:
-                branch(ui, repo, atbranch, force=True)
-            if len(ps) > 1:
-                p2 = ps[1]
-                merge(ui, repo, node=p2)
-
-            if mergeable_file:
-                f = open("mf", "rb+")
-                try:
-                    lines = f.read().split("\n")
-                    lines[id * linesperrev] += " r%i" % id
-                    f.seek(0)
-                    f.write("\n".join(lines))
-                finally:
-                    f.close()
-
-            if appended_file:
-                writefile("af", "r%i\n" % id, "ab")
-
-            if overwritten_file:
-                writefile("of", "r%i\n" % id)
-
-            if new_file:
-                writefile("nf%i" % id, "r%i\n" % id)
-
-            commit(ui, repo, addremove=True, message="r%i" % id, date=(id, 0))
-            at = id
-        elif type == 'l':
-            id, name = data
-            ui.status('tag %s\n' % name)
-            tag(ui, repo, name, local=True)
-        elif type == 'a':
-            ui.status('branch %s\n' % data)
-            atbranch = data
-        elif type in 'cC':
-            r = util.system(data, cwd=repo.root)
-            if r:
-                desc, r = util.explain_exit(r)
-                raise util.Abort(_('%s command %s') % (data, desc))
+        initialmergedlines = [str(i) for i in xrange(0, n * linesperrev)]
+        initialmergedlines.append("")
+
+    tags = []
+
+    tr = repo.transaction("builddag")
+    try:
+
+        at = -1
+        atbranch = 'default'
+        nodeids = []
+        for type, data in dagparser.parsedag(text):
+            if type == 'n':
+                ui.note('node %s\n' % str(data))
+                id, ps = data
+
+                files = []
+                fctxs = {}
+
+                p2 = None
+                if mergeable_file:
+                    fn = "mf"
+                    p1 = repo[ps[0]]
+                    if len(ps) > 1:
+                        p2 = repo[ps[1]]
+                        pa = p1.ancestor(p2)
+                        base, local, other = [x[fn].data() for x in pa, p1, p2]
+                        m3 = simplemerge.Merge3Text(base, local, other)
+                        ml = [l.strip() for l in m3.merge_lines()]
+                        ml.append("")
+                    elif at > 0:
+                        ml = p1[fn].data().split("\n")
+                    else:
+                        ml = initialmergedlines
+                    ml[id * linesperrev] += " r%i" % id
+                    mergedtext = "\n".join(ml)
+                    files.append(fn)
+                    fctxs[fn] = context.memfilectx(fn, mergedtext)
+
+                if overwritten_file:
+                    fn = "of"
+                    files.append(fn)
+                    fctxs[fn] = context.memfilectx(fn, "r%i\n" % id)
+
+                if new_file:
+                    fn = "nf%i" % id
+                    files.append(fn)
+                    fctxs[fn] = context.memfilectx(fn, "r%i\n" % id)
+                    if len(ps) > 1:
+                        if not p2:
+                            p2 = repo[ps[1]]
+                        for fn in p2:
+                            if fn.startswith("nf"):
+                                files.append(fn)
+                                fctxs[fn] = p2[fn]
+
+                def fctxfn(repo, cx, path):
+                    return fctxs.get(path)
+
+                if len(ps) == 0 or ps[0] < 0:
+                    pars = [None, None]
+                elif len(ps) == 1:
+                    pars = [nodeids[ps[0]], None]
+                else:
+                    pars = [nodeids[p] for p in ps]
+                cx = context.memctx(repo, pars, "r%i" % id, files, fctxfn,
+                                    date=(id, 0),
+                                    user="debugbuilddag",
+                                    extra={'branch': atbranch})
+                nodeid = repo.commitctx(cx)
+                nodeids.append(nodeid)
+                at = id
+            elif type == 'l':
+                id, name = data
+                ui.note('tag %s\n' % name)
+                tags.append("%s %s\n" % (hex(repo.changelog.node(id)), name))
+            elif type == 'a':
+                ui.note('branch %s\n' % data)
+                atbranch = data
+        tr.close()
+    finally:
+        tr.release()
+
+    if tags:
+        tagsf = repo.opener("localtags", "w")
+        try:
+            tagsf.write("".join(tags))
+        finally:
+            tagsf.close()
 
 def debugcommands(ui, cmd='', *args):
     """list all available commands and options"""
@@ -4467,7 +4485,6 @@
     "debugbuilddag":
         (debugbuilddag,
          [('m', 'mergeable-file', None, _('add single file mergeable changes')),
-          ('a', 'appended-file', None, _('add single file all revs append to')),
           ('o', 'overwritten-file', None, _('add single file all revs overwrite')),
           ('n', 'new-file', None, _('add new file at each rev')),
          ],
--- a/tests/test-debugbuilddag.t	Mon May 02 19:20:29 2011 +0200
+++ b/tests/test-debugbuilddag.t	Mon May 02 19:21:30 2011 +0200
@@ -1,12 +1,16 @@
   $ echo "[extensions]" >> $HGRCPATH
   $ echo "graphlog=" >> $HGRCPATH
 
-overwritten and appended files
+plain
 
   $ rm -rf repo
   $ hg init repo
   $ cd repo
-  $ hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' -q -oa
+  $ hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2'
+tags
+  $ cat .hg/localtags
+  66f7d451a68b85ed82ff5fcc254daf50c74144bd f
+  bebd167eb94d257ace0e814aeb98e6972ed2970d p2
 dag
   $ hg debugdag -t -b
   +2:f
@@ -15,10 +19,56 @@
   @default*/p2+2:tip
 tip
   $ hg id
-  f96e381c614c tip
+  000000000000
 glog
   $ hg glog --template '{rev}: {desc} [{branches}] @ {date}\n'
-  @  11: r11 [] @ 11.00
+  o  11: r11 [] @ 11.00
+  |
+  o  10: r10 [] @ 10.00
+  |
+  o    9: r9 [] @ 9.00
+  |\
+  | o  8: r8 [temp] @ 8.00
+  | |
+  | o  7: r7 [temp] @ 7.00
+  | |
+  | o  6: r6 [temp] @ 6.00
+  | |
+  | o  5: r5 [temp] @ 5.00
+  | |
+  o |  4: r4 [] @ 4.00
+  | |
+  o |  3: r3 [] @ 3.00
+  | |
+  o |  2: r2 [] @ 2.00
+  |/
+  o  1: r1 [] @ 1.00
+  |
+  o  0: r0 [] @ 0.00
+  
+
+overwritten files
+
+  $ rm -rf repo
+  $ hg init repo
+  $ cd repo
+  $ hg debugbuilddag '+2:f +3:p2 @temp <f+4 @default /p2 +2' -q -o
+tags
+  $ cat .hg/localtags
+  2a8ed67d317e370eac733dccc501b12d7b9c441a f
+  4226a30965b7af58f94d0cda7e6c2c9c63e6bf90 p2
+dag
+  $ hg debugdag -t -b
+  +2:f
+  +3:p2
+  @temp*f+3
+  @default*/p2+2:tip
+tip
+  $ hg id
+  000000000000
+glog
+  $ hg glog --template '{rev}: {desc} [{branches}] @ {date}\n'
+  o  11: r11 [] @ 11.00
   |
   o  10: r10 [] @ 10.00
   |
@@ -44,33 +94,7 @@
   
 glog of
   $ hg glog --template '{rev}: {desc} [{branches}]\n' of
-  @  11: r11 []
-  |
-  o  10: r10 []
-  |
-  o    9: r9 []
-  |\
-  | o  8: r8 [temp]
-  | |
-  | o  7: r7 [temp]
-  | |
-  | o  6: r6 [temp]
-  | |
-  | o  5: r5 [temp]
-  | |
-  o |  4: r4 []
-  | |
-  o |  3: r3 []
-  | |
-  o |  2: r2 []
-  |/
-  o  1: r1 []
-  |
-  o  0: r0 []
-  
-glog af
-  $ hg glog --template '{rev}: {desc} [{branches}]\n' af
-  @  11: r11 []
+  o  11: r11 []
   |
   o  10: r10 []
   |
@@ -96,25 +120,15 @@
   
 tags
   $ hg tags -v
-  tip                               11:f96e381c614c
-  p2                                 4:d9d6db981b55 local
-  f                                  1:73253def624e local
+  tip                               11:58a51e5eb988
+  p2                                 4:4226a30965b7 local
+  f                                  1:2a8ed67d317e local
 cat of
-  $ hg cat of
-  r11
-cat af
-  $ hg cat af
-  r0
-  r1
-  r5
-  r6
-  r7
-  r8
-  r9
-  r10
+  $ hg cat of --rev tip
   r11
   $ cd ..
 
+
 new and mergeable files
 
   $ rm -rf repo
@@ -129,10 +143,10 @@
   @default*/p2+2:tip
 tip
   $ hg id
-  9c5ce9b70771 tip
+  000000000000
 glog
   $ hg glog --template '{rev}: {desc} [{branches}] @ {date}\n'
-  @  11: r11 [] @ 11.00
+  o  11: r11 [] @ 11.00
   |
   o  10: r10 [] @ 10.00
   |
@@ -158,7 +172,7 @@
   
 glog mf
   $ hg glog --template '{rev}: {desc} [{branches}]\n' mf
-  @  11: r11 []
+  o  11: r11 []
   |
   o  10: r10 []
   |
@@ -253,7 +267,7 @@
   22
   23
 man
-  $ hg manifest
+  $ hg manifest --rev tip
   mf
   nf0
   nf1
@@ -268,7 +282,7 @@
   nf8
   nf9
 cat mf
-  $ hg cat mf
+  $ hg cat mf --rev tip
   0 r0
   1
   2 r1
@@ -295,27 +309,5 @@
   23
   $ cd ..
 
-command
 
-  $ rm -rf repo
-  $ hg init repo
-  $ cd repo
-  $ hg debugbuilddag '+2 !"touch X" +2' -q -o
-dag
-  $ hg debugdag -t -b
-  +4:tip
-glog
-  $ hg glog --template '{rev}: {desc} [{branches}]\n'
-  @  3: r3 []
-  |
-  o  2: r2 []
-  |
-  o  1: r1 []
-  |
-  o  0: r0 []
-  
-glog X
-  $ hg glog --template '{rev}: {desc} [{branches}]\n' X
-  o  2: r2 []
-  |
-  $ cd ..
+
--- a/tests/test-debugcomplete.t	Mon May 02 19:20:29 2011 +0200
+++ b/tests/test-debugcomplete.t	Mon May 02 19:21:30 2011 +0200
@@ -211,7 +211,7 @@
   cat: output, rev, decode, include, exclude
   copy: after, force, include, exclude, dry-run
   debugancestor: 
-  debugbuilddag: mergeable-file, appended-file, overwritten-file, new-file
+  debugbuilddag: mergeable-file, overwritten-file, new-file
   debugbundle: all
   debugcheckstate: 
   debugcommands: 
--- a/tests/test-getbundle.t	Mon May 02 19:20:29 2011 +0200
+++ b/tests/test-getbundle.t	Mon May 02 19:21:30 2011 +0200
@@ -12,41 +12,41 @@
   $ cd repo
   $ hg debugbuilddag -n -m '+2 :fork +5 :p1 *fork +6 :p2 /p1 :m1 +3' > /dev/null
   $ hg glog --template '{node}\n'
-  @  2bba2f40f321484159b395a43f20101d4bb7ead0
+  o  10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
   |
-  o  d9e5488323c782fe684573f3043369d199038b6f
+  o  4801a72e5d88cb515b0c7e40fae34180f3f837f2
   |
-  o  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
+  o  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
   |
-  o    733bf0910832b26b768a09172f325f995b5476e1
+  o    8365676dbab05860ce0d9110f2af51368b961bbd
   |\
-  | o  b5af5d6ea56d73ce24c40bc3cd19a862f74888ac
+  | o  5686dbbd9fc46cb806599c878d02fe1cb56b83d3
   | |
-  | o  6b57ee934bb2996050540f84cdfc8dcad1e7267d
+  | o  13c0170174366b441dc68e8e33757232fa744458
   | |
-  | o  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
+  | o  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
   | |
-  | o  c1818a9f5977dd4139a48f93f5425c67d44a9368
+  | o  700b7e19db54103633c4bf4a6a6b6d55f4d50c03
   | |
-  | o  6c725a58ad10aea441540bfd06c507f63e8b9cdd
+  | o  928b5f94cdb278bb536eba552de348a4e92ef24d
   | |
-  | o  18063366a155bd56b5618229ae2ac3e91849aa5e
+  | o  f34414c64173e0ecb61b25dc55e116dbbcc89bee
   | |
-  | o  a21d913c992197a2eb60b298521ec0f045a04799
+  | o  8931463777131cd73923e560b760061f2aa8a4bc
   | |
-  o |  b6b2b682253df2ffedc10e9415e4114202b303c5
+  o |  6621d79f61b23ec74cf4b69464343d9e0980ec8b
   | |
-  o |  2114148793524fd045998f71a45b0aaf139f752b
+  o |  bac16991d12ff45f9dc43c52da1946dfadb83e80
   | |
-  o |  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
+  o |  ff42371d57168345fdf1a3aac66a51f6a45d41d2
   | |
-  o |  ea919464b16e003894c48b6cb68df3cd9411b544
+  o |  d5f6e1ea452285324836a49d7d3c2a63cfed1d31
   | |
-  o |  0f82d97ec2778746743fbc996740d409558fda22
+  o |  713346a995c363120712aed1aee7e04afd867638
   |/
-  o  6e23b016bc0f0e79c7bd9dd372ccee07055d7fd4
+  o  29a4d1f17bd3f0779ca0525bebb1cfb51067c738
   |
-  o  10e64d654571f11577745b4d8372e859d9e4df63
+  o  7704483d56b2a7b5db54dcee7c62378ac629b348
   
   $ cd ..
 
@@ -57,62 +57,62 @@
 
   $ hg debuggetbundle repo bundle
   $ hg debugbundle bundle
-  10e64d654571f11577745b4d8372e859d9e4df63
-  6e23b016bc0f0e79c7bd9dd372ccee07055d7fd4
-  0f82d97ec2778746743fbc996740d409558fda22
-  ea919464b16e003894c48b6cb68df3cd9411b544
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  b6b2b682253df2ffedc10e9415e4114202b303c5
-  a21d913c992197a2eb60b298521ec0f045a04799
-  18063366a155bd56b5618229ae2ac3e91849aa5e
-  6c725a58ad10aea441540bfd06c507f63e8b9cdd
-  c1818a9f5977dd4139a48f93f5425c67d44a9368
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d
-  b5af5d6ea56d73ce24c40bc3cd19a862f74888ac
-  733bf0910832b26b768a09172f325f995b5476e1
-  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
-  d9e5488323c782fe684573f3043369d199038b6f
-  2bba2f40f321484159b395a43f20101d4bb7ead0
+  7704483d56b2a7b5db54dcee7c62378ac629b348
+  29a4d1f17bd3f0779ca0525bebb1cfb51067c738
+  713346a995c363120712aed1aee7e04afd867638
+  d5f6e1ea452285324836a49d7d3c2a63cfed1d31
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  6621d79f61b23ec74cf4b69464343d9e0980ec8b
+  8931463777131cd73923e560b760061f2aa8a4bc
+  f34414c64173e0ecb61b25dc55e116dbbcc89bee
+  928b5f94cdb278bb536eba552de348a4e92ef24d
+  700b7e19db54103633c4bf4a6a6b6d55f4d50c03
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
+  13c0170174366b441dc68e8e33757232fa744458
+  5686dbbd9fc46cb806599c878d02fe1cb56b83d3
+  8365676dbab05860ce0d9110f2af51368b961bbd
+  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
+  4801a72e5d88cb515b0c7e40fae34180f3f837f2
+  10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
 
 Get part of linear run:
 
-  $ hg debuggetbundle repo bundle -H d9e5488323c782fe684573f3043369d199038b6f -C 733bf0910832b26b768a09172f325f995b5476e1
+  $ hg debuggetbundle repo bundle -H 4801a72e5d88cb515b0c7e40fae34180f3f837f2 -C 8365676dbab05860ce0d9110f2af51368b961bbd
   $ hg debugbundle bundle
-  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
-  d9e5488323c782fe684573f3043369d199038b6f
+  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
+  4801a72e5d88cb515b0c7e40fae34180f3f837f2
 
 Get missing branch and merge:
 
-  $ hg debuggetbundle repo bundle -H d9e5488323c782fe684573f3043369d199038b6f -C 6b57ee934bb2996050540f84cdfc8dcad1e7267d
+  $ hg debuggetbundle repo bundle -H 4801a72e5d88cb515b0c7e40fae34180f3f837f2 -C 13c0170174366b441dc68e8e33757232fa744458
   $ hg debugbundle bundle
-  0f82d97ec2778746743fbc996740d409558fda22
-  ea919464b16e003894c48b6cb68df3cd9411b544
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  b6b2b682253df2ffedc10e9415e4114202b303c5
-  b5af5d6ea56d73ce24c40bc3cd19a862f74888ac
-  733bf0910832b26b768a09172f325f995b5476e1
-  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
-  d9e5488323c782fe684573f3043369d199038b6f
+  713346a995c363120712aed1aee7e04afd867638
+  d5f6e1ea452285324836a49d7d3c2a63cfed1d31
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  6621d79f61b23ec74cf4b69464343d9e0980ec8b
+  5686dbbd9fc46cb806599c878d02fe1cb56b83d3
+  8365676dbab05860ce0d9110f2af51368b961bbd
+  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
+  4801a72e5d88cb515b0c7e40fae34180f3f837f2
 
 Get from only one head:
 
-  $ hg debuggetbundle repo bundle -H 6c725a58ad10aea441540bfd06c507f63e8b9cdd -C 6e23b016bc0f0e79c7bd9dd372ccee07055d7fd4
+  $ hg debuggetbundle repo bundle -H 928b5f94cdb278bb536eba552de348a4e92ef24d -C 29a4d1f17bd3f0779ca0525bebb1cfb51067c738
   $ hg debugbundle bundle
-  a21d913c992197a2eb60b298521ec0f045a04799
-  18063366a155bd56b5618229ae2ac3e91849aa5e
-  6c725a58ad10aea441540bfd06c507f63e8b9cdd
+  8931463777131cd73923e560b760061f2aa8a4bc
+  f34414c64173e0ecb61b25dc55e116dbbcc89bee
+  928b5f94cdb278bb536eba552de348a4e92ef24d
 
 Get parts of two branches:
 
-  $ hg debuggetbundle repo bundle -H 6b57ee934bb2996050540f84cdfc8dcad1e7267d -C c1818a9f5977dd4139a48f93f5425c67d44a9368 -H 2114148793524fd045998f71a45b0aaf139f752b -C ea919464b16e003894c48b6cb68df3cd9411b544
+  $ hg debuggetbundle repo bundle -H 13c0170174366b441dc68e8e33757232fa744458 -C 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 -H bac16991d12ff45f9dc43c52da1946dfadb83e80 -C d5f6e1ea452285324836a49d7d3c2a63cfed1d31
   $ hg debugbundle bundle
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
+  13c0170174366b441dc68e8e33757232fa744458
 
 Check that we get all needed file changes:
 
@@ -120,54 +120,54 @@
   format: id, p1, p2, cset, delta base, len(delta)
   
   changelog
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc ea919464b16e003894c48b6cb68df3cd9411b544 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc ea919464b16e003894c48b6cb68df3cd9411b544 99
-  2114148793524fd045998f71a45b0aaf139f752b 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 99
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7 c1818a9f5977dd4139a48f93f5425c67d44a9368 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 2114148793524fd045998f71a45b0aaf139f752b 102
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 102
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 99
+  bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 99
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 bac16991d12ff45f9dc43c52da1946dfadb83e80 102
+  13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 102
   
   manifest
-  dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 591f732a3faf1fb903815273f3c199a514a61ccb 113
-  0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
-  eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
-  b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d eb498cd9af6c44108e43041e951ce829e29f6c80 114
+  dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 591f732a3faf1fb903815273f3c199a514a61ccb 113
+  0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
+  eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
+  b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 eb498cd9af6c44108e43041e951ce829e29f6c80 114
   
   mf
-  4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
-  c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
-  266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 c7b583de053293870e145f45bd2d61643563fd06 149
-  698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
+  4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
+  c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
+  266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 c7b583de053293870e145f45bd2d61643563fd06 149
+  698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
   
   nf11
-  33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0000000000000000000000000000000000000000 16
+  33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 16
   
   nf12
-  ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 0000000000000000000000000000000000000000 16
+  ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 0000000000000000000000000000000000000000 16
   
   nf4
-  3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 0000000000000000000000000000000000000000 15
+  3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 15
   
   nf5
-  0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 0000000000000000000000000000000000000000 15
+  0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 0000000000000000000000000000000000000000 15
 
 Get branch and merge:
 
-  $ hg debuggetbundle repo bundle -C 10e64d654571f11577745b4d8372e859d9e4df63 -H 6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
+  $ hg debuggetbundle repo bundle -C 7704483d56b2a7b5db54dcee7c62378ac629b348 -H 0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
   $ hg debugbundle bundle
-  6e23b016bc0f0e79c7bd9dd372ccee07055d7fd4
-  0f82d97ec2778746743fbc996740d409558fda22
-  ea919464b16e003894c48b6cb68df3cd9411b544
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  b6b2b682253df2ffedc10e9415e4114202b303c5
-  a21d913c992197a2eb60b298521ec0f045a04799
-  18063366a155bd56b5618229ae2ac3e91849aa5e
-  6c725a58ad10aea441540bfd06c507f63e8b9cdd
-  c1818a9f5977dd4139a48f93f5425c67d44a9368
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d
-  b5af5d6ea56d73ce24c40bc3cd19a862f74888ac
-  733bf0910832b26b768a09172f325f995b5476e1
-  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
+  29a4d1f17bd3f0779ca0525bebb1cfb51067c738
+  713346a995c363120712aed1aee7e04afd867638
+  d5f6e1ea452285324836a49d7d3c2a63cfed1d31
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  6621d79f61b23ec74cf4b69464343d9e0980ec8b
+  8931463777131cd73923e560b760061f2aa8a4bc
+  f34414c64173e0ecb61b25dc55e116dbbcc89bee
+  928b5f94cdb278bb536eba552de348a4e92ef24d
+  700b7e19db54103633c4bf4a6a6b6d55f4d50c03
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
+  13c0170174366b441dc68e8e33757232fa744458
+  5686dbbd9fc46cb806599c878d02fe1cb56b83d3
+  8365676dbab05860ce0d9110f2af51368b961bbd
+  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
 
 
 = Test via HTTP =
@@ -178,33 +178,33 @@
   $ cat hg.pid >> $DAEMON_PIDS
   $ hg debuggetbundle http://localhost:$HGPORT/ bundle
   $ hg debugbundle bundle
-  10e64d654571f11577745b4d8372e859d9e4df63
-  6e23b016bc0f0e79c7bd9dd372ccee07055d7fd4
-  0f82d97ec2778746743fbc996740d409558fda22
-  ea919464b16e003894c48b6cb68df3cd9411b544
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  b6b2b682253df2ffedc10e9415e4114202b303c5
-  a21d913c992197a2eb60b298521ec0f045a04799
-  18063366a155bd56b5618229ae2ac3e91849aa5e
-  6c725a58ad10aea441540bfd06c507f63e8b9cdd
-  c1818a9f5977dd4139a48f93f5425c67d44a9368
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d
-  b5af5d6ea56d73ce24c40bc3cd19a862f74888ac
-  733bf0910832b26b768a09172f325f995b5476e1
-  6e9a5adf5437e49c746288cf95c5ac34fa8f2f72
-  d9e5488323c782fe684573f3043369d199038b6f
-  2bba2f40f321484159b395a43f20101d4bb7ead0
+  7704483d56b2a7b5db54dcee7c62378ac629b348
+  29a4d1f17bd3f0779ca0525bebb1cfb51067c738
+  713346a995c363120712aed1aee7e04afd867638
+  d5f6e1ea452285324836a49d7d3c2a63cfed1d31
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  6621d79f61b23ec74cf4b69464343d9e0980ec8b
+  8931463777131cd73923e560b760061f2aa8a4bc
+  f34414c64173e0ecb61b25dc55e116dbbcc89bee
+  928b5f94cdb278bb536eba552de348a4e92ef24d
+  700b7e19db54103633c4bf4a6a6b6d55f4d50c03
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
+  13c0170174366b441dc68e8e33757232fa744458
+  5686dbbd9fc46cb806599c878d02fe1cb56b83d3
+  8365676dbab05860ce0d9110f2af51368b961bbd
+  0b2f73f04880d9cb6a5cd8a757f0db0ad01e32c3
+  4801a72e5d88cb515b0c7e40fae34180f3f837f2
+  10c14a2cc935e1d8c31f9e98587dcf27fb08a6da
 
 Get parts of two branches:
 
-  $ hg debuggetbundle http://localhost:$HGPORT/ bundle -H 6b57ee934bb2996050540f84cdfc8dcad1e7267d -C c1818a9f5977dd4139a48f93f5425c67d44a9368 -H 2114148793524fd045998f71a45b0aaf139f752b -C ea919464b16e003894c48b6cb68df3cd9411b544
+  $ hg debuggetbundle http://localhost:$HGPORT/ bundle -H 13c0170174366b441dc68e8e33757232fa744458 -C 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 -H bac16991d12ff45f9dc43c52da1946dfadb83e80 -C d5f6e1ea452285324836a49d7d3c2a63cfed1d31
   $ hg debugbundle bundle
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc
-  2114148793524fd045998f71a45b0aaf139f752b
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2
+  bac16991d12ff45f9dc43c52da1946dfadb83e80
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043
+  13c0170174366b441dc68e8e33757232fa744458
 
 Check that we get all needed file changes:
 
@@ -212,34 +212,34 @@
   format: id, p1, p2, cset, delta base, len(delta)
   
   changelog
-  74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc ea919464b16e003894c48b6cb68df3cd9411b544 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc ea919464b16e003894c48b6cb68df3cd9411b544 99
-  2114148793524fd045998f71a45b0aaf139f752b 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 99
-  2c0ec49482e8abe888b7bd090b5827acfc22b3d7 c1818a9f5977dd4139a48f93f5425c67d44a9368 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 2114148793524fd045998f71a45b0aaf139f752b 102
-  6b57ee934bb2996050540f84cdfc8dcad1e7267d 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 102
+  ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 d5f6e1ea452285324836a49d7d3c2a63cfed1d31 99
+  bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 ff42371d57168345fdf1a3aac66a51f6a45d41d2 99
+  63476832d8ec6558cf9bbe3cbe0c757e5cf18043 700b7e19db54103633c4bf4a6a6b6d55f4d50c03 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 bac16991d12ff45f9dc43c52da1946dfadb83e80 102
+  13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 102
   
   manifest
-  dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 591f732a3faf1fb903815273f3c199a514a61ccb 113
-  0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
-  eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
-  b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d eb498cd9af6c44108e43041e951ce829e29f6c80 114
+  dac7984588fc4eea7acbf39693a9c1b06f5b175d 591f732a3faf1fb903815273f3c199a514a61ccb 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 591f732a3faf1fb903815273f3c199a514a61ccb 113
+  0772616e6b48a76afb6c1458e193cbb3dae2e4ff dac7984588fc4eea7acbf39693a9c1b06f5b175d 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 dac7984588fc4eea7acbf39693a9c1b06f5b175d 113
+  eb498cd9af6c44108e43041e951ce829e29f6c80 bff2f4817ced57b386caf7c4e3e36a4bc9af7e93 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0772616e6b48a76afb6c1458e193cbb3dae2e4ff 295
+  b15709c071ddd2d93188508ba156196ab4f19620 eb498cd9af6c44108e43041e951ce829e29f6c80 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 eb498cd9af6c44108e43041e951ce829e29f6c80 114
   
   mf
-  4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
-  c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
-  266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 c7b583de053293870e145f45bd2d61643563fd06 149
-  698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
+  4f73f97080266ab8e0c0561ca8d0da3eaf65b695 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 301ca08d026bb72cb4258a9d211bdf7ca0bcd810 17
+  c7b583de053293870e145f45bd2d61643563fd06 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 4f73f97080266ab8e0c0561ca8d0da3eaf65b695 18
+  266ee3c0302a5a18f1cf96817ac79a51836179e9 edc0f6b8db80d68ae6aff2b19f7e5347ab68fa63 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 c7b583de053293870e145f45bd2d61643563fd06 149
+  698c6a36220548cd3903ca7dada27c59aa500c52 266ee3c0302a5a18f1cf96817ac79a51836179e9 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 266ee3c0302a5a18f1cf96817ac79a51836179e9 19
   
   nf11
-  33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 2c0ec49482e8abe888b7bd090b5827acfc22b3d7 0000000000000000000000000000000000000000 16
+  33fbc651630ffa7ccbebfe4eb91320a873e7291c 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 63476832d8ec6558cf9bbe3cbe0c757e5cf18043 0000000000000000000000000000000000000000 16
   
   nf12
-  ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 6b57ee934bb2996050540f84cdfc8dcad1e7267d 0000000000000000000000000000000000000000 16
+  ddce0544363f037e9fb889faca058f52dc01c0a5 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 13c0170174366b441dc68e8e33757232fa744458 0000000000000000000000000000000000000000 16
   
   nf4
-  3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 74a573f2ae100f1cedfad9aa7b96f8eaab1dabfc 0000000000000000000000000000000000000000 15
+  3c1407305701051cbed9f9cb9a68bdfb5997c235 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 ff42371d57168345fdf1a3aac66a51f6a45d41d2 0000000000000000000000000000000000000000 15
   
   nf5
-  0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 2114148793524fd045998f71a45b0aaf139f752b 0000000000000000000000000000000000000000 15
+  0dbd89c185f53a1727c54cd1ce256482fa23968e 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 bac16991d12ff45f9dc43c52da1946dfadb83e80 0000000000000000000000000000000000000000 15
 
 Verify we hit the HTTP server:
 
@@ -247,7 +247,7 @@
   * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
   * - - [*] "GET /?cmd=getbundle HTTP/1.1" 200 - (glob)
   * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
-  * - - [*] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:common=c1818a9f5977dd4139a48f93f5425c67d44a9368+ea919464b16e003894c48b6cb68df3cd9411b544&heads=6b57ee934bb2996050540f84cdfc8dcad1e7267d+2114148793524fd045998f71a45b0aaf139f752b (glob)
+  * - - [*] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:common=700b7e19db54103633c4bf4a6a6b6d55f4d50c03+d5f6e1ea452285324836a49d7d3c2a63cfed1d31&heads=13c0170174366b441dc68e8e33757232fa744458+bac16991d12ff45f9dc43c52da1946dfadb83e80 (glob)
 
   $ cat error.log