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
hg id
echo a > a
hg add a
hg commit -m "test" -d "0 0"
hg co
hg identify
T=`hg tip -v | head -n 1 | cut -d : -f 3`
echo "$T first" > .hgtags
cat .hgtags
hg add .hgtags
hg commit -m "add tags" -d "0 0"
hg tags
hg identify
echo bb > a
hg status
hg identify
hg co first
hg id
hg -v id
hg status
echo 1 > b
hg add b
hg commit -m "branch" -d "0 0"
hg id
hg co -m 1
hg id
hg status