tests/test-archive-symlinks.t
author Siddharth Agarwal <sid0@fb.com>
Tue, 31 Mar 2015 19:29:39 -0700
changeset 24560 b38bcf18993c
parent 22046 7a9cbb315d84
child 25472 4d2b9b304ad0
permissions -rw-r--r--
dirstate.walk: don't keep track of normalized files in parallel Rev 2bb13f2b778c changed the semantics of the work list to store (normalized, non-normalized) pairs. All the tuple creation and destruction hurts perf: on a large repo on OS X, 'hg status' went from 3.62 seconds to 3.78. It also is unnecessary in most cases: - it is clearly unnecessary on case-sensitive filesystems. - it is also unnecessary when filenames have been read off of disk rather than being supplied by the user. The only case where the non-normalized case is required at all is when the file is unknown. To eliminate most of the perf cost, keep trace of whether the directory needs to be normalized at all with a boolean called 'alreadynormed'. Pay the cost of directory normalization only when necessary. For the above large repo, 'hg status' goes to 3.63 seconds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 21216
diff changeset
     1
#require symlink
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     2
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     3
  $ origdir=`pwd`
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     4
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     5
  $ hg init repo
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     6
  $ cd repo
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     7
  $ ln -s nothing dangling
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     8
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
     9
avoid tar warnings about old timestamp
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    10
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    11
  $ hg ci -d '2000-01-01 00:00:00 +0000' -qAm 'add symlink'
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    12
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    13
  $ hg archive -t files ../archive
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    14
  $ hg archive -t tar -p tar ../archive.tar
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    15
  $ hg archive -t zip -p zip ../archive.zip
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    16
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    17
files
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    18
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    19
  $ cd "$origdir"
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    20
  $ cd archive
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 11854
diff changeset
    21
  $ "$TESTDIR/readlink.py" dangling
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    22
  dangling -> nothing
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    23
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    24
tar
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    25
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    26
  $ cd "$origdir"
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    27
  $ tar xf archive.tar
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    28
  $ cd tar
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 11854
diff changeset
    29
  $ "$TESTDIR/readlink.py" dangling
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    30
  dangling -> nothing
4831
6f08bc1bd00b archive: add symlink support
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    31
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    32
zip
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    33
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    34
  $ cd "$origdir"
21216
6d632cf8a811 tests: suppress spurious lchmod error from unzip (issue4088)
Matt Mackall <mpm@selenic.com>
parents: 16913
diff changeset
    35
  $ unzip archive.zip > /dev/null 2>&1
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    36
  $ cd zip
16350
4f795f5fbb0b tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents: 11854
diff changeset
    37
  $ "$TESTDIR/readlink.py" dangling
11854
aa2abde72da1 tests: unify test-archive-symlinks
Martin Geisler <mg@lazybytes.net>
parents: 5683
diff changeset
    38
  dangling -> nothing
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    39
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16350
diff changeset
    40
  $ cd ..