add prechangegroup and pretxnchangegroup hooks.
prechangegroup lets you stop push, pull or unbundle before it begins.
pretxnchangegroup lets you inspect changegroup before transaction is
committed, and roll back if you not like it.
#!/bin/sh
mkdir t
cd t
hg init
echo This is file a1 > a
echo This is file b1 > b
hg add a b
hg commit -m "commit #0" -d "0 0"
echo This is file b22 > b
hg commit -m"comment #1" -d "0 0"
hg update 0
rm b
hg commit -A -m"comment #2" -d "0 0"
# in theory, we shouldn't need the "yes k" below, but it prevents
# this test from hanging when "hg update" erroneously prompts the
# user for "keep or delete"
yes k | hg update 1
# we exit with 0 to avoid the unavoidable SIGPIPE from above causing
# us to fail this test
exit 0