Mercurial > hg
view tests/test-encoding @ 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 | 46abbed02b2d |
children | 29d2a7e3a88b |
line wrap: on
line source
#!/bin/sh hg init t cd t # we need a repo with some legacy latin-1 changesets hg unbundle $TESTDIR/legacy-encoding.hg hg co python << EOF f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close() f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close() f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close() EOF echo % should fail with encoding error echo "plain old ascii" > a hg st HGENCODING=ascii hg ci -l latin-1 -d "1000000 0" echo % these should work echo "latin-1" > a HGENCODING=latin-1 hg ci -l latin-1 -d "1000000 0" echo "utf-8" > a HGENCODING=utf-8 hg ci -l utf-8 -d "1000000 0" HGENCODING=latin-1 hg tag -d "1000000 0" `cat latin-1-tag` HGENCODING=latin-1 hg branch `cat latin-1-tag` HGENCODING=latin-1 hg ci -d "1000000 0" -m 'latin1 branch' rm .hg/branch echo % ascii hg --encoding ascii log echo % latin-1 hg --encoding latin-1 log echo % utf-8 hg --encoding utf-8 log echo % ascii HGENCODING=ascii hg tags echo % latin-1 HGENCODING=latin-1 hg tags echo % utf-8 HGENCODING=utf-8 hg tags echo % ascii HGENCODING=ascii hg branches echo % latin-1 HGENCODING=latin-1 hg branches echo % utf-8 HGENCODING=utf-8 hg branches echo '[ui]' >> .hg/hgrc echo 'fallbackencoding = koi8-r' >> .hg/hgrc echo % utf-8 HGENCODING=utf-8 hg log HGENCODING=dolphin hg log HGENCODING=ascii hg branch `cat latin-1-tag` cp latin-1-tag .hg/branch HGENCODING=latin-1 hg ci -d "1000000 0" -m 'should fail' exit 0