Mercurial > hg
view tests/test-patch @ 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 | 0de7e6e27fe4 |
children |
line wrap: on
line source
#!/bin/sh cat > patchtool.py <<EOF import sys print 'Using custom patch' if '--binary' in sys.argv: print '--binary found !' EOF echo "[ui]" >> $HGRCPATH echo "patch=python ../patchtool.py" >> $HGRCPATH hg init a cd a echo a > a hg commit -Ama -d '1 0' echo b >> a hg commit -Amb -d '2 0' cd .. # This test check that: # - custom patch commands with arguments actually works # - patch code does not try to add weird arguments like # --binary when custom patch commands are used. For instance # --binary is added by default under win32. echo % check custom patch options are honored hg --cwd a export -o ../a.diff tip hg clone -r 0 a b hg --cwd b import -v ../a.diff