Mercurial > hg
view tests/test-merge-prompt.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 | 01ada7b1861d |
children |
line wrap: on
line source
adding file1 adding file2 2 files updated, 0 files merged, 0 files removed, 0 files unresolved created new head # non-interactive merge local changed file1 which remote deleted use (c)hanged version or (d)elete? c remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? c 1 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) status: M file2 C file1 file1: 1 changed file2: 2 changed # interactive merge 0 files updated, 0 files merged, 1 files removed, 0 files unresolved local changed file1 which remote deleted use (c)hanged version or (d)elete? remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? 0 files updated, 0 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) status: file2: No such file or directory C file1 file1: 1 changed file2 does not exist # interactive merge with bad input 0 files updated, 0 files merged, 0 files removed, 0 files unresolved local changed file1 which remote deleted use (c)hanged version or (d)elete? unrecognized response local changed file1 which remote deleted use (c)hanged version or (d)elete? unrecognized response local changed file1 which remote deleted use (c)hanged version or (d)elete? remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? unrecognized response remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) status: M file2 R file1 file1 does not exist file2: 2 changed # interactive merge with not enough input 1 files updated, 0 files merged, 1 files removed, 0 files unresolved local changed file1 which remote deleted use (c)hanged version or (d)elete? remote changed file2 which local deleted use (c)hanged version or leave (d)eleted? abort: response expected failed status: file2: No such file or directory C file1 file1: 1 changed file2 does not exist