You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2010/08/30 15:26:58 UTC

svn commit: r990798 - /subversion/trunk/subversion/libsvn_wc/status.c

Author: rhuijben
Date: Mon Aug 30 13:26:58 2010
New Revision: 990798

URL: http://svn.apache.org/viewvc?rev=990798&view=rev
Log:
Resolve a regression in the working copy status walker that made missing
directories invisible when using 'svn status -u' in single-db mode.

Before single-db we reported missing directories as deleted to the
repository in the crawler step to receive them as changes. But we
stopped doing that as we still have all their information. But when
walking the status we still skipped these paths from their parent
directory as we assumed that they would be reported via the repository
status.

This patch allows fixing merge_tests.py 16 in a followup commit.

* subversion/libsvn_wc/status.c
  (make_dir_baton,
   handle_statii): Don't skip missing or obstructed directories when
     checking children in single-db.

Modified:
    subversion/trunk/subversion/libsvn_wc/status.c

Modified: subversion/trunk/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/status.c?rev=990798&r1=990797&r2=990798&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/status.c (original)
+++ subversion/trunk/subversion/libsvn_wc/status.c Mon Aug 30 13:26:58 2010
@@ -1627,8 +1627,10 @@ make_dir_baton(void **dir_baton,
      our purposes includes being an external or ignored item). */
   if (status_in_parent
       && (status_in_parent->node_status != svn_wc_status_unversioned)
+#ifndef SVN_WC__SINGLE_DB
       && (status_in_parent->node_status != svn_wc_status_missing)
       && (status_in_parent->node_status != svn_wc_status_obstructed)
+#endif
       && (status_in_parent->node_status != svn_wc_status_external)
       && (status_in_parent->node_status != svn_wc_status_ignored)
       && (status_in_parent->kind == svn_node_dir)
@@ -1811,9 +1813,11 @@ handle_statii(struct edit_baton *eb,
 
       /* Now, handle the status.  We don't recurse for svn_depth_immediates
          because we already have the subdirectories' statii. */
-      if (status->node_status != svn_wc_status_obstructed
+      if (status->versioned && status->kind == svn_node_dir
+#ifndef SVN_WC__SINGLE_DB
+          && status->node_status != svn_wc_status_obstructed
           && status->node_status != svn_wc_status_missing
-          && status->versioned && status->kind == svn_node_dir
+#endif
           && (depth == svn_depth_unknown
               || depth == svn_depth_infinity))
         {