setup.py: skip inotify if there's no inotify_add_watch
Debian Etch doesn't include a sys/inotify.h header, which makes it
impossible to compile _inotify.c, making hg uninstallable.
The cc.has_function() method is implemented by trying to compile a
simple C program. Since there's no redirection involved all error
messages are sent to the terminal. This is not particularly pretty
but at least it allows the installation to complete.
#!/bin/sh
# test basic functionality of url#rev syntax
hg init repo
cd repo
echo a > a
hg ci -qAm 'add a' -d '0 0'
hg branch foo
echo >> a
hg ci -m 'change a' -d '0 0'
cd ..
echo '% clone repo#foo'
hg clone 'repo#foo' clone
echo '% heads'
hg --cwd clone heads
echo '% parents'
hg --cwd clone parents
sed -e 's/default.*#/default = #/' clone/.hg/hgrc
echo
echo '% changing original repo'
cd repo
echo >> a
hg ci -m 'new head of branch foo' -d '0 0'
hg up -qC default
echo bar > bar
hg ci -qAm 'add bar' -d '0 0'
hg log
echo
echo '% outgoing'
hg -q outgoing '../clone#foo'
echo
echo '% push'
hg -q push '../clone#foo'
hg --cwd ../clone heads
cd ..
echo
echo '% rolling back'
cd clone
hg rollback
echo '% incoming'
hg -q incoming
echo '% pull'
hg -q pull
hg heads
echo
echo '% pull should not have updated'
hg parents -q
echo '% going back to the default branch'
hg up -C 0
hg parents
echo '% no new revs, no update'
hg pull -qu
hg parents -q
echo '% rollback'
hg rollback
hg up -C 0
hg parents -q
echo '% pull -u takes us back to branch foo'
hg pull -qu
hg parents
echo '% rollback'
hg rollback
hg up -C 0
echo '% parents'
hg parents -q
echo '% heads'
hg heads -q
echo '% pull -u -r otherrev url#rev updates to rev'
hg pull -qur default default
echo '% parents'
hg parents
echo '% heads'
hg heads