tests/test-bundle2.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Wed, 20 Aug 2014 01:15:09 -0700
changeset 22350 6d113cc7a31a
parent 22347 7198cb9b56b9
child 22354 a89add6c6b2f
permissions -rw-r--r--
push: only push obsmarkers relevant to the "pushed subset" We should only exchange obsolete markers related to the changesets that are being exchanged. For example, if `A'` is a successor of `A`, we do not want to push the marker if we are not exchanging `A'`. Otherwise `A` would disappear without a successor, leading to confusion for both users and the evolution mechanism. Therefore we now exchange only the markers relevant to the subset of nodes involved in the push (the nodes themselves may be already common but were selected by --rev (or the lack of --rev)). Note that all selected markers are still exchanged on each push. We do not have a discovery protocol for markers in core yet. Such discovery would save us the exchange of markers known on both side.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
     1
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
     2
  $ getmainid() {
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
     3
  >    hg -R main log --template '{node}\n' --rev "$1"
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
     4
  > }
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     5
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     6
Create an extension to test bundle2 API
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     7
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     8
  $ cat > bundle2.py << EOF
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
     9
  > """A small extension to test bundle2 implementation
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    10
  > 
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    11
  > Current bundle2 implementation is far too limited to be used in any core
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    12
  > code. We still need to be able to test it while it grow up.
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    13
  > """
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    14
  > 
21964
ef555e456420 test-bundle2: add missing os import
Matt Mackall <mpm@selenic.com>
parents: 21956
diff changeset
    15
  > import sys, os
21956
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    16
  > from mercurial import cmdutil
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    17
  > from mercurial import util
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    18
  > from mercurial import bundle2
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    19
  > from mercurial import scmutil
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    20
  > from mercurial import discovery
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    21
  > from mercurial import changegroup
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    22
  > from mercurial import error
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
    23
  > from mercurial import obsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
    24
  > 
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
    25
  > obsolete._enabled = True
21956
93b804fced5a test-bundle2: move file mode setting after sys import
Matt Mackall <mpm@selenic.com>
parents: 21941
diff changeset
    26
  > 
21547
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    27
  > try:
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    28
  >     import msvcrt
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    29
  >     msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    30
  >     msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    31
  >     msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    32
  > except ImportError:
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    33
  >     pass
565d45919db8 bundle2: make sure standard stream are binary
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21187
diff changeset
    34
  > 
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    35
  > cmdtable = {}
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    36
  > command = cmdutil.command(cmdtable)
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    37
  > 
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
    38
  > ELEPHANTSSONG = """Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
    39
  > Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
    40
  > Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko."""
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
    41
  > assert len(ELEPHANTSSONG) == 178 # future test say 178 bytes, trust it.
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
    42
  > 
20890
ec7fc110faee bundle2: introduce a `parthandler` decorator
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20889
diff changeset
    43
  > @bundle2.parthandler('test:song')
20948
329cd74b52bd bundle2: introduce a bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20947
diff changeset
    44
  > def songhandler(op, part):
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
    45
  >     """handle a "test:song" bundle2 part, printing the lyrics on stdin"""
20948
329cd74b52bd bundle2: introduce a bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20947
diff changeset
    46
  >     op.ui.write('The choir starts singing:\n')
20949
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
    47
  >     verses = 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
    48
  >     for line in part.read().split('\n'):
20948
329cd74b52bd bundle2: introduce a bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20947
diff changeset
    49
  >         op.ui.write('    %s\n' % line)
20949
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
    50
  >         verses += 1
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
    51
  >     op.records.add('song', {'verses': verses})
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
    52
  > 
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
    53
  > @bundle2.parthandler('test:ping')
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
    54
  > def pinghandler(op, part):
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
    55
  >     op.ui.write('received ping request (id %i)\n' % part.id)
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    56
  >     if op.reply is not None and 'ping-pong' in op.reply.capabilities:
21133
bef4a2adc532 bundle2: include stderr when capturing handlers output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21131
diff changeset
    57
  >         op.ui.write_err('replying to ping request (id %i)\n' % part.id)
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
    58
  >         op.reply.newpart('test:pong', [('in-reply-to', str(part.id))])
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
    59
  > 
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    60
  > @bundle2.parthandler('test:debugreply')
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    61
  > def debugreply(op, part):
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    62
  >     """print data about the capacity of the bundle reply"""
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    63
  >     if op.reply is None:
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    64
  >         op.ui.write('debugreply: no reply\n')
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    65
  >     else:
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    66
  >         op.ui.write('debugreply: capabilities:\n')
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    67
  >         for cap in sorted(op.reply.capabilities):
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
    68
  >             op.ui.write('debugreply:     %r\n' % cap)
21136
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
    69
  >             for val in op.reply.capabilities[cap]:
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
    70
  >                 op.ui.write('debugreply:         %r\n' % val)
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
    71
  > 
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
    72
  > @command('bundle2',
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
    73
  >          [('', 'param', [], 'stream level parameter'),
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
    74
  >           ('', 'unknown', False, 'include an unknown mandatory part in the bundle'),
21625
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
    75
  >           ('', 'unknownparams', False, 'include an unknown part parameters in the bundle'),
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
    76
  >           ('', 'parts', False, 'include some arbitrary parts to the bundle'),
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
    77
  >           ('', 'reply', False, 'produce a reply bundle'),
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
    78
  >           ('', 'pushrace', False, 'includes a check:head part with unknown nodes'),
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
    79
  >           ('r', 'rev', [], 'includes those changeset in the bundle'),],
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
    80
  >          '[OUTPUTFILE]')
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
    81
  > def cmdbundle2(ui, repo, path=None, **opts):
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
    82
  >     """write a bundle2 container on standard ouput"""
20842
938718d72624 bundle2: print debug information during bundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20841
diff changeset
    83
  >     bundler = bundle2.bundle20(ui)
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
    84
  >     for p in opts['param']:
20809
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
    85
  >         p = p.split('=', 1)
20813
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
    86
  >         try:
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
    87
  >             bundler.addparam(*p)
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
    88
  >         except ValueError, exc:
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
    89
  >             raise util.Abort('%s' % exc)
20809
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
    90
  > 
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
    91
  >     if opts['reply']:
21137
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
    92
  >         capsstring = 'ping-pong\nelephants=babar,celeste\ncity%3D%21=celeste%2Cville'
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
    93
  >         bundler.newpart('b2x:replycaps', data=capsstring)
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
    94
  > 
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
    95
  >     if opts['pushrace']:
21604
c399bf961cb9 bundle2: the ability to set ``data`` attribute of the part is now official
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21600
diff changeset
    96
  >         # also serve to test the assignement of data outside of init
c399bf961cb9 bundle2: the ability to set ``data`` attribute of the part is now official
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21600
diff changeset
    97
  >         part = bundler.newpart('b2x:check:heads')
c399bf961cb9 bundle2: the ability to set ``data`` attribute of the part is now official
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21600
diff changeset
    98
  >         part.data = '01234567890123456789'
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
    99
  > 
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   100
  >     revs = opts['rev']
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   101
  >     if 'rev' in opts:
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   102
  >         revs = scmutil.revrange(repo, opts['rev'])
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   103
  >         if revs:
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   104
  >             # very crude version of a changegroup part creation
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   105
  >             bundled = repo.revs('%ld::%ld', revs, revs)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   106
  >             headmissing = [c.node() for c in repo.set('heads(%ld)', revs)]
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   107
  >             headcommon  = [c.node() for c in repo.set('parents(%ld) - %ld', revs, revs)]
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   108
  >             outgoing = discovery.outgoing(repo.changelog, headcommon, headmissing)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   109
  >             cg = changegroup.getlocalbundle(repo, 'test:bundle2', outgoing, None)
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   110
  >             bundler.newpart('b2x:changegroup', data=cg.getchunks())
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   111
  > 
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   112
  >     if opts['parts']:
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   113
  >        bundler.newpart('test:empty')
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   114
  >        # add a second one to make sure we handle multiple parts
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   115
  >        bundler.newpart('test:empty')
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   116
  >        bundler.newpart('test:song', data=ELEPHANTSSONG)
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   117
  >        bundler.newpart('test:debugreply')
