Mercurial > hg
view tests/test-rebase-conflicts @ 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 | 8766fee6f225 |
children | b345b1cc124f |
line wrap: on
line source
#!/bin/sh echo "[extensions]" >> $HGRCPATH echo "graphlog=" >> $HGRCPATH echo "rebase=" >> $HGRCPATH cleanoutput () { sed -e 's/\(Rebase status stored to\).*/\1/' \ -e 's/\(Rebase status restored from\).*/\1/' \ -e 's/\(saving bundle to \).*/\1/' } hg init a cd a echo 'c1' >common hg add common hg commit -d '0 0' -m "C1" echo 'c2' >>common hg commit -d '1 0' -m "C2" echo 'c3' >>common hg commit -d '2 0' -m "C3" hg update -C 1 echo 'l1' >>extra hg add extra hg commit -d '3 0' -m "L1" sed -e 's/c2/l2/' common > common.new mv common.new common hg commit -d '4 0' -m "L2" echo 'l3' >> extra2 hg add extra2 hg commit -d '5 0' -m "L3" hg glog --template '{rev}: {desc}\n' echo echo '% Try to call --continue' hg rebase --continue echo echo '% Conflicting rebase' hg rebase -s 3 -d 2 echo echo '% Try to continue without solving the conflict' hg rebase --continue echo echo '% Conclude rebase' echo 'resolved merge' >common hg resolve -m common hg rebase --continue 2>&1 | cleanoutput hg glog --template '{rev}: {desc}\n' echo echo '% Check correctness' echo ' - Rev. 0' hg cat -r 0 common echo ' - Rev. 1' hg cat -r 1 common echo ' - Rev. 2' hg cat -r 2 common echo ' - Rev. 3' hg cat -r 3 common echo ' - Rev. 4' hg cat -r 4 common echo ' - Rev. 5' hg cat -r 5 common