Notice this code in libsvn_ra_dav/merge.c:handle_resource():
if (mc->rtype == RTYPE_BASELINE)
{
/* cool. the DAV:version-name tells us the new revision */
mc->rev = SVN_STR_TO_REV(mc->vsn_name->data);
return SVN_NO_ERROR;
}
If I recall correctly, I had accidentally removed the "return SVN_NO_ERROR;"
from this code at one point, and the result was some commits that succeeded in
the repository, but failed in the client immediate afterward. This was bad
enough as it is, but the result was that my working copy was messed up
somehow...the text-bases were just wrong, or something like that.
It's been a while since this occured, and I'm not in the mood to try to force a
reproduction of it today. Just noting that there might be a general problem
with how we recover from successful commit with failed post-commit processing.