tests/test-eol-clone.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 26 Mar 2024 13:46:44 +0000
changeset 51552 49faa72b994e
parent 51181 dcaa2df1f688
permissions -rw-r--r--
streamclone: stop listing files for entries that have no volatile files This will save a lot of python related time. This significantly boost performance. The following number comes from a large private repository using perf::stream-locked-section: base-line: 35.04 seconds prev-change: 24.51 seconds (-30%) prev-change: 20.88 seconds (-40%) prev-change: 14.22 seconds (-60%) this-change: 11.58 seconds (-67% from baseline; -18% from prev)
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
51181
dcaa2df1f688 changelog: never inline changelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
    83
  linked 8 files (no-rust !)
dcaa2df1f688 changelog: never inline changelog
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46314
diff changeset
    84
  linked 10 files (rust !)
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    85
  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
    86
  resolving manifests
7699d9237a67 eol: tweak test-eol-clone.t with better descriptions and logging
Mads Kiilerich <mads@kiilerich.com>
parents: 34661
diff changeset
    87
   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
    88
   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
    89
  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
    90
   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
    91
  getting a.txt
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    92
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
46314
95a615dd77bf clone: make sure we warm the cache after a clone
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43207
diff changeset
    93
  updating the branch cache
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    94
  $ cd repo-3
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    95
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    96
  $ cat a.txt
43207
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    97
  first\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    98
  second\r (esc)
4aa9f3a1c1df eol: don't fallback to use .hgeol from tip (BC)
Mads Kiilerich <mads@kiilerich.com>
parents: 43206
diff changeset
    99
  third\r (esc)
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
Test clone of revision with .hgeol
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
   102
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   103
  $ cd ..
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   104
  $ hg clone -r 0 repo repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   105
  adding changesets
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   106
  adding manifests
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   107
  adding file changes
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   108
  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
   109
  new changesets 90f94e2cf4e2
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   110
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   111
  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
   112
  $ cd repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   113
  $ cat .hgeol
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   114
  [patterns]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
   115
  **.txt = native
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
   116
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   117
  $ cat a.txt
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   118
  first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   119
  second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
   120
  third\r (esc)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
   121
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
   122
  $ cd ..