Mercurial > hg
view tests/test-convert-bzr.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 | dd24488cba2d |
children |
line wrap: on
line source
% create and rename on the same file in the same step a => b c => d e => f initializing destination source-hg repository scanning source... sorting... converting... 1 Initial add: a, c, e 0 rename a into b, create a, rename c into d o 1 "rename a into b, create a, rename c into d" files: a b c d e f | o 0 "Initial add: a, c, e" files: a c e % manifest a b d f % test --rev option initializing destination source-1-hg repository scanning source... sorting... converting... 0 Initial add: a, c, e o 0 "Initial add: a, c, e" files: a c e % test with filemap initializing destination source-filemap-hg repository scanning source... sorting... converting... 1 Initial add: a, c, e 0 rename a into b, create a, rename c into d b d f % convert from lightweight checkout initializing destination source-light-hg repository warning: lightweight checkouts may cause conversion failures, try with a regular branch instead. scanning source... sorting... converting... 1 Initial add: a, c, e 0 rename a into b, create a, rename c into d % lightweight manifest a b d f % compare timestamps good: hg timestamps match bzr timestamps % merge initializing destination source-hg repository scanning source... sorting... converting... 3 Initial add 2 Editing a 1 Editing b 0 Merged improve branch o 3 "Merged improve branch" files: |\ | o 2 "Editing b" files: b | | o | 1 "Editing a" files: a |/ o 0 "Initial add" files: a b % symlinks and executable files initializing destination source-hg repository scanning source... sorting... converting... 1 Initial setup 0 Symlink changed, x bits changed % manifest of 0 644 @ altname 644 d/a 755 * program 644 @ syma % manifest of tip 644 @ altname 644 d/a 755 * newprog 644 program 644 @ syma % test the symlinks can be recreated 5 files updated, 0 files merged, 0 files removed, 0 files unresolved a