prepush: add more precise error messages
Part of the patch is from timeless@mozdev.org
- indicate the branch name where there are multiple heads
- give better advice when hitting a possible race, where new heads are added
between discovery and the call to branchmap(). In that case, asking the user
to merge isn't helpful, since only remote has the changes.
#!/bin/sh
echo % initialize remote repo with branches
hg init remote
cd remote
echo a > a
hg ci -Ama
hg branch br
hg ci -Amb
echo c > c
hg ci -Amc
hg log
cd ..
echo % try cloning -r branch
hg clone -rbr remote local1
hg -R local1 parents
echo % try cloning -rother clone#branch
hg clone -r0 remote#br local2
hg -R local2 parents
echo % try cloning -r1 clone#branch
hg clone -r1 remote#br local3
hg -R local3 parents