I'm looking at issue 4048 (with an eye on issue 3993, see end of mail) http://subversion.tigris.org/issues/show_bug.cgi?id=4048
There is code in 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. */ SVN_ERR(svn_wc__db_temp_op_end_directory_update(eb->db, eb->anchor_abspath, scratch_pool)); } This marks the anchor complete when the editor drive is: set_target_revision close_edit and this happens when the server is 1.0.x and the update makes no changes. The problem is that _end_directory_update asserts that the directory is incomplete and that is not always true. Newer servers drive the client: set_target_revision open_directory close_directory close_edit so don't trigger this code. It's easy enough to fix the assert to handle status normal as well as incomplete, but I'm not sure that really fixes the problem. The code in close_edit is old, from before 1.0, but I'm not sure it ever worked. It seems to me that just making the anchor complete is not enough, if anything it should be making the whole tree to the depth of the update complete. If we just complete the anchor then we see things like: $ svn st wc ! wc ! wc/B $ svn up wc At revision 4. $ svn st wc ! wc/B $ svn up wc/B At revision 4. ! wc/B where the rest of the tree remains incomplete. (I see this with a 1.0 client, a 1.6 client and a 1.7 client that is patched to avoid the assert.) I'm tempted to make a quick fix that simply removes the call to _end_directory_update altogether. This will fix the assert. It will mean that a "no-op" update will not mark an incomplete anchor complete, but since it doesn't mark the rest of the tree complete that doesn't seem like a major regression. There is a related issue, 3993 http://subversion.tigris.org/issues/show_bug.cgi?id=3993 where a serf bug triggers a similar sort of problem on googlecode servers. If we were to fix 4048 by marking the whole tree complete it may make 3993 worse. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com