Change sshrepo.repoerror() into a more flexible sshrepo.raise_().
Now every exception can be raised with a cleanup, not only hg.RepoError.
#!/bin/sh
hg init a
cd a
touch empty1
hg add empty1
hg commit -m 'add empty1' -d '1000000 0'
touch empty2
hg add empty2
hg commit -m 'add empty2' -d '1000000 0'
hg up -C 0
touch empty3
hg add empty3
hg commit -m 'add empty3' -d '1000000 0'
hg heads
hg merge 1
# before changeset 05257fd28591, we didn't notice the
# empty file that came from rev 1.
hg status
hg commit -m merge -d '1000000 0'
hg manifest --debug tip