21605
f9dabfceb259 bundle2: introduce a ``addparam`` method on part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21604
diff changeset
   118
  >        mathpart = bundler.newpart('test:math')
f9dabfceb259 bundle2: introduce a ``addparam`` method on part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21604
diff changeset
   119
  >        mathpart.addparam('pi', '3.14')
f9dabfceb259 bundle2: introduce a ``addparam`` method on part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21604
diff changeset
   120
  >        mathpart.addparam('e', '2.72')
f9dabfceb259 bundle2: introduce a ``addparam`` method on part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21604
diff changeset
   121
  >        mathpart.addparam('cooking', 'raw', mandatory=False)
f9dabfceb259 bundle2: introduce a ``addparam`` method on part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21604
diff changeset
   122
  >        mathpart.data = '42'
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   123
  >        # advisory known part with unknown mandatory param
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   124
  >        bundler.newpart('test:song', [('randomparam','')])
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   125
  >     if opts['unknown']:
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   126
  >        bundler.newpart('test:UNKNOWN', data='some random content')
21625
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   127
  >     if opts['unknownparams']:
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   128
  >        bundler.newpart('test:SONG', [('randomparams', '')])
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   129
  >     if opts['parts']:
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
   130
  >        bundler.newpart('test:ping')
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   131
  > 
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   132
  >     if path is None:
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   133
  >        file = sys.stdout
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   134
  >     else:
22089
1e392c63fb76 tests: more bundle2 non-binary file test fixes
Matt Mackall <mpm@selenic.com>
parents: 21964
diff changeset
   135
  >         file = open(path, 'wb')
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   136
  > 
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   137
  >     for chunk in bundler.getchunks():
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   138
  >         file.write(chunk)
20802
520df53ad26a bundle2: a very first version of bundle2 unbundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20801
diff changeset
   139
  > 
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   140
  > @command('unbundle2', [], '')
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   141
  > def cmdunbundle2(ui, repo, replypath=None):
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   142
  >     """process a bundle2 stream from stdin on the current repo"""
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   143
  >     try:
20952
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   144
  >         tr = None
20946
e910336539f7 bundle2: lock the repo during unbundle test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20892
diff changeset
   145
  >         lock = repo.lock()
20952
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   146
  >         tr = repo.transaction('processbundle')
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   147
  >         try:
20947
c33d7bf53812 bundle2: feed a unbundle20 to the `processbundle` function
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20946
diff changeset
   148
  >             unbundler = bundle2.unbundle20(ui, sys.stdin)
20952
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   149
  >             op = bundle2.processbundle(repo, unbundler, lambda: tr)
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   150
  >             tr.close()
21618
7568f5c1c801 bundle2: move exception classes into the error module
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21617
diff changeset
   151
  >         except error.BundleValueError, exc:
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   152
  >             raise util.Abort('missing support for %s' % exc)
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   153
  >         except error.PushRaced, exc:
21185
5b3717e1a3ea bundle2: add an error message to push race error
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21184
diff changeset
   154
  >             raise util.Abort('push race: %s' % exc)
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   155
  >     finally:
20952
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   156
  >         if tr is not None:
b24ee5076b94 bundle2: make it possible have a global transaction for the unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20951
diff changeset
   157
  >             tr.release()
20946
e910336539f7 bundle2: lock the repo during unbundle test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20892
diff changeset
   158
  >         lock.release()
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   159
  >         remains = sys.stdin.read()
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   160
  >         ui.write('%i unread bytes\n' % len(remains))
20949
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
   161
  >     if op.records['song']:
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
   162
  >         totalverses = sum(r['verses'] for r in op.records['song'])
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
   163
  >         ui.write('%i total verses sung\n' % totalverses)
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   164
  >     for rec in op.records['changegroup']:
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   165
  >         ui.write('addchangegroup return: %i\n' % rec['return'])
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   166
  >     if op.reply is not None and replypath is not None:
22089
1e392c63fb76 tests: more bundle2 non-binary file test fixes
Matt Mackall <mpm@selenic.com>
parents: 21964
diff changeset
   167
  >         file = open(replypath, 'wb')
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   168
  >         for chunk in op.reply.getchunks():
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   169
  >             file.write(chunk)
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   170
  > 
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   171
  > @command('statbundle2', [], '')
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   172
  > def cmdstatbundle2(ui, repo):
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   173
  >     """print statistic on the bundle2 container read from stdin"""
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   174
  >     unbundler = bundle2.unbundle20(ui, sys.stdin)
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   175
  >     try:
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   176
  >         params = unbundler.params
21628
7c5a85619dca bundle2: raise BundleValueError error for stream level unsupported params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21626
diff changeset
   177
  >     except error.BundleValueError, exc:
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   178
  >        raise util.Abort('unknown parameters: %s' % exc)
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   179
  >     ui.write('options count: %i\n' % len(params))
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   180
  >     for key in sorted(params):
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   181
  >         ui.write('- %s\n' % key)
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   182
  >         value = params[key]
20810
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   183
  >         if value is not None:
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   184
  >             ui.write('    %s\n' % value)
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   185
  >     count = 0
21129
07bcbf326c8d bundle2: use an official iterparts method to unbundle parts
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21075
diff changeset
   186
  >     for p in unbundler.iterparts():
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   187
  >         count += 1
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   188
  >         ui.write('  :%s:\n' % p.type)
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   189
  >         ui.write('    mandatory: %i\n' % len(p.mandatoryparams))
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   190
  >         ui.write('    advisory: %i\n' % len(p.advisoryparams))
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   191
  >         ui.write('    payload: %i bytes\n' % len(p.read()))
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   192
  >     ui.write('parts count:   %i\n' % count)
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   193
  > EOF
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   194
  $ cat >> $HGRCPATH << EOF
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   195
  > [extensions]
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   196
  > bundle2=$TESTTMP/bundle2.py
21147
2a246e737f92 bundle2: move bundle2 config option to section "experimental"
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21146
diff changeset
   197
  > [experimental]
2a246e737f92 bundle2: move bundle2 config option to section "experimental"
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21146
diff changeset
   198
  > bundle2-exp=True
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   199
  > [ui]
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   200
  > ssh=python "$TESTDIR/dummyssh"
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   201
  > logtemplate={rev}:{node|short} {phase} {author} {bookmarks} {desc|firstline}
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   202
  > [web]
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   203
  > push_ssl = false
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   204
  > allow_push = *
21648
c26a11cdafeb bundle2: use non-publishing repo in test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21647
diff changeset
   205
  > [phases]
c26a11cdafeb bundle2: use non-publishing repo in test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21647
diff changeset
   206
  > publish=False
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   207
  > EOF
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   208
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   209
The extension requires a repo (currently unused)
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   210
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   211
  $ hg init main
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   212
  $ cd main
20803
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   213
  $ touch a
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   214
  $ hg add a
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   215
  $ hg commit -m 'a'
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   216
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   217
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   218
Empty bundle
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   219
=================
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   220
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   221
- no option
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   222
- no parts
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   223
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   224
Test bundling
20801
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   225
9c5183cb9bca bundle2: very first version of a bundle2 bundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
   226
  $ hg bundle2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   227
  HG2X\x00\x00\x00\x00 (no-eol) (esc)
20802
520df53ad26a bundle2: a very first version of bundle2 unbundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20801
diff changeset
   228
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   229
Test unbundling
20802
520df53ad26a bundle2: a very first version of bundle2 unbundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20801
diff changeset
   230
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   231
  $ hg bundle2 | hg statbundle2
