tests/test-convert-bzr-merges.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 28 Mar 2018 10:40:41 -0700
changeset 37295 45b39c69fae0
parent 26066 89872688893f
child 38572 30a027c0e327
permissions -rw-r--r--
wireproto: separate commands tables for version 1 and 2 commands We can't easily reuse existing command handlers for version 2 commands because the response types will be different. e.g. many commands return nodes encoded as hex. Our new wire protocol is binary safe, so we'll wish to encode nodes as binary. We /could/ teach each command handler to look at the protocol handler and change behavior based on the version in use. However, this would make logic a bit unwieldy over time and would make it harder to design a unified protocol handler interface. I think it's better to create a clean break between version 1 and version 2 of commands on the server. What I imagine happening is we will have separate @wireprotocommand functions for each protocol generation. Those functions will parse the request, dispatch to a common function to process it, then generate the response in its own, transport-specific manner. This commit establishes a separate table for tracking version 1 commands from version 2 commands. The HTTP server pieces have been updated to use this new table. Most commands are marked as both version 1 and version 2, so there is little practical impact to this change. A side-effect of this change is we now rely on transport registration in wireprototypes.TRANSPORTS and certain properties of the protocol interface. So a test had to be updated to conform. Differential Revision: https://phab.mercurial-scm.org/D2982
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26066
89872688893f tests: move '#require bzr' into .t files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
     1
#require bzr
89872688893f tests: move '#require bzr' into .t files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 16913
diff changeset
     2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
     3
N.B. bzr 1.13 has a bug that breaks this test.  If you see this
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
     4
test fail, check your bzr version.  Upgrading to bzr 1.13.1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
     5
should fix it.
7053
209ef5f3534c convert: add bzr source
Marek Kubica <marek@xivilization.net>
parents:
diff changeset
     6
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
     7
  $ . "$TESTDIR/bzr-definitions"
8084
5b3fee9c1f4d Add comment about this test failing under bzr 1.13 due to a bug in bzr.
Greg Ward <greg-hg@gerg.ca>
parents: 7604
diff changeset
     8
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
     9
test multiple merges at once
7053
209ef5f3534c convert: add bzr source
Marek Kubica <marek@xivilization.net>
parents:
diff changeset
    10
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    11
  $ mkdir test-multimerge
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    12
  $ cd test-multimerge
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    13
  $ bzr init -q source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    14
  $ cd source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    15
  $ echo content > file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    16
  $ bzr add -q file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    17
  $ bzr commit -q -m 'Initial add'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    18
  $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    19
  $ bzr branch -q source source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    20
  $ cd source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    21
  $ echo morecontent >> file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    22
  $ echo evenmorecontent > file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    23
  $ bzr add -q file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    24
  $ bzr commit -q -m 'Added branch1 file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    25
  $ cd ../source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    26
  $ sleep 1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    27
  $ echo content > file-parent
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    28
  $ bzr add -q file-parent
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    29
  $ bzr commit -q -m 'Added parent file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    30
  $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    31
  $ bzr branch -q source source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    32
  $ cd source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    33
  $ echo somecontent > file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    34
  $ bzr add -q file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    35
  $ bzr commit -q -m 'Added brach2 file'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    36
  $ sleep 1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    37
  $ cd ../source
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    38
  $ bzr merge -q ../source-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    39
  $ bzr merge -q --force ../source-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    40
  $ bzr commit -q -m 'Merged branches'
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    41
  $ cd ..
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    42
  $ hg convert --datesort source source-hg
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    43
  initializing destination source-hg repository
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    44
  scanning source...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    45
  sorting...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    46
  converting...
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    47
  4 Initial add
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    48
  3 Added branch1 file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    49
  2 Added parent file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    50
  1 Added brach2 file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    51
  0 Merged branches
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    52
  $ glog -R source-hg
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    53
  o    5@source "(octopus merge fixup)" files:
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    54
  |\
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    55
  | o    4@source "Merged branches" files: file-branch2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    56
  | |\
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    57
  o---+  3@source-branch2 "Added brach2 file" files: file-branch2
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    58
   / /
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    59
  | o  2@source "Added parent file" files: file-parent
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    60
  | |
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    61
  o |  1@source-branch1 "Added branch1 file" files: file file-branch1
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    62
  |/
16060
f84dda152a55 convert/bzr: convert all branches (issue3229) (BC)
Patrick Mezard <pmezard@gmail.com>
parents: 12516
diff changeset
    63
  o  0@source "Initial add" files: file
12516
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    64
  
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    65
  $ manifest source-hg tip
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    66
  % manifest of tip
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    67
  644   file
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    68
  644   file-branch1
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    69
  644   file-branch2
90efbd1a2a56 tests: unify test-convert-bzr-merges
Matt Mackall <mpm@selenic.com>
parents: 8084
diff changeset
    70
  644   file-parent
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16060
diff changeset
    71
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16060
diff changeset
    72
  $ cd ..