Mercurial > hg
annotate tests/test-push-hook-lock.t @ 27370:d9e3ebe56970 stable
record: don't dereference symlinks while copying over stat data
Previously, we could be calling os.utime or os.chflags (via shutil.copystat) on
a symlink. These functions dereference symlinks, so this would have caused the
timestamp of the target to be set. On a read-only or similarly weird
filesystem, this might cause an exception to be raised.
This is pretty hard to test because conjuring up a read-only filesystem for
test purposes is non-trivial.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sat, 12 Dec 2015 10:58:05 -0800 |
parents | 00e4c5601c74 |
children | ac9b85079122 |
rev | line source |
---|---|
12279 | 1 $ hg init 1 |
2 | |
3 $ echo '[ui]' >> 1/.hg/hgrc | |
4 $ echo 'timeout = 10' >> 1/.hg/hgrc | |
5 | |
6 $ echo foo > 1/foo | |
7 $ hg --cwd 1 ci -A -m foo | |
8 adding foo | |
9 | |
10 $ hg clone 1 2 | |
11 updating to branch default | |
12 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
13 | |
14 $ hg clone 2 3 | |
15 updating to branch default | |
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
17 | |
23349
7dd1870120b2
tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
22559
diff
changeset
|
18 $ cat <<EOF > $TESTTMP/debuglocks-pretxn-hook.sh |
7dd1870120b2
tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
22559
diff
changeset
|
19 > hg debuglocks |
7dd1870120b2
tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
22559
diff
changeset
|
20 > true |
7dd1870120b2
tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
22559
diff
changeset
|
21 > EOF |
12279 | 22 $ echo '[hooks]' >> 2/.hg/hgrc |
23349
7dd1870120b2
tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
22559
diff
changeset
|
23 $ echo "pretxnchangegroup.a = sh $TESTTMP/debuglocks-pretxn-hook.sh" >> 2/.hg/hgrc |
12279 | 24 $ echo 'changegroup.push = hg push -qf ../1' >> 2/.hg/hgrc |
25 | |
26 $ echo bar >> 3/foo | |
27 $ hg --cwd 3 ci -m bar | |
28 | |
25126
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
29 $ hg --cwd 3 push ../2 --config experimental.bundle2-exp=False |
12279 | 30 pushing to ../2 |
31 searching for changes | |
32 adding changesets | |
33 adding manifests | |
34 adding file changes | |
35 added 1 changesets with 1 changes to 1 files | |
22559
4e0b696a1cb3
commands: add debuglocks to report/clear lock state
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
36 lock: user *, process * (*s) (glob) |
4e0b696a1cb3
commands: add debuglocks to report/clear lock state
Matt Mackall <mpm@selenic.com>
parents:
12279
diff
changeset
|
37 wlock: free |
12279 | 38 |
25126
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
39 $ hg --cwd 1 --config extensions.strip= strip tip -q |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
40 $ hg --cwd 2 --config extensions.strip= strip tip -q |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
41 $ hg --cwd 3 push ../2 --config experimental.bundle2-exp=True |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
42 pushing to ../2 |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
43 searching for changes |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
44 adding changesets |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
45 adding manifests |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
46 adding file changes |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
47 added 1 changesets with 1 changes to 1 files |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
48 lock: user *, process * (*s) (glob) |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
49 wlock: user *, process * (*s) (glob) |
00e4c5601c74
test: test both bundle1 and bundle2 paths in 'test-push-hook-lock.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
23349
diff
changeset
|
50 |