Don't require a diff which accepts the -N option.
#!/bin/sh
hg init t
cd t
hg branches
echo foo > a
hg add a
hg ci -m "initial" -d "0 0"
hg branch foo
hg branch
hg ci -m "add branch name" -d "0 0"
hg branch bar
hg ci -m "change branch name" -d "0 0"
hg branch ""
hg ci -m "clear branch name" -d "0 0"
hg co foo
hg branch
echo bleah > a
hg ci -m "modify a branch" -d "0 0"
hg merge
hg branch
HG_MERGE=true hg ci -m "merge" -d "0 0"
hg log
hg branches
hg branches -q
echo % test for invalid branch cache
hg rollback
hg tip