Mercurial > hg
view tests/test-dispatch.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 | f8e25885d975 |
children | cd5b6a11b607 |
line wrap: on
line source
adding a # missing arg hg cat: invalid arguments hg cat [OPTION]... FILE... output the current or given revision of files Print the specified files as they were at the given revision. If no revision is given, the parent of the working directory is used, or tip if no revision is checked out. Output may be to a file, in which case the name of the file is given using a format string. The formatting rules are the same as for the export command, with the following additions: %s basename of file being printed %d dirname of file being printed, or '.' if in repository root %p root-relative path name of file being printed options: -o --output print output to file with formatted name -r --rev print the given revision --decode apply any matching decode filter -I --include include names matching the given patterns -X --exclude exclude names matching the given patterns use "hg -v help cat" to show global options % [defaults] a a: No such file in rev 000000000000 % no repo abort: There is no Mercurial repository here (.hg not found)!