tests/test-eol-clone.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 22 Jun 2020 13:32:20 +0200
changeset 45059 79f6f9fa18c1
parent 43207 4aa9f3a1c1df
child 46314 95a615dd77bf
permissions -rw-r--r--
documentation: add some internals documentation about bid merge This is an important algorithm that was only documented on the wiki so far. Some update to the algorithm (and associated doc) is to expected in the future since the bid merge algorithm is bug-ridden when it comes to file deletion comes to play. Differential Revision: https://phab.mercurial-scm.org/D8711
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     1
Testing cloning with the EOL extension
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
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     4
  > [extensions]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     5
  > eol =
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     6
  > 
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     7
  > [eol]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     8
  > native = CRLF
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
     9
  > EOF
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    10
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    11
setup repository
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    12
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    13
  $ hg init repo
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    14
  $ cd repo
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    15
  $ cat > .hgeol <<EOF
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    16
  > [patterns]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    17
  > **.txt = native
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    18
  > EOF
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    19
  $ printf "first\r\nsecond\r\nthird\r\n" > a.txt
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    20
  $ hg commit --addremove -m 'checkin'
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    21
  adding .hgeol
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    22
  adding a.txt
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    23
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    24
Test commit of removed .hgeol and how it immediately makes the automatic
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    25
changes explicit and committable.
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    26
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    27
  $ cd ..
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    28
  $ hg clone repo repo-2
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    29
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    30
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    31
  $ cd repo-2
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    32
  $ cat a.txt
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    33
  first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    34
  second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    35
  third\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    36
  $ hg cat a.txt
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    37
  first
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    38
  second
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    39
  third
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    40
  $ hg remove .hgeol
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    41
  $ touch a.txt *  # ensure consistent st dirtyness checks, ignoring dirstate timing
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    42
  $ hg st -v --debug
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    43
  M a.txt
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    44
  R .hgeol
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    45
  $ hg commit -m 'remove eol'
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    46
  $ hg exp
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    47
  # HG changeset patch
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    48
  # User test
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    49
  # Date 0 0
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    50
  #      Thu Jan 01 00:00:00 1970 +0000
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    51
  # Node ID 3c20c2d90333b6ecdc8f7aa8f9b73223c7c7a608
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    52
  # Parent  90f94e2cf4e24628afddd641688dfe4cd476d6e4
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    53
  remove eol
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    54
  
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    55
  diff -r 90f94e2cf4e2 -r 3c20c2d90333 .hgeol
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    56
  --- a/.hgeol	Thu Jan 01 00:00:00 1970 +0000
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    57
  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    58
  @@ -1,2 +0,0 @@
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    59
  -[patterns]
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    60
  -**.txt = native
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    61
  diff -r 90f94e2cf4e2 -r 3c20c2d90333 a.txt
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    62
  --- a/a.txt	Thu Jan 01 00:00:00 1970 +0000
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    63
  +++ b/a.txt	Thu Jan 01 00:00:00 1970 +0000
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    64
  @@ -1,3 +1,3 @@
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    65
  -first
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    66
  -second
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    67
  -third
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    68
  +first\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    69
  +second\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    70
  +third\r (esc)
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    71
  $ hg push --quiet
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    72
  $ cd ..
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    73
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    74
Test clone of repo with .hgeol in working dir, but no .hgeol in default
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    75
checkout revision tip. The repo is correctly updated to be consistent and have
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    76
the exact content checked out without filtering, ignoring the current .hgeol in
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    77
the source repo:
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    78
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    79
  $ cat repo/.hgeol
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    80
  [patterns]
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    81
  **.txt = native
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    82
  $ hg clone repo repo-3 -v --debug
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    83
  linked 7 files
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    84
  updating to branch default
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    85
  resolving manifests
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    86
   branchmerge: False, force: False, partial: False
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    87
   ancestor: 000000000000, local: 000000000000+, remote: 3c20c2d90333
43206
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    88
  calling hook preupdate.eol: hgext.eol.preupdate
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    89
   a.txt: remote created -> g
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    90
  getting a.txt
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    91
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    92
  $ cd repo-3
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    93
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    94
  $ cat a.txt
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    95
  first\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    96
  second\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    97
  third\r (esc)
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    98
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    99
Test clone of revision with .hgeol
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
   100
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   101
  $ cd ..
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   102
  $ hg clone -r 0 repo repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   103
  adding changesets
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   104
  adding manifests
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   105
  adding file changes
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   106
  added 1 changesets with 2 changes to 2 files
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 16913
diff changeset
   107
  new changesets 90f94e2cf4e2
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   108
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   109
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   110
  $ cd repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   111
  $ cat .hgeol
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   112
  [patterns]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   113
  **.txt = native
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
   114
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   115
  $ cat a.txt
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   116
  first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   117
  second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   118
  third\r (esc)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
   119
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
   120
  $ cd ..