tests/test-eol-clone.t
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 11 Jan 2013 18:47:42 +0100
changeset 18307 0eed2546118a
parent 16913 f2719b387380
child 34661 eb586ed5d8ce
permissions -rw-r--r--
branchmap: Save changectx creation during update The newly introduced `branchmap` function allows us to skip the creation of changectx objects. This speeds up the construction of the branchmap. On the mozilla repository (117293 changesets, 15490 mutable) Before: ! impactable 19.9 ! mutable 0.576 ! unserved 3.16 After: ! impactable 7.03 (2.8x faster) ! mutable 0.352 (1.6x) ! unserved 1.15 (2.7x) On the cpython repository (81418 changesets, 6418 mutable) Before: ! impactable 15.9 ! mutable 0.451 ! unserved 0.861 After: ! impactable 6.55 (2.4x faster) ! mutable 0.170 (2.6x faster) ! unserved 0.289 (2.9x faster) On the pypy repository (58852 changesets) Before: ! impactable 13.6 After: ! impactable 6.17 (2.2x faster) On my Mercurial repository (18295 changesets, 2210 mutable) Before: ! impactable 23.9 ! mutable 0.368 ! unserved 0.057 After: ! impactable 1.31 (18x faster) ! mutable 0.042 (8.7x) ! unserved 0.025 (2.2x)
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
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    24
Clone
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    25
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    26
  $ cd ..
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    27
  $ hg clone repo repo-2
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    28
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    29
  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
    30
  $ cd repo-2
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    31
  $ cat a.txt
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    32
  first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    33
  second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    34
  third\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    35
  $ hg cat a.txt
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    36
  first
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    37
  second
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    38
  third
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    39
  $ hg remove .hgeol
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    40
  $ hg commit -m 'remove eol'
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    41
  $ hg push --quiet
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    42
  $ cd ..
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    43
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    44
Test clone of repo with .hgeol in working dir, but no .hgeol in tip
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    45
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    46
  $ hg clone repo repo-3
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    47
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    48
  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
    49
  $ cd repo-3
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    50
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    51
  $ cat a.txt
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    52
  first
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    53
  second
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    54
  third
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    55
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    56
Test clone of revision with .hgeol
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    57
12422
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    58
  $ cd ..
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    59
  $ hg clone -r 0 repo repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    60
  adding changesets
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    61
  adding manifests
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    62
  adding file changes
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    63
  added 1 changesets with 2 changes to 2 files
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    64
  updating to branch default
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    65
  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
    66
  $ cd repo-4
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    67
  $ cat .hgeol
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    68
  [patterns]
4263359f7eac tests: unify test-eol-clone
Matt Mackall <mpm@selenic.com>
parents: 11249
diff changeset
    69
  **.txt = native
11249
0bb67503ad4b eol: extension for managing file EOLs
Martin Geisler <mg@lazybytes.net>
parents:
diff changeset
    70
12943
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    71
  $ cat a.txt
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    72
  first\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    73
  second\r (esc)
7439ea4146f8 tests: use (esc) instead of other kinds of string escaping
Mads Kiilerich <mads@kiilerich.com>
parents: 12847
diff changeset
    74
  third\r (esc)
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
    75
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13521
diff changeset
    76
  $ cd ..