20802
520df53ad26a bundle2: a very first version of bundle2 unbundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20801
diff changeset
   232
  options count: 0
520df53ad26a bundle2: a very first version of bundle2 unbundler
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20801
diff changeset
   233
  parts count:   0
20803
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   234
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   235
Test old style bundle are detected and refused
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   236
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   237
  $ hg bundle --all ../bundle.hg
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   238
  1 changesets found
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   239
  $ hg statbundle2 < ../bundle.hg
20803
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   240
  abort: unknown bundle version 10
88db3e615319 bundle2: make sure the unbundler refuse non bundle2 stream
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20802
diff changeset
   241
  [255]
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   242
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   243
Test parameters
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   244
=================
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   245
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   246
- some options
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   247
- no parts
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   248
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   249
advisory parameters, no value
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   250
-------------------------------
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   251
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   252
Simplest possible parameters form
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   253
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   254
Test generation simple option
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   255
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   256
  $ hg bundle2 --param 'caution'
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   257
  HG2X\x00\x07caution\x00\x00 (no-eol) (esc)
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   258
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   259
Test unbundling
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   260
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   261
  $ hg bundle2 --param 'caution' | hg statbundle2
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   262
  options count: 1
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   263
  - caution
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   264
  parts count:   0
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   265
20804
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   266
Test generation multiple option
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   267
db9d3991d2c6 bundle2: support bundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20803
diff changeset
   268
  $ hg bundle2 --param 'caution' --param 'meal'
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   269
  HG2X\x00\x0ccaution meal\x00\x00 (no-eol) (esc)
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   270
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   271
Test unbundling
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   272
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   273
  $ hg bundle2 --param 'caution' --param 'meal' | hg statbundle2
20805
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   274
  options count: 2
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   275
  - caution
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   276
  - meal
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   277
  parts count:   0
c5aaeca0cfbf bundle2: support for unbundling simple parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20804
diff changeset
   278
20809
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   279
advisory parameters, with value
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   280
-------------------------------
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   281
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   282
Test generation
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   283
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   284
  $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants'
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   285
  HG2X\x00\x1ccaution meal=vegan elephants\x00\x00 (no-eol) (esc)
20809
b93bb639451a bundle2: support for bundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20805
diff changeset
   286
20810
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   287
Test unbundling
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   288
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   289
  $ hg bundle2 --param 'caution' --param 'meal=vegan' --param 'elephants' | hg statbundle2
20810
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   290
  options count: 3
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   291
  - caution
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   292
  - elephants
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   293
  - meal
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   294
      vegan
47293877b54c bundle2: support for unbundling parameter value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20809
diff changeset
   295
  parts count:   0
20811
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   296
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   297
parameter with special char in value
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   298
---------------------------------------------------
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   299
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   300
Test generation
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   301
9785c3f8f598 bundle2: urlquote stream parameter name and value
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20810
diff changeset
   302
  $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   303
  HG2X\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00 (no-eol) (esc)
20812
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   304
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   305
Test unbundling
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   306
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   307
  $ hg bundle2 --param 'e|! 7/=babar%#==tutu' --param simple | hg statbundle2
20812
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   308
  options count: 2
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   309
  - e|! 7/
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   310
      babar%#==tutu
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   311
  - simple
e2f908773754 bundle2: urlunquote stream parameter name and value during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20811
diff changeset
   312
  parts count:   0
20813
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   313
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   314
Test unknown mandatory option
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   315
---------------------------------------------------
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   316
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   317
  $ hg bundle2 --param 'Gravity' | hg statbundle2
21628
7c5a85619dca bundle2: raise BundleValueError error for stream level unsupported params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21626
diff changeset
   318
  abort: unknown parameters: Stream Parameter - Gravity
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   319
  [255]
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   320
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   321
Test debug output
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   322
---------------------------------------------------
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   323
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   324
bundling debug
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   325
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   326
  $ hg bundle2 --debug --param 'e|! 7/=babar%#==tutu' --param simple ../out.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   327
  start emission of HG2X stream
20842
938718d72624 bundle2: print debug information during bundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20841
diff changeset
   328
  bundle parameter: e%7C%21%207/=babar%25%23%3D%3Dtutu simple
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   329
  start of parts
20842
938718d72624 bundle2: print debug information during bundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20841
diff changeset
   330
  end of bundle
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   331
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   332
file content is ok
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   333
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   334
  $ cat ../out.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   335
  HG2X\x00)e%7C%21%207/=babar%25%23%3D%3Dtutu simple\x00\x00 (no-eol) (esc)
20841
cff562fe77a0 bundle2: add ability to write to a file to the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20814
diff changeset
   336
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   337
unbundling debug
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   338
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   339
  $ hg statbundle2 --debug < ../out.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   340
  start processing of HG2X stream
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   341
  reading bundle2 stream parameters
20844
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   342
  ignoring unknown parameter 'e|! 7/'
2631204d7305 bundle2: implement the mandatory/advisory logic for parameter
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20843
diff changeset
   343
  ignoring unknown parameter 'simple'
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   344
  options count: 2
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   345
  - e|! 7/
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   346
      babar%#==tutu
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   347
  - simple
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   348
  start extraction of bundle2 parts
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   349
  part header size: 0
20843
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   350
  end of bundle2 stream
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   351
  parts count:   0
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   352
0641b41b0b49 bundle2: print debug information during unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20842
diff changeset
   353
20813
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   354
Test buggy input
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   355
---------------------------------------------------
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   356
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   357
empty parameter name
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   358
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   359
  $ hg bundle2 --param '' --quiet
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   360
  abort: empty parameter name
8c74b3ce5b70 bundle2: refuse empty parameter name
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20812
diff changeset
   361
  [255]
20814
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   362
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   363
bad parameter name
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   364
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   365
  $ hg bundle2 --param 42babar
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   366
  abort: non letter first character: '42babar'
8532f5e1b9df bundle2: force the first char of parameter to be an letter.
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20813
diff changeset
   367
  [255]
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   368
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   369
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   370
Test part
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   371
=================
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   372
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   373
  $ hg bundle2 --parts ../parts.hg2 --debug
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   374
  start emission of HG2X stream
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   375
  bundle parameter: 
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   376
  start of parts
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   377
  bundle part: "test:empty"
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   378
  bundle part: "test:empty"
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   379
  bundle part: "test:song"
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   380
  bundle part: "test:debugreply"
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   381
  bundle part: "test:math"
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   382
  bundle part: "test:song"
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   383
  bundle part: "test:ping"
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   384
  end of bundle
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   385
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   386
  $ cat ../parts.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   387
  HG2X\x00\x00\x00\x11 (esc)
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   388
  test:empty\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11 (esc)
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   389
  test:empty\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x10	test:song\x00\x00\x00\x02\x00\x00\x00\x00\x00\xb2Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko (esc)
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   390
  Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   391
  Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.\x00\x00\x00\x00\x00\x16\x0ftest:debugreply\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00+	test:math\x00\x00\x00\x04\x02\x01\x02\x04\x01\x04\x07\x03pi3.14e2.72cookingraw\x00\x00\x00\x0242\x00\x00\x00\x00\x00\x1d	test:song\x00\x00\x00\x05\x01\x00\x0b\x00randomparam\x00\x00\x00\x00\x00\x10	test:ping\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc)
