I am NOT sure of the correctness of this change, but I've hit a point
on a work repository where the needupdate function returns false and
so the merge state never gets correctly cleared. As far as I can tell
when we're *always* in a merge state at this point, so we should
*always* clear the merge state.
I'm not sure how to structure the test at the moment, but if others
agree that this looks plausible I'll try and figure out what state my
work repository is in to craft a test case that can be used to prevent
any backsliding on this fix.