Mercurial > hg
view tests/test-import-eol @ 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 | 6c9dce20ed70 |
children | 1720d70cd6d4 |
line wrap: on
line source
#!/bin/sh cat > makepatch.py <<EOF f = file('eol.diff', 'wb') w = f.write w('test message\n') w('diff --git a/a b/a\n') w('--- a/a\n') w('+++ b/a\n') w('@@ -1,5 +1,5 @@\n') w(' a\n') w('-bbb\r\n') w('+yyyy\r\n') w(' cc\r\n') w(' \n') w(' d\n') w('-e\n') w('\ No newline at end of file\n') w('+z\r\n') w('\ No newline at end of file\r\n') EOF hg init repo cd repo echo '\.diff' > .hgignore # Test different --eol values python -c 'file("a", "wb").write("a\nbbb\ncc\n\nd\ne")' hg ci -Am adda python ../makepatch.py echo % invalid eol hg --config patch.eol='LFCR' import eol.diff hg revert -a echo % force LF hg --traceback --config patch.eol='LF' import eol.diff python -c 'print repr(file("a","rb").read())' hg st echo % force CRLF hg up -C 0 hg --traceback --config patch.eol='CRLF' import eol.diff python -c 'print repr(file("a","rb").read())' hg st # Test --eol and binary patches python -c 'file("b", "wb").write("a\x00\nb")' hg ci -Am addb python -c 'file("b", "wb").write("a\x00\nc")' hg diff --git > bin.diff hg revert --no-backup b echo % binary patch with --eol hg import --config patch.eol='CRLF' -m changeb bin.diff python -c 'print repr(file("b","rb").read())' hg st cd ..