Mercurial > hg
annotate tests/test-manifest @ 9116:f90bbf1ea09f
inotify: fix issue1375, add a test.
The biggest problem was the data structure, which did not allow changing
a file into a directory or vice versa. This problem is fixed by b55d44719b47.
The walk() method also had an issue in this case:
- we know 'path' as a directory. inotify server sleeps.
- 'path' is deleted
- 'path' is recreated as a file
- the server catches up here, and see the deletion. it instantiates a scan(),
which in its turn calls for walk(repo, path).
- walk() then assumes that 'path' is a directory and calls os.listdir on it,
which raises an OSError(errno.ENOTDIR)
Catch the error, and yield the file instead of the directory contents.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 13 Jul 2009 16:49:05 +0200 |
parents | 7239e06e58e9 |
children |
rev | line source |
---|---|
5155
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
1 #!/bin/sh |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
2 |
5406
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
3 # Source bundle was generated with the following script. |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
4 # |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
5 # hg init |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
6 # echo a > a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
7 # ln -s a l |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
8 # hg ci -Ama -d'0 0' |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
9 # mkdir b |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
10 # echo a > b/a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
11 # chmod +x b/a |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
12 # hg ci -Amb -d'1 0' |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
13 |
5155
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
14 hg init |
5406
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
15 hg -q pull "$TESTDIR/test-manifest.hg" |
f11554a097c8
test-manifest: test symlink and exec bit display
Patrick Mezard <pmezard@gmail.com>
parents:
5155
diff
changeset
|
16 |
6737
7239e06e58e9
context: consistently return p1 context for None
Matt Mackall <mpm@selenic.com>
parents:
5406
diff
changeset
|
17 echo % should be empty |
7239e06e58e9
context: consistently return p1 context for None
Matt Mackall <mpm@selenic.com>
parents:
5406
diff
changeset
|
18 hg manifest |
7239e06e58e9
context: consistently return p1 context for None
Matt Mackall <mpm@selenic.com>
parents:
5406
diff
changeset
|
19 |
7239e06e58e9
context: consistently return p1 context for None
Matt Mackall <mpm@selenic.com>
parents:
5406
diff
changeset
|
20 hg co |
5155
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
21 hg manifest |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
22 hg manifest -v |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
23 hg manifest --debug |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
24 hg manifest -r 0 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
25 hg manifest -r 1 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
26 hg manifest -r tip |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
27 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
28 echo % should fail |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
29 hg manifest -r 2 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
30 hg manifest -r tip tip |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
31 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
32 hg manifest tip |