Mercurial > hg
view tests/test-status-color.out @ 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 | 7b3d837ca60e |
children | 51421ab573de |
line wrap: on
line source
hg status in repo root: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in repo root: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status in a: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in a: [0;35;1;4m? 1/in_a_1[0m [0;35;1;4m? in_a[0m hg status .. in a: [0;35;1;4m? 1/in_a_1[0m [0;35;1;4m? in_a[0m [0;35;1;4m? ../b/1/in_b_1[0m [0;35;1;4m? ../b/2/in_b_2[0m [0;35;1;4m? ../b/in_b[0m [0;35;1;4m? ../in_root[0m hg status in b: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in b: [0;35;1;4m? 1/in_b_1[0m [0;35;1;4m? 2/in_b_2[0m [0;35;1;4m? in_b[0m hg status .. in b: [0;35;1;4m? ../a/1/in_a_1[0m [0;35;1;4m? ../a/in_a[0m [0;35;1;4m? 1/in_b_1[0m [0;35;1;4m? 2/in_b_2[0m [0;35;1;4m? in_b[0m [0;35;1;4m? ../in_root[0m hg status in a/1: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in a/1: [0;35;1;4m? in_a_1[0m hg status .. in a/1: [0;35;1;4m? in_a_1[0m [0;35;1;4m? ../in_a[0m hg status in b/1: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in b/1: [0;35;1;4m? in_b_1[0m hg status .. in b/1: [0;35;1;4m? in_b_1[0m [0;35;1;4m? ../2/in_b_2[0m [0;35;1;4m? ../in_b[0m hg status in b/2: [0;35;1;4m? a/1/in_a_1[0m [0;35;1;4m? a/in_a[0m [0;35;1;4m? b/1/in_b_1[0m [0;35;1;4m? b/2/in_b_2[0m [0;35;1;4m? b/in_b[0m [0;35;1;4m? in_root[0m hg status . in b/2: [0;35;1;4m? in_b_2[0m hg status .. in b/2: [0;35;1;4m? ../1/in_b_1[0m [0;35;1;4m? in_b_2[0m [0;35;1;4m? ../in_b[0m adding .hgignore adding deleted adding modified adding removed hg status: [0;32;1mA added[0m [0;31;1mR removed[0m [0;36;1;4m! deleted[0m [0;35;1;4m? unknown[0m hg status modified added removed deleted unknown never-existed ignored: never-existed: No such file or directory [0;32;1mA added[0m [0;31;1mR removed[0m [0;36;1;4m! deleted[0m [0;35;1;4m? unknown[0m hg status -C: [0;32;1mA added[0m [0;32;1mA copied[0m [0;0m modified[0m [0;31;1mR removed[0m [0;36;1;4m! deleted[0m [0;35;1;4m? unknown[0m hg status -A: [0;32;1mA added[0m [0;32;1mA copied[0m [0;0m modified[0m [0;31;1mR removed[0m [0;36;1;4m! deleted[0m [0;35;1;4m? unknown[0m [0;30;1mI ignored[0m [0;0mC .hgignore[0m [0;0mC modified[0m hg status ignoreddir/file: hg status -i ignoreddir/file: [0;30;1mI ignoreddir/file[0m adding .hgignore adding deleted adding modified adding removed % test unknown color ignoring unknown color/effect 'periwinkle' (configured in color.status.modified) M modified [0;32;1mA added[0m [0;32;1mA copied[0m [0;31;1mR removed[0m [0;36;1;4m! deleted[0m [0;35;1;4m? unknown[0m