tests/test-permissions
author David Greenaway <hg-dev@davidgreenaway.com>
Sat, 03 Apr 2010 11:58:16 +1100
changeset 11060 e6df01776e08
parent 7138 0df098871e3d
child 11663 c1b11ee12fe7
permissions -rwxr-xr-x
findrenames: Optimise "addremove -s100" by matching files by their SHA1 hashes. We speed up 'findrenames' for the usecase when a user specifies they want a similarity of 100% by matching files by their exact SHA1 hash value. This reduces the number of comparisons required to find exact matches from O(n^2) to O(n). While it would be nice if we could just use mercurial's pre-calculated SHA1 hash for existing files, this hash includes the file's ancestor information making it unsuitable for our purposes. Instead, we calculate the hash of old content from scratch. The following benchmarks were taken on the current head of crew: addremove 100% similarity: rm -rf *; hg up -C; mv tests tests.new hg --time addremove -s100 --dry-run before: real 176.350 secs (user 128.890+0.000 sys 47.430+0.000) after: real 2.130 secs (user 1.890+0.000 sys 0.240+0.000) addremove 75% similarity: rm -rf *; hg up -C; mv tests tests.new; \ for i in tests.new/*; do echo x >> $i; done hg --time addremove -s75 --dry-run before: real 264.560 secs (user 215.130+0.000 sys 49.410+0.000) after: real 218.710 secs (user 172.790+0.000 sys 45.870+0.000)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     1
#!/bin/sh
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
5214
551958d5082c testcase for issue705 (fixed by 316ce5e85b3e)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3853
diff changeset
     3
hg init t
551958d5082c testcase for issue705 (fixed by 316ce5e85b3e)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3853
diff changeset
     4
cd t
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
echo foo > a
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     6
hg add a
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1497
diff changeset
     7
hg commit -m "1" -d "1000000 0"
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     8
hg verify
3853
c0b449154a90 switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2223
diff changeset
     9
chmod -r .hg/store/data/a.i
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    10
hg verify 2>/dev/null || echo verify failed
3853
c0b449154a90 switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2223
diff changeset
    11
chmod +r .hg/store/data/a.i
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    12
hg verify 2>/dev/null || echo verify failed
3853
c0b449154a90 switch to the .hg/store layout, fix the tests
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2223
diff changeset
    13
chmod -w .hg/store/data/a.i
1497
f0b13c019b04 Add permissions handling test
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    14
echo barber > a
1933
7544700fd931 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1497
diff changeset
    15
hg commit -m "2" -d "1000000 0" 2>/dev/null || echo commit failed
5519
b688d264a294 test-permissions: add a chmod +w to allow the directory to be removed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5215
diff changeset
    16
chmod -w .
5215
74723744d8e0 fix test-permissions output
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5214
diff changeset
    17
hg diff --nodates
5519
b688d264a294 test-permissions: add a chmod +w to allow the directory to be removed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5215
diff changeset
    18
chmod +w .
7099
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    19
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    20
chmod +w .hg/store/data/a.i
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    21
mkdir dir
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    22
touch dir/a
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    23
hg status
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    24
chmod -rx dir
6f750e76fb46 dirstate.walk: skip unreadable directories (issue1213)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5519
diff changeset
    25
hg status
7138
0df098871e3d test-permission: put sane permissions at the end of the test
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7099
diff changeset
    26
# reenable perm to allow deletion
0df098871e3d test-permission: put sane permissions at the end of the test
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7099
diff changeset
    27
chmod +rx dir