20856
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   392
8a6a86c9a5b5 bundle2: support bundling of empty part (with a type)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20844
diff changeset
   393
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   394
  $ hg statbundle2 < ../parts.hg2
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   395
  options count: 0
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   396
    :test:empty:
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   397
      mandatory: 0
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   398
      advisory: 0
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   399
      payload: 0 bytes
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   400
    :test:empty:
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   401
      mandatory: 0
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   402
      advisory: 0
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   403
      payload: 0 bytes
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   404
    :test:song:
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   405
      mandatory: 0
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   406
      advisory: 0
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   407
      payload: 178 bytes
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   408
    :test:debugreply:
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   409
      mandatory: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   410
      advisory: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   411
      payload: 0 bytes
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   412
    :test:math:
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   413
      mandatory: 2
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   414
      advisory: 1
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   415
      payload: 2 bytes
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   416
    :test:song:
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   417
      mandatory: 1
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   418
      advisory: 0
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   419
      payload: 0 bytes
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   420
    :test:ping:
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   421
      mandatory: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   422
      advisory: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   423
      payload: 0 bytes
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   424
  parts count:   7
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   425
20888
0b0d3800c248 bundle2: rename unbundle2 test command to statbundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20877
diff changeset
   426
  $ hg statbundle2 --debug < ../parts.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   427
  start processing of HG2X stream
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   428
  reading bundle2 stream parameters
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   429
  options count: 0
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   430
  start extraction of bundle2 parts
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   431
  part header size: 17
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   432
  part type: "test:empty"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   433
  part id: "0"
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   434
  part parameters: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   435
    :test:empty:
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   436
      mandatory: 0
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   437
      advisory: 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   438
  payload chunk size: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   439
      payload: 0 bytes
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   440
  part header size: 17
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   441
  part type: "test:empty"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   442
  part id: "1"
20864
9a75d2559cff bundle2: support unbundling empty part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20856
diff changeset
   443
  part parameters: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   444
    :test:empty:
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   445
      mandatory: 0
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   446
      advisory: 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   447
  payload chunk size: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   448
      payload: 0 bytes
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   449
  part header size: 16
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   450
  part type: "test:song"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   451
  part id: "2"
20876
ddd56f3eb786 bundle2: support for bundling and unbundling payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20864
diff changeset
   452
  part parameters: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   453
    :test:song:
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   454
      mandatory: 0
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   455
      advisory: 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   456
  payload chunk size: 178
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   457
  payload chunk size: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   458
      payload: 178 bytes
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   459
  part header size: 22
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   460
  part type: "test:debugreply"
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   461
  part id: "3"
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   462
  part parameters: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   463
    :test:debugreply:
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   464
      mandatory: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   465
      advisory: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   466
  payload chunk size: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   467
      payload: 0 bytes
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   468
  part header size: 43
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   469
  part type: "test:math"
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   470
  part id: "4"
20877
9e9e3a4e9261 bundle2: part params
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20876
diff changeset
   471
  part parameters: 3
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   472
    :test:math:
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   473
      mandatory: 2
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   474
      advisory: 1
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   475
  payload chunk size: 2
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   476
  payload chunk size: 0
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   477
      payload: 2 bytes
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   478
  part header size: 29
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   479
  part type: "test:song"
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   480
  part id: "5"
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   481
  part parameters: 1
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   482
    :test:song:
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   483
      mandatory: 1
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   484
      advisory: 0
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   485
  payload chunk size: 0
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   486
      payload: 0 bytes
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   487
  part header size: 16
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   488
  part type: "test:ping"
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   489
  part id: "6"
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   490
  part parameters: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   491
    :test:ping:
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   492
      mandatory: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   493
      advisory: 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   494
  payload chunk size: 0
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   495
      payload: 0 bytes
21017
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   496
  part header size: 0
8de8187e6f48 bundle2: lazily iterate over bundle parts in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21005
diff changeset
   497
  end of bundle2 stream
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   498
  parts count:   7
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   499
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   500
Test actual unbundling of test part
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   501
=======================================
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   502
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   503
Process the bundle
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   504
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   505
  $ hg unbundle2 --debug < ../parts.hg2
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   506
  start processing of HG2X stream
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   507
  reading bundle2 stream parameters
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   508
  start extraction of bundle2 parts
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   509
  part header size: 17
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   510
  part type: "test:empty"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   511
  part id: "0"
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   512
  part parameters: 0
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   513
  ignoring unsupported advisory part test:empty
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   514
  payload chunk size: 0
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   515
  part header size: 17
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   516
  part type: "test:empty"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   517
  part id: "1"
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   518
  part parameters: 0
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   519
  ignoring unsupported advisory part test:empty
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   520
  payload chunk size: 0
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   521
  part header size: 16
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   522
  part type: "test:song"
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   523
  part id: "2"
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   524
  part parameters: 0
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   525
  found a handler for part 'test:song'
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   526
  The choir starts singing:
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   527
  payload chunk size: 178
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   528
  payload chunk size: 0
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   529
      Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   530
      Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   531
      Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   532
  part header size: 22
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   533
  part type: "test:debugreply"
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   534
  part id: "3"
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   535
  part parameters: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   536
  found a handler for part 'test:debugreply'
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   537
  debugreply: no reply
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   538
  payload chunk size: 0
20995
e995d104c87f bundle2: add an integer id to part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20955
diff changeset
   539
  part header size: 43
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   540
  part type: "test:math"
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   541
  part id: "4"
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   542
  part parameters: 3
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   543
  ignoring unsupported advisory part test:math
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   544
  payload chunk size: 2
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   545
  payload chunk size: 0
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   546
  part header size: 29
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   547
  part type: "test:song"
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   548
  part id: "5"
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   549
  part parameters: 1
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   550
  found a handler for part 'test:song'
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   551
  ignoring unsupported advisory part test:song - randomparam
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   552
  payload chunk size: 0
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   553
  part header size: 16
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   554
  part type: "test:ping"
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   555
  part id: "6"
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   556
  part parameters: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   557
  found a handler for part 'test:ping'
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   558
  received ping request (id 6)
21019
3dc09f831a2e bundle2: lazy unbundle of part payload
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21017
diff changeset
   559
  payload chunk size: 0
20889
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   560
  part header size: 0
deed5edb72de bundle2: first version of a bundle processing
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20888
diff changeset
   561
  end of bundle2 stream
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   562
  0 unread bytes
20949
571f2903ff1e bundle2: record processing results in the bundleoperation object
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20948
diff changeset
   563
  3 total verses sung
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   564
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   565
Unbundle with an unknown mandatory part
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   566
(should abort)
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   567
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   568
  $ hg bundle2 --parts --unknown ../unknown.hg2
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   569
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   570
  $ hg unbundle2 < ../unknown.hg2
20951
f977c732bf34 tests: fix test output typo
Matt Mackall <mpm@selenic.com>
parents: 20950
diff changeset
   571
  The choir starts singing:
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   572
      Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   573
      Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   574
      Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   575
  debugreply: no reply
20892
6fe95448596d bundle2: read the whole bundle from stream on abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20891
diff changeset
   576
  0 unread bytes
21617
0cfda08afd24 bundle2: rename UnknownPartError to BundleValueError
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21605
diff changeset
   577
  abort: missing support for test:unknown
20891
1c6cd23fc221 bundle2: add some distinction between mandatory and advisory part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20890
diff changeset
   578
  [255]
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   579
21625
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   580
Unbundle with an unknown mandatory part parameters
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   581
(should abort)
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   582
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   583
  $ hg bundle2 --unknownparams ../unknown.hg2
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   584
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   585
  $ hg unbundle2 < ../unknown.hg2
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   586
  0 unread bytes
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   587
  abort: missing support for test:song - randomparams
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   588
  [255]
511f5fa63aa2 bundle2: enforce all parameters in a part to be handled
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21618
diff changeset
   589
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   590
unbundle with a reply
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   591
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   592
  $ hg bundle2 --parts --reply ../parts-reply.hg2
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   593
  $ hg unbundle2 ../reply.hg2 < ../parts-reply.hg2
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   594
  0 unread bytes
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   595
  3 total verses sung
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   596
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   597
The reply is a bundle
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   598
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   599
  $ cat ../reply.hg2
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   600
  HG2X\x00\x00\x00\x1f (esc)
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   601
  b2x:output\x00\x00\x00\x00\x00\x01\x0b\x01in-reply-to3\x00\x00\x00\xd9The choir starts singing: (esc)
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   602
      Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   603
      Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   604
      Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   605
  \x00\x00\x00\x00\x00\x1f (esc)
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   606
  b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to4\x00\x00\x00\xc9debugreply: capabilities: (esc)
