See bug #490 that I just opened. Why is this logic hg specific when we really need it for both git and hg?

Also, you have a `ClearLock` implementation in `HgRepository` which does something very different from calling recover, What is the difference between the two?