tests/test-eol-add.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 28 Mar 2018 10:40:41 -0700
changeset 37295 45b39c69fae0
parent 13519 43b3b761d9d1
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:
12421
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     1
Test adding .hgeol
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
     2
13519
43b3b761d9d1 tests: don't overwrite HGRCPATH
Martin Geisler <mg@aragost.com>
parents: 12943
diff changeset
     3
  $ cat >> $HGRCPATH <<EOF
12421
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     4
  > [diff]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     5
  > git = 1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     6
  > EOF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     7
  $ seteol () {
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     8
  >     if [ $1 = "LF" ]; then
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     9
  >         EOL='\n'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    10
  >     else
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    11
  >         EOL='\r\n'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    12
  >     fi
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    13
  > }
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    14
  $ makerepo () {
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    15
  >     echo
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    16
  >     echo "# ==== setup repository ===="
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    17
  >     echo '% hg init'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    18
  >     hg init repo
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    19
  >     cd repo
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    20
  >     printf "first\nsecond\nthird\n" > a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    21
  >     hg commit -d '100 0' --addremove -m 'LF commit'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    22
  >     cd ..
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    23
  > }
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    24
  $ dotest () {
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    25
  >     seteol $1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    26
  >     echo
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    27
  >     echo "% hg clone repo repo-$1"
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    28
  >     hg clone repo repo-$1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    29
  >     cd repo-$1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    30
  >     cat > .hg/hgrc <<EOF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    31
  > [extensions]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    32
  > eol =
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    33
  > [eol]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    34
  > native = LF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    35
  > EOF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    36
  >     cat > .hgeol <<EOF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    37
  > [patterns]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    38
  > **.txt = native
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    39
  > [repository]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    40
  > native = $1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    41
  > EOF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    42
  >     echo '% hg add .hgeol'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    43
  >     hg add .hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    44
  >     echo '% hg status'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    45
  >     hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    46
  >     echo '% hg commit'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    47
  >     hg commit -d '200 0' -m 'Added .hgeol file'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    48
  >     echo '% hg status'
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    49
  >     hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    50
  >     echo '% hg tip -p'
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12421
diff changeset
    51
  >     hg tip -p
12421
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    52
  >     cd ..
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    53
  >     rm -r repo-$1
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    54
  > }
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    55
  $ makerepo
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    56
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    57
  # ==== setup repository ====
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    58
  % hg init
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    59
  adding a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    60
  $ dotest LF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    61
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    62
  % hg clone repo repo-LF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    63
  updating to branch default
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    64
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    65
  % hg add .hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    66
  % hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    67
  A .hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    68
  % hg commit
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    69
  % hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    70
  % hg tip -p
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    71
  changeset:   1:33503edb53b0
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    72
  tag:         tip
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    73
  user:        test
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    74
  date:        Thu Jan 01 00:03:20 1970 +0000
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    75
  summary:     Added .hgeol file
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    76
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    77
  diff --git a/.hgeol b/.hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    78
  new file mode 100644
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    79
  --- /dev/null
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    80
  +++ b/.hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    81
  @@ -0,0 +1,4 @@
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    82
  +[patterns]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    83
  +**.txt = native
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    84
  +[repository]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    85
  +native = LF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    86
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    87
  $ dotest CRLF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    88
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    89
  % hg clone repo repo-CRLF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    90
  updating to branch default
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    91
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    92
  % hg add .hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    93
  % hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    94
  M a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    95
  A .hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    96
  % hg commit
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    97
  % hg status
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    98
  % hg tip -p
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    99
  changeset:   1:6e64eaa9eb23
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   100
  tag:         tip
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   101
  user:        test
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   102
  date:        Thu Jan 01 00:03:20 1970 +0000
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   103
  summary:     Added .hgeol file
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   104
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   105
  diff --git a/.hgeol b/.hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   106
  new file mode 100644
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   107
  --- /dev/null
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   108
  +++ b/.hgeol
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   109
  @@ -0,0 +1,4 @@
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   110
  +[patterns]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   111
  +**.txt = native
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   112
  +[repository]
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   113
  +native = CRLF
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   114
  diff --git a/a.txt b/a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   115
  --- a/a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   116
  +++ b/a.txt
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   117
  @@ -1,3 +1,3 @@
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   118
  -first
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   119
  -second
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   120
  -third
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12421
diff changeset
   121
  +first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12421
diff changeset
   122
  +second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12421
diff changeset
   123
  +third\r (esc)
12421
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   124
  
0ae7cad68842 tests: unify test-eol-add
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   125
  $ rm -r repo