Mercurial > hg
view tests/test-convert-svn-source.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 | b1a4f67b98d0 |
children |
line wrap: on
line source
# now tests that it works with trunk/tags layout, but no branches yet % initial svn import Adding projB/trunk Adding projB/tags Committed revision 1. % update svn repository Checked out revision 1. A letter .txt Adding letter .txt Transmitting file data . Committed revision 2. Sending letter .txt Transmitting file data . Committed revision 3. Committed revision 4. Sending letter .txt Transmitting file data . Committed revision 5. % convert to hg once initializing destination B-hg repository scanning source... sorting... converting... 3 init projB 2 hello 1 world 0 nice day updating tags % update svn repository again A letter2.txt Sending letter .txt Adding letter2.txt Transmitting file data .. Committed revision 6. Committed revision 7. Sending letter2.txt Transmitting file data . Committed revision 8. % test incremental conversion scanning source... sorting... converting... 1 second letter 0 work in progress updating tags o 7 update tags files: .hgtags | o 6 work in progress files: letter2.txt | o 5 second letter files: letter .txt letter2.txt | o 4 update tags files: .hgtags | o 3 nice day files: letter .txt | o 2 world files: letter .txt | o 1 hello files: letter .txt | o 0 init projB files: tip v0.2 v0.1 % test filemap initializing destination fmap repository scanning source... sorting... converting... 5 init projB 4 hello 3 world 2 nice day 1 second letter 0 work in progress o 1 work in progress files: letter2.txt | o 0 second letter files: letter2.txt % test stop revision initializing destination stoprev repository scanning source... sorting... converting... 0 init projB extra: branch= extra: convert_revision=