tests/test-confused-revert.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 28 Mar 2018 10:40:41 -0700
changeset 37295 45b39c69fae0
parent 28963 fc1d75e7a98d
child 39432 cb70501d8b71
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:
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     1
  $ hg init
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     2
  $ echo foo > a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     3
  $ hg add a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     4
  $ hg commit -m "1"
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     6
  $ echo bar > b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     7
  $ hg add b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     8
  $ hg remove a
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     9
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    10
Should show a removed and b added:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    11
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    12
  $ hg status
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    13
  A b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    14
  R a
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    15
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    16
  $ hg revert --all
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    17
  undeleting a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    18
  forgetting b
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    19
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    20
Should show b unknown and a back to normal:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    21
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    22
  $ hg status
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    23
  ? b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    24
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    25
  $ rm b
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    26
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    27
  $ hg co -C 0
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    28
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    29
  $ echo foo-a > a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    30
  $ hg commit -m "2a"
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    31
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    32
  $ hg co -C 0
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    33
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    34
  $ echo foo-b > a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    35
  $ hg commit -m "2b"
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    36
  created new head
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    37
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    38
  $ HGMERGE=true hg merge 1
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    39
  merging a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    40
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    41
  (branch merge, don't forget to commit)
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    42
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    43
Should show foo-b:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    44
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    45
  $ cat a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    46
  foo-b
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    47
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    48
  $ echo bar > b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    49
  $ hg add b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    50
  $ rm a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    51
  $ hg remove a
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    52
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    53
Should show a removed and b added:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    54
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    55
  $ hg status
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    56
  A b
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    57
  R a
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    58
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    59
Revert should fail:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    60
13022
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12316
diff changeset
    61
  $ hg revert
14903
a934b9249574 revert: restore check for uncommitted merge (issue2915) (BC)
Matt Mackall <mpm@selenic.com>
parents: 14721
diff changeset
    62
  abort: uncommitted merge with no revision specified
28963
fc1d75e7a98d graft: use single quotes around command hint
timeless <timeless@mozdev.org>
parents: 14903
diff changeset
    63
  (use 'hg update' or see 'hg help revert')
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12284
diff changeset
    64
  [255]
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    65
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    66
Revert should be ok now:
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    67
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    68
  $ hg revert -r2 --all
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    69
  undeleting a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    70
  forgetting b
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    71
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    72
Should show b unknown and a marked modified (merged):
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    73
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    74
  $ hg status
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    75
  M a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    76
  ? b
2214
6c6c0e5595a2 make test-confused-revert check working dir with two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1933
diff changeset
    77
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    78
Should show foo-b:
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    79
12284
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    80
  $ cat a
f7eb190310ef tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    81
  foo-b
1449
30146be3437c Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    82