21137
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
   607
  debugreply:     'city=!'
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
   608
  debugreply:         'celeste,ville'
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   609
  debugreply:     'elephants'
21136
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
   610
  debugreply:         'babar'
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
   611
  debugreply:         'celeste'
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   612
  debugreply:     'ping-pong'
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   613
  \x00\x00\x00\x00\x00\x1e	test:pong\x00\x00\x00\x02\x01\x00\x0b\x01in-reply-to7\x00\x00\x00\x00\x00\x1f (esc)
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   614
  b2x:output\x00\x00\x00\x03\x00\x01\x0b\x01in-reply-to7\x00\x00\x00=received ping request (id 7) (esc)
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   615
  replying to ping request (id 7)
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   616
  \x00\x00\x00\x00\x00\x00 (no-eol) (esc)
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   617
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   618
The reply is valid
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   619
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   620
  $ hg statbundle2 < ../reply.hg2
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   621
  options count: 0
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   622
    :b2x:output:
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   623
      mandatory: 0
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   624
      advisory: 1
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   625
      payload: 217 bytes
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   626
    :b2x:output:
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   627
      mandatory: 0
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   628
      advisory: 1
21137
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
   629
      payload: 201 bytes
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   630
    :test:pong:
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   631
      mandatory: 1
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   632
      advisory: 0
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   633
      payload: 0 bytes
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   634
    :b2x:output:
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   635
      mandatory: 0
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   636
      advisory: 1
21133
bef4a2adc532 bundle2: include stderr when capturing handlers output
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21131
diff changeset
   637
      payload: 61 bytes
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   638
  parts count:   4
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   639
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   640
Unbundle the reply to get the output:
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   641
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   642
  $ hg unbundle2 < ../reply.hg2
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   643
  remote: The choir starts singing:
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   644
  remote:     Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   645
  remote:     Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   646
  remote:     Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   647
  remote: debugreply: capabilities:
21137
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
   648
  remote: debugreply:     'city=!'
341a083603a5 bundle2: protect capabilities name and values with url quoting
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21136
diff changeset
   649
  remote: debugreply:         'celeste,ville'
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   650
  remote: debugreply:     'elephants'
21136
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
   651
  remote: debugreply:         'babar'
b6fd496e5c72 bundle2: support for capabilities with values
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21135
diff changeset
   652
  remote: debugreply:         'celeste'
21135
98fbf3adfd83 bundle2: add capabilities support in `replycaps` part
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21133
diff changeset
   653
  remote: debugreply:     'ping-pong'
21626
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   654
  remote: received ping request (id 7)
985d139c8e8f bundle2: ignore advisory part with unknown parameters
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21625
diff changeset
   655
  remote: replying to ping request (id 7)
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   656
  0 unread bytes
20997
d7df4b7378ae bundle2: produce a bundle2 reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20995
diff changeset
   657
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   658
Test push race detection
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   659
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   660
  $ hg bundle2 --pushrace ../part-race.hg2
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   661
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   662
  $ hg unbundle2 < ../part-race.hg2
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   663
  0 unread bytes
21185
5b3717e1a3ea bundle2: add an error message to push race error
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21184
diff changeset
   664
  abort: push race: repository changed while pushing - please try again
21184
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   665
  [255]
28d76afa1568 bundle2: fix raising errors during heads checking
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21183
diff changeset
   666
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   667
Support for changegroup
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   668
===================================
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   669
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   670
  $ hg unbundle $TESTDIR/bundles/rebase.hg
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   671
  adding changesets
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   672
  adding manifests
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   673
  adding file changes
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   674
  added 8 changesets with 7 changes to 7 files (+3 heads)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   675
  (run 'hg heads' to see heads, 'hg merge' to merge)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   676
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   677
  $ hg log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   678
  o  8:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com>  H
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   679
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   680
  | o  7:eea13746799a draft Nicolas Dumazet <nicdumz.commits@gmail.com>  G
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
   681
  |/|
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   682
  o |  6:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com>  F
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   683
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   684
  | o  5:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
   685
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   686
  | o  4:32af7686d403 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  D
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   687
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   688
  | o  3:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  C
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
   689
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   690
  | o  2:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  B
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
   691
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   692
  o  1:cd010b8cd998 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  A
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   693
  
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   694
  @  0:3903775176ed draft test  a
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   695
  
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   696
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   697
  $ hg bundle2 --debug --rev '8+7+5+4' ../rev.hg2
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   698
  4 changesets found
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   699
  list of changesets:
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   700
  32af7686d403cf45b5d95f2d70cebea587ac806a
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   701
  9520eea781bcca16c1e15acc0ba14335a0e8e5ba
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   702
  eea13746799a9e0bfd88f29d3c2e9dc9389f524f
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   703
  02de42196ebee42ef284b6780a87cdc96e8eaab6
21144
7a20fe8dc080 bundle2: use HG2X in the header
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21137
diff changeset
   704
  start emission of HG2X stream
21001
c93bb6a08fa1 bundle2: support chunk iterator as part data
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20998
diff changeset
   705
  bundle parameter: 
c93bb6a08fa1 bundle2: support chunk iterator as part data
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20998
diff changeset
   706
  start of parts
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   707
  bundle part: "b2x:changegroup"
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   708
  bundling: 1/4 changesets (25.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   709
  bundling: 2/4 changesets (50.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   710
  bundling: 3/4 changesets (75.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   711
  bundling: 4/4 changesets (100.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   712
  bundling: 1/4 manifests (25.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   713
  bundling: 2/4 manifests (50.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   714
  bundling: 3/4 manifests (75.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   715
  bundling: 4/4 manifests (100.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   716
  bundling: D 1/3 files (33.33%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   717
  bundling: E 2/3 files (66.67%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   718
  bundling: H 3/3 files (100.00%)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   719
  end of bundle
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   720
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   721
  $ cat ../rev.hg2
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   722
  HG2X\x00\x00\x00\x16\x0fb2x:changegroup\x00\x00\x00\x00\x00\x00\x00\x00\x06\x13\x00\x00\x00\xa42\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j_\xdd\xd9\x89W\xc8\xa5JMCm\xfe\x1d\xa9\xd8\x7f!\xa1\xb9{\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c (esc)
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   723
  \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02D (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   724
  \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01D\x00\x00\x00\xa4\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xcd\x01\x0b\x8c\xd9\x98\xf3\x98\x1aZ\x81\x15\xf9O\x8d\xa4\xabP`\x89\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)4dece9c826f69490507b98c6383a3009b295837d (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   725
  \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x02E (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   726
  \x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01E\x00\x00\x00\xa2\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO$\xb68|\x8c\x8c\xae7\x17\x88\x80\xf3\xfa\x95\xde\xd3\xcb\x1c\xf7\x85\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)365b93d57fdf4814e2b5911d6bacff2b12014441 (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   727
  \x00\x00\x00f\x00\x00\x00h\x00\x00\x00\x00\x00\x00\x00i\x00\x00\x00j\x00\x00\x00\x01G\x00\x00\x00\xa4\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   728
  \x87\xcd\xc9n\x8e\xaa\xb6$\xb68|\x8c\x8c\xae7\x17\x88\x80\xf3\xfa\x95\xde\xd3\xcb\x1c\xf7\x85\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   729
  \x87\xcd\xc9n\x8e\xaa\xb6\x00\x00\x00\x00\x00\x00\x00)\x00\x00\x00)8bee48edc7318541fc0013ee41b089276a8c24bf (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   730
  \x00\x00\x00f\x00\x00\x00f\x00\x00\x00\x02H (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   731
  \x00\x00\x00g\x00\x00\x00h\x00\x00\x00\x01H\x00\x00\x00\x00\x00\x00\x00\x8bn\x1fLG\xec\xb53\xff\xd0\xc8\xe5,\xdc\x88\xaf\xb6\xcd9\xe2\x0cf\xa5\xa0\x18\x17\xfd\xf5#\x9c'8\x02\xb5\xb7a\x8d\x05\x1c\x89\xe4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x81\x00\x00\x00\x81\x00\x00\x00+D\x00c3f1ca2924c16a19b0656a84900e504e5b0aec2d (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   732
  \x00\x00\x00\x8bM\xec\xe9\xc8&\xf6\x94\x90P{\x98\xc68:0	\xb2\x95\x83}\x00}\x8c\x9d\x88\x84\x13%\xf5\xc6\xb0cq\xb3[N\x8a+\x1a\x83\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00+\x00\x00\x00\xac\x00\x00\x00+E\x009c6fd0350a6c0d0c49d4a9c5017cf07043f54e58 (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   733
  \x00\x00\x00\x8b6[\x93\xd5\x7f\xdfH\x14\xe2\xb5\x91\x1dk\xac\xff+\x12\x01DA(\xa5\x84\xc6^\xf1!\xf8\x9e\xb6j\xb7\xd0\xbc\x15=\x80\x99\xe7\xceM\xec\xe9\xc8&\xf6\x94\x90P{\x98\xc68:0	\xb2\x95\x83}\xee\xa17Fy\x9a\x9e\x0b\xfd\x88\xf2\x9d<.\x9d\xc98\x9fRO\x00\x00\x00V\x00\x00\x00V\x00\x00\x00+F\x0022bfcfd62a21a3287edbd4d656218d0f525ed76a (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   734
  \x00\x00\x00\x97\x8b\xeeH\xed\xc71\x85A\xfc\x00\x13\xeeA\xb0\x89'j\x8c$\xbf(\xa5\x84\xc6^\xf1!\xf8\x9e\xb6j\xb7\xd0\xbc\x15=\x80\x99\xe7\xce\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   735
  \x87\xcd\xc9n\x8e\xaa\xb6\x00\x00\x00+\x00\x00\x00V\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x81\x00\x00\x00+H\x008500189e74a9e0475e822093bc7db0d631aeb0b4 (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   736
  \x00\x00\x00\x00\x00\x00\x00\x05D\x00\x00\x00b\xc3\xf1\xca)$\xc1j\x19\xb0ej\x84\x90\x0ePN[ (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   737
  \xec-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002\xafv\x86\xd4\x03\xcfE\xb5\xd9_-p\xce\xbe\xa5\x87\xac\x80j\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02D (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   738
  \x00\x00\x00\x00\x00\x00\x00\x05E\x00\x00\x00b\x9co\xd05 (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   739
  l\r (no-eol) (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   740
  \x0cI\xd4\xa9\xc5\x01|\xf0pC\xf5NX\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x95 \xee\xa7\x81\xbc\xca\x16\xc1\xe1Z\xcc\x0b\xa1C5\xa0\xe8\xe5\xba\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02E (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   741
  \x00\x00\x00\x00\x00\x00\x00\x05H\x00\x00\x00b\x85\x00\x18\x9et\xa9\xe0G^\x82 \x93\xbc}\xb0\xd61\xae\xb0\xb4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xdeB\x19n\xbe\xe4.\xf2\x84\xb6x (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   742
  \x87\xcd\xc9n\x8e\xaa\xb6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02H (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   743
  \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 (no-eol) (esc)
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   744
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   745
  $ hg unbundle2 < ../rev.hg2
20950
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   746
  adding changesets
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   747
  adding manifests
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   748
  adding file changes
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   749
  added 0 changesets with 0 changes to 3 files
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   750
  0 unread bytes
c7ceae0faf69 bundle2: first crude version of bundling changeset with bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20949
diff changeset
   751
  addchangegroup return: 1
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   752
21130
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   753
with reply
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   754
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   755
  $ hg bundle2 --rev '8+7+5+4' --reply ../rev-rr.hg2
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   756
  $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   757
  0 unread bytes
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   758
  addchangegroup return: 1
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   759
1ff06386217f bundle2: introduce `replycaps` part for on-demand reply
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21129
diff changeset
   760
  $ cat ../rev-reply.hg2
21146
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   761
  HG2X\x00\x00\x003\x15b2x:reply:changegroup\x00\x00\x00\x00\x00\x02\x0b\x01\x06\x01in-reply-to1return1\x00\x00\x00\x00\x00\x1f (esc)
4676135ac555 bundle2: move all parts into a `bx2` namespace
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21144
diff changeset
   762
  b2x:output\x00\x00\x00\x01\x00\x01\x0b\x01in-reply-to1\x00\x00\x00dadding changesets (esc)
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   763
  adding manifests
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   764
  adding file changes
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   765
  added 0 changesets with 0 changes to 3 files
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   766
  \x00\x00\x00\x00\x00\x00 (no-eol) (esc)
20998
93a3c5b58635 bundle2: use reply part to return result of addchangegroup
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20997
diff changeset
   767
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   768
  $ cd ..
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   769
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   770
Real world exchange
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   771
=====================
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   772
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   773
Add more obsolescence information
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   774
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   775
  $ hg -R main debugobsolete -d '0 0' 1111111111111111111111111111111111111111 `getmainid 9520eea781bc`
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   776
  $ hg -R main debugobsolete -d '0 0' 2222222222222222222222222222222222222222 `getmainid 24b6387c8c8c`
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   777
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   778
clone --pull
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   779
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   780
  $ hg -R main phase --public cd010b8cd998
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   781
  $ hg clone main other --pull --rev 9520eea781bc
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   782
  adding changesets
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   783
  adding manifests
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   784
  adding file changes
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   785
  added 2 changesets with 2 changes to 2 files
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   786
  updating to branch default
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   787
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   788
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   789
  @  1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   790
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   791
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   792
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   793
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   794
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   795
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   796
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   797
pull
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   798
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   799
  $ hg -R main phase --public 9520eea781bc
21061
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   800
  $ hg -R other pull -r 24b6387c8c8c
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   801
  pulling from $TESTTMP/main (glob)
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   802
  searching for changes
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   803
  adding changesets
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   804
  adding manifests
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   805
  adding file changes
21061
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   806
  added 1 changesets with 1 changes to 1 files (+1 heads)
20955
12f161f08d74 bundle2: allow pulling changegroups using bundle2
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20952
diff changeset
   807
  (run 'hg heads' to see heads, 'hg merge' to merge)
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   808
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   809
  o  2:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   810
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   811
  | @  1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   812
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   813
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   814
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   815
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   816
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   817
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21061
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   818
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   819
pull empty (with phase movement)
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   820
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   821
  $ hg -R main phase --public 24b6387c8c8c
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   822
  $ hg -R other pull -r 24b6387c8c8c
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   823
  pulling from $TESTTMP/main (glob)
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   824
  no changes found
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   825
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   826
  o  2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   827
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   828
  | @  1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   829
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   830
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   831
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   832
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   833
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   834
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   835
21584
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   836
pull empty
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   837
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   838
  $ hg -R other pull -r 24b6387c8c8c
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   839
  pulling from $TESTTMP/main (glob)
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   840
  no changes found
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   841
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   842
  o  2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   843
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   844
  | @  1:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   845
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   846
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   847
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   848
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   849
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   850
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21584
4dca1a06e7ee bundle2: fix bundle2 pulling all revs on empty pulls
Durham Goode <durham@fb.com>
parents: 21547
diff changeset
   851
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   852
add extra data to test their exchange during push
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   853
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   854
  $ hg -R main bookmark --rev eea13746799a book_eea1
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   855
  $ hg -R main debugobsolete -d '0 0' 3333333333333333333333333333333333333333 `getmainid eea13746799a`
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   856
  $ hg -R main bookmark --rev 02de42196ebe book_02de
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   857
  $ hg -R main debugobsolete -d '0 0' 4444444444444444444444444444444444444444 `getmainid 02de42196ebe`
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   858
  $ hg -R main bookmark --rev 42ccdea3bb16 book_42cc
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   859
  $ hg -R main debugobsolete -d '0 0' 5555555555555555555555555555555555555555 `getmainid 42ccdea3bb16`
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   860
  $ hg -R main bookmark --rev 5fddd98957c8 book_5fdd
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   861
  $ hg -R main debugobsolete -d '0 0' 6666666666666666666666666666666666666666 `getmainid 5fddd98957c8`
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   862
  $ hg -R main bookmark --rev 32af7686d403 book_32af
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   863
  $ hg -R main debugobsolete -d '0 0' 7777777777777777777777777777777777777777 `getmainid 32af7686d403`
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   864
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   865
  $ hg -R other bookmark --rev cd010b8cd998 book_eea1
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   866
  $ hg -R other bookmark --rev cd010b8cd998 book_02de
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   867
  $ hg -R other bookmark --rev cd010b8cd998 book_42cc
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   868
  $ hg -R other bookmark --rev cd010b8cd998 book_5fdd
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   869
  $ hg -R other bookmark --rev cd010b8cd998 book_32af
21061
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   870
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   871
  $ hg -R main phase --public eea13746799a
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   872
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   873
push
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   874
  $ hg -R main push other --rev eea13746799a --bookmark book_eea1
21061
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   875
  pushing to other
62d35f251c60 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21019
diff changeset
   876
  searching for changes
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   877
  remote: adding changesets
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   878
  remote: adding manifests
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   879
  remote: adding file changes
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   880
  remote: added 1 changesets with 0 changes to 0 files (-1 heads)
22350
6d113cc7a31a push: only push obsmarkers relevant to the "pushed subset"
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22347
diff changeset
   881
  remote: 1 new obsolescence markers
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   882
  updating bookmark book_eea1
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   883
  exporting bookmark book_eea1
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   884
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   885
  o    3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   886
  |\
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   887
  | o  2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   888
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   889
  @ |  1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   890
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   891
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de book_32af book_42cc book_5fdd A
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   892
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   893
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   894
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   895
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   896
  3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   897
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   898
pull over ssh
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   899
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   900
  $ hg -R other pull ssh://user@dummy/main -r 02de42196ebe --bookmark book_02de
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   901
  pulling from ssh://user@dummy/main
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   902
  searching for changes
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   903
  adding changesets
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   904
  adding manifests
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   905
  adding file changes
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   906
  added 1 changesets with 1 changes to 1 files (+1 heads)
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   907
  updating bookmark book_02de
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   908
  (run 'hg heads' to see heads, 'hg merge' to merge)
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   909
  importing bookmark book_02de
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   910
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   911
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   912
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   913
  3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   914
  4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   915
  5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   916
  6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   917
  7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   918
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   919
pull over http
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   920
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   921
  $ hg -R main serve -p $HGPORT -d --pid-file=main.pid -E main-error.log
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   922
  $ cat main.pid >> $DAEMON_PIDS
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   923
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   924
  $ hg -R other pull http://localhost:$HGPORT/ -r 42ccdea3bb16 --bookmark book_42cc
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   925
  pulling from http://localhost:$HGPORT/
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   926
  searching for changes
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   927
  adding changesets
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   928
  adding manifests
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   929
  adding file changes
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   930
  added 1 changesets with 1 changes to 1 files (+1 heads)
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   931
  updating bookmark book_42cc
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   932
  (run 'hg heads .' to see heads, 'hg merge' to merge)
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   933
  importing bookmark book_42cc
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   934
  $ cat main-error.log
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   935
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   936
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   937
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   938
  3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   939
  4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   940
  5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   941
  6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   942
  7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   943
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   944
push over ssh
21069
0a9cae236738 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21062
diff changeset
   945
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   946
  $ hg -R main push ssh://user@dummy/other -r 5fddd98957c8 --bookmark book_5fdd
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   947
  pushing to ssh://user@dummy/other
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   948
  searching for changes
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   949
  remote: adding changesets
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   950
  remote: adding manifests
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   951
  remote: adding file changes
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   952
  remote: added 1 changesets with 1 changes to 1 files
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   953
  updating bookmark book_5fdd
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   954
  exporting bookmark book_5fdd
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   955
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   956
  o  6:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_5fdd C
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   957
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   958
  o  5:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_42cc B
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   959
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   960
  | o  4:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de H
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   961
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   962
  | | o  3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   963
  | |/|
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   964
  | o |  2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   965
  |/ /
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   966
  | @  1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   967
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   968
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_32af A
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   969
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   970
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   971
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   972
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   973
  3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   974
  4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   975
  5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   976
  6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
   977
  7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   978
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   979
push over http
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   980
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   981
  $ hg -R other serve -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   982
  $ cat other.pid >> $DAEMON_PIDS
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   983
21649
3bfadd70550b bundle2: add more phase movement in the test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21648
diff changeset
   984
  $ hg -R main phase --public 32af7686d403
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   985
  $ hg -R main push http://localhost:$HGPORT2/ -r 32af7686d403 --bookmark book_32af
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   986
  pushing to http://localhost:$HGPORT2/
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   987
  searching for changes
21131
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   988
  remote: adding changesets
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   989
  remote: adding manifests
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   990
  remote: adding file changes
b7435117d951 bundle2: capture remote stdout while unbundling
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21130
diff changeset
   991
  remote: added 1 changesets with 1 changes to 1 files
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   992
  updating bookmark book_32af
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   993
  exporting bookmark book_32af
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   994
  $ cat other-error.log
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   995
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   996
Check final content.
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   997
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
   998
  $ hg -R other log -G
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
   999
  o  7:32af7686d403 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_32af D
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
  1000
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1001
  o  6:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_5fdd C
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
  1002
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1003
  o  5:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com> book_42cc B
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
  1004
  |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1005
  | o  4:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com> book_02de H
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
  1006
  | |
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1007
  | | o  3:eea13746799a public Nicolas Dumazet <nicdumz.commits@gmail.com> book_eea1 G
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
  1008
  | |/|
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1009
  | o |  2:24b6387c8c8c public Nicolas Dumazet <nicdumz.commits@gmail.com>  F
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
  1010
  |/ /
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1011
  | @  1:9520eea781bc public Nicolas Dumazet <nicdumz.commits@gmail.com>  E
21647
1a6909f4ebb0 bundle2: use a smarter template for test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21628
diff changeset
  1012
  |/
22241
3dc3cf8d0e73 test-bundle2: add bookmark movement to the push test
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22090
diff changeset
  1013
  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A
21075
438803e4bd97 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21069
diff changeset
  1014
  
22323
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1015
  $ hg -R other debugobsolete
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1016
  1111111111111111111111111111111111111111 9520eea781bcca16c1e15acc0ba14335a0e8e5ba 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1017
  2222222222222222222222222222222222222222 24b6387c8c8cae37178880f3fa95ded3cb1cf785 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1018
  3333333333333333333333333333333333333333 eea13746799a9e0bfd88f29d3c2e9dc9389f524f 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1019
  4444444444444444444444444444444444444444 02de42196ebee42ef284b6780a87cdc96e8eaab6 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1020
  5555555555555555555555555555555555555555 42ccdea3bb16d28e1848c95fe2e44c000f3f21b1 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1021
  6666666666666666666666666666666666666666 5fddd98957c8a54a4d436dfe1da9d87f21a1b97b 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
b31d29b2a7f2 test-bundle2: add obsolescence information to be exchanged
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22241
diff changeset
  1022
  7777777777777777777777777777777777777777 32af7686d403cf45b5d95f2d70cebea587ac806a 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
21177
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1023
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1024
Error Handling
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1025
==============
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1026
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1027
Check that errors are properly returned to the client during push.
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1028
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1029
Setting up
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1030
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1031
  $ cat > failpush.py << EOF
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1032
  > """A small extension that makes push fails when using bundle2
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1033
  > 
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1034
  > used to test error handling in bundle2
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1035
  > """
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1036
  > 
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1037
  > from mercurial import util
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1038
  > from mercurial import bundle2
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1039
  > from mercurial import exchange
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1040
  > from mercurial import extensions
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1041
  > 
21905
7923648ad915 bundle2-test: use the new way to extend push content
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21649
diff changeset
  1042
  > def _pushbundle2failpart(pushop, bundler):
21178
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1043
  >     reason = pushop.ui.config('failpush', 'reason', None)
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1044
  >     part = None
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1045
  >     if reason == 'abort':
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
  1046
  >         bundler.newpart('test:abort')
21183
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1047
  >     if reason == 'unknown':
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
  1048
  >         bundler.newpart('TEST:UNKNOWN')
21186
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1049
  >     if reason == 'race':
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1050
  >         # 20 Bytes of crap
21600
5e08f3b65510 bundle2: update all ``addpart`` callers to ``newpart``
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21585
diff changeset
  1051
  >         bundler.newpart('b2x:check:heads', data='01234567890123456789')
21177
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1052
  > 
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1053
  > @bundle2.parthandler("test:abort")
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1054
  > def handleabort(op, part):
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1055
  >     raise util.Abort('Abandon ship!', hint="don't panic")
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1056
  > 
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1057
  > def uisetup(ui):
22017
7986e99bb69a push: rework the bundle2partsgenerators logic
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21964
diff changeset
  1058
  >     exchange.b2partsgenmapping['failpart'] = _pushbundle2failpart
7986e99bb69a push: rework the bundle2partsgenerators logic
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21964
diff changeset
  1059
  >     exchange.b2partsgenorder.insert(0, 'failpart')
21177
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1060
  > 
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1061
  > EOF
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1062
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1063
  $ cd main
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1064
  $ hg up tip
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1065
  3 files updated, 0 files merged, 1 files removed, 0 files unresolved
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1066
  $ echo 'I' > I
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1067
  $ hg add I
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1068
  $ hg ci -m 'I'
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1069
  $ hg id
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1070
  e7ec4e813ba6 tip
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1071
  $ cd ..
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1072
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1073
  $ cat << EOF >> $HGRCPATH
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1074
  > [extensions]
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1075
  > failpush=$TESTTMP/failpush.py
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1076
  > EOF
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1077
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1078
  $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1079
  $ hg -R other serve -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1080
  $ cat other.pid >> $DAEMON_PIDS
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1081
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1082
Doing the actual push: Abort error
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1083
21178
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1084
  $ cat << EOF >> $HGRCPATH
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1085
  > [failpush]
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1086
  > reason = abort
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1087
  > EOF
9a813e703172 bundle2: make error testing more modular
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21177
diff changeset
  1088
21177
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1089
  $ hg -R main push other -r e7ec4e813ba6
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1090
  pushing to other
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1091
  searching for changes
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1092
  abort: Abandon ship!
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1093
  (don't panic)
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1094
  [255]
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1095
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1096
  $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1097
  pushing to ssh://user@dummy/other
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1098
  searching for changes
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1099
  abort: Abandon ship!
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1100
  (don't panic)
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1101
  [255]
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1102
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1103
  $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1104
  pushing to http://localhost:$HGPORT2/
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1105
  searching for changes
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1106
  abort: Abandon ship!
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1107
  (don't panic)
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1108
  [255]
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1109
952af771bc17 bundle2: gracefully handle abort during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21147
diff changeset
  1110
21183
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1111
Doing the actual push: unknown mandatory parts
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1112
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1113
  $ cat << EOF >> $HGRCPATH
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1114
  > [failpush]
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1115
  > reason = unknown
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1116
  > EOF
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1117
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1118
  $ hg -R main push other -r e7ec4e813ba6
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1119
  pushing to other
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1120
  searching for changes
21617
0cfda08afd24 bundle2: rename UnknownPartError to BundleValueError
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21605
diff changeset
  1121
  abort: missing support for test:unknown
21183
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1122
  [255]
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1123
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1124
  $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1125
  pushing to ssh://user@dummy/other
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1126
  searching for changes
21617
0cfda08afd24 bundle2: rename UnknownPartError to BundleValueError
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21605
diff changeset
  1127
  abort: missing support for test:unknown
21183
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1128
  [255]
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1129
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1130
  $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1131
  pushing to http://localhost:$HGPORT2/
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1132
  searching for changes
21617
0cfda08afd24 bundle2: rename UnknownPartError to BundleValueError
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21605
diff changeset
  1133
  abort: missing support for test:unknown
21183
4345274adc4b bundle2: gracefully handle UnknownPartError during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21178
diff changeset
  1134
  [255]
21186
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1135
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1136
Doing the actual push: race
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1137
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1138
  $ cat << EOF >> $HGRCPATH
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1139
  > [failpush]
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1140
  > reason = race
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1141
  > EOF
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1142
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1143
  $ hg -R main push other -r e7ec4e813ba6
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1144
  pushing to other
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1145
  searching for changes
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1146
  abort: push failed:
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1147
  'repository changed while pushing - please try again'
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1148
  [255]
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1149
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1150
  $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1151
  pushing to ssh://user@dummy/other
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1152
  searching for changes
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1153
  abort: push failed:
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1154
  'repository changed while pushing - please try again'
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1155
  [255]
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1156
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1157
  $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1158
  pushing to http://localhost:$HGPORT2/
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1159
  searching for changes
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1160
  abort: push failed:
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1161
  'repository changed while pushing - please try again'
9f3652e851f8 bundle2: gracefully handle PushRaced error during unbundle
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21185
diff changeset
  1162
  [255]
21187
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1163
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1164
Doing the actual push: hook abort
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1165
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1166
  $ cat << EOF >> $HGRCPATH
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1167
  > [failpush]
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1168
  > reason =
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1169
  > [hooks]
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1170
  > b2x-pretransactionclose.failpush = false
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1171
  > EOF
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1172
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1173
  $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1174
  $ hg -R other serve -p $HGPORT2 -d --pid-file=other.pid -E other-error.log
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1175
  $ cat other.pid >> $DAEMON_PIDS
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1176
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1177
  $ hg -R main push other -r e7ec4e813ba6
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1178
  pushing to other
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1179
  searching for changes
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1180
  transaction abort!
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1181
  rollback completed
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1182
  abort: b2x-pretransactionclose.failpush hook exited with status 1
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1183
  [255]
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1184
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1185
  $ hg -R main push ssh://user@dummy/other -r e7ec4e813ba6
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1186
  pushing to ssh://user@dummy/other
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1187
  searching for changes
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1188
  abort: b2x-pretransactionclose.failpush hook exited with status 1
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1189
  remote: transaction abort!
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1190
  remote: rollback completed
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1191
  [255]
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1192
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1193
  $ hg -R main push http://localhost:$HGPORT2/ -r e7ec4e813ba6
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1194
  pushing to http://localhost:$HGPORT2/
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1195
  searching for changes
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1196
  abort: b2x-pretransactionclose.failpush hook exited with status 1
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1197
  [255]
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1198
bcfd44abad93 bundle2: gracefully handle hook abort
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21186
diff changeset
  1199