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
hg init a
cd a
hg init b
echo x > b/x
echo '# should print nothing'
hg add b
hg st
echo '# should fail'
hg st b/x
hg add b/x
echo '# should fail'
hg add b b/x
hg st
echo '# should arguably print nothing'
hg st b
echo a > a
hg ci -Ama a
echo '# should fail'
hg mv a b
hg st