> -----Original Message-----
> From: Philip Martin [mailto:philip.martin_at_wandisco.com]
> Sent: woensdag 14 september 2011 16:15
> To: dev_at_subversion.apache.org
> Subject: update_editor.c:close_edit setting "un-incomplete"
> Looking a issue 3993, a serf/googlecode oddity
> leads me to this code in libsvn_wc/update_editor.c:close_edit
> /* The editor didn't even open the root; we have to take care of
> some cleanup stuffs. */
> if (! eb->root_opened
> && *eb->target_basename == '\0')
> /* We need to "un-incomplete" the root directory. */
> That's WCNG code, but the concept has been present since 1.0. The
> "un-incomplete" state is presence=normal in WCNG terms.
> Why do we do that? If we don't call open_root and the directory is
> incomplete then it must have been incomplete before the update started.
> Is it correct for a drive that doesn't call open_root to change such a
> directory to normal? I think leaving the directory incomplete is the
> correct action.
We shouldn't un-incomplete the root directory, because we didn't mark it
complete in the first place.
But when just removing these lines we introduce a new problem:
We will still bump the revisions of all nodes to revisions in which they
don't exist. (At least that is what that example targetting google code
As I have been unable to reproduce this code path I'm thinking that we
should never get here in the first place: the fs api should have reported a
PATH not found much earlier on Google's side.
So this code should probably return an error indicating what went wrong...
(And I have no idea what went wrong, because I can't reproduce it on any
standard ra implementation)
Received on 2011-09-14 16:21:56 CEST