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/09/06 15:47:24 UTC

svn commit: r993028 - in /subversion/trunk/subversion/libsvn_wc: adm_crawler.c adm_files.c adm_ops.c copy.c crop.c diff.c entries.c lock.c node.c props.c revision_status.c status.c update_editor.c workqueue.c

Author: rhuijben
Date: Mon Sep  6 13:47:23 2010
New Revision: 993028

URL: http://svn.apache.org/viewvc?rev=993028&view=rev
Log:
Remove the remaining checks for obstruction statee in libsvn_wc. These
statee are no longer returned from the wc_db api since we switched to
single-db. This is a a final cleanup step before removing some parts
of the multi-db support.

No functional change.

* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths): Disable check for obstructed.

* subversion/libsvn_wc/adm_files.c
  (svn_wc__get_pristine_contents): Disable check for obstructed and
    remove base-deleted check (value is wc_db internal).
  (svn_wc__internal_ensure_adm): Disable check for obstructed.

* subversion/libsvn_wc/adm_ops.c
  (process_committed_leaf,
   svn_wc__process_committed_internal,
   svn_wc_add4): Disable obstructed status checks.

* subversion/libsvn_wc/copy.c
  (svn_wc_copy3): Disable obstructed check.

* subversion/libsvn_wc/crop.c
  (svn_wc_exclude,
   svn_wc_crop_tree2): Disable obstructed checks.

* subversion/libsvn_wc/diff.c
  (file_diff): Remove obstructed check (file couldn't be obstructed)

* subversion/libsvn_wc/entries.c
  (get_base_info_for_deleted,
   read_one_entry): Disable obstructed checks.

* subversion/libsvn_wc/lock.c
  (adm_available): Disable obstructed checks.

* subversion/libsvn_wc/node.c
  (svn_wc__node_get_repos_info,
   svn_wc__internal_node_get_url,
   svn_wc__node_get_repos_relpath,
   svn_wc__internal_get_copyfrom_info,
   svn_wc__node_is_status_deleted,
   svn_wc__node_is_added,
   svn_wc__internal_is_replaced,
   svn_wc__node_get_commit_base_rev,
   svn_wc__internal_node_get_schedule): Disable checks for obstructed statee.

* subversion/libsvn_wc/props.c
  (svn_wc__get_pristine_props): Disable check for obstructed.

* subversion/libsvn_wc/revision_status.c
  (analyze_status): Disable check for obstructed status.

* subversion/libsvn_wc/status.c
  (internal_status): Disable obstructed test.

* subversion/libsvn_wc/update_editor.c
  (node_get_relpath_ignore_errors,
   create_tree_conflict,
   check_tree_conflict,
   add_directory): Disable obstructed checks.

* subversion/libsvn_wc/workqueue.c
  (remove_base_node,
   log_do_committed): Disable obstructed checks.

Modified:
    subversion/trunk/subversion/libsvn_wc/adm_crawler.c
    subversion/trunk/subversion/libsvn_wc/adm_files.c
    subversion/trunk/subversion/libsvn_wc/adm_ops.c
    subversion/trunk/subversion/libsvn_wc/copy.c
    subversion/trunk/subversion/libsvn_wc/crop.c
    subversion/trunk/subversion/libsvn_wc/diff.c
    subversion/trunk/subversion/libsvn_wc/entries.c
    subversion/trunk/subversion/libsvn_wc/lock.c
    subversion/trunk/subversion/libsvn_wc/node.c
    subversion/trunk/subversion/libsvn_wc/props.c
    subversion/trunk/subversion/libsvn_wc/revision_status.c
    subversion/trunk/subversion/libsvn_wc/status.c
    subversion/trunk/subversion/libsvn_wc/update_editor.c
    subversion/trunk/subversion/libsvn_wc/workqueue.c

Modified: subversion/trunk/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_crawler.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Mon Sep  6 13:47:23 2010
@@ -652,8 +652,10 @@ report_revisions_and_depths(svn_wc__db_t
              ### skip it right here. I guess with an obstruction, we
              ### can't really do anything with info the server might
              ### send, so maybe this is just fine.  */
+#ifdef SVN_WC__DB_SINGLE_DB
           if (this_status == svn_wc__db_status_obstructed)
             continue;
+#endif
 
           is_incomplete = (this_status == svn_wc__db_status_incomplete);
           start_empty = is_incomplete;

Modified: subversion/trunk/subversion/libsvn_wc/adm_files.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_files.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_files.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_files.c Mon Sep  6 13:47:23 2010
@@ -357,13 +357,14 @@ svn_wc__get_pristine_contents(svn_stream
                                "because it has an unexpected status"),
                              svn_dirent_local_style(local_abspath,
                                                     scratch_pool));
+#ifndef SVN_WC__SINGLE_DB
   else
     /* We know that it is a file, so we can't hit the _obstructed stati.
        Also, we should never see _base_deleted here. */
     SVN_ERR_ASSERT(status != svn_wc__db_status_obstructed
                    && status != svn_wc__db_status_obstructed_add
-                   && status != svn_wc__db_status_obstructed_delete
-                   && status != svn_wc__db_status_base_deleted);
+                   && status != svn_wc__db_status_obstructed_delete);
+#endif
 
   if (sha1_checksum)
     SVN_ERR(svn_wc__db_pristine_read(contents, db, local_abspath,
@@ -638,8 +639,11 @@ svn_wc__internal_ensure_adm(svn_wc__db_t
    * arbitrary revision and the URL may differ if the add is
    * being driven from a merge which will have a different URL. */
   if (status != svn_wc__db_status_deleted
+      && status != svn_wc__db_status_not_present
+#ifndef SVN_WC__SINGLE_DB
       && status != svn_wc__db_status_obstructed_delete
-      && status != svn_wc__db_status_not_present)
+#endif
+      )
     {
       /* ### Should we match copyfrom_revision? */
       if (db_revision != revision)

Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Mon Sep  6 13:47:23 2010
@@ -151,7 +151,10 @@ process_committed_leaf(svn_wc__db_t *db,
   SVN_ERR(svn_wc__write_check(db, adm_abspath, scratch_pool));
 
   if (status == svn_wc__db_status_deleted
-      || status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+      || status == svn_wc__db_status_obstructed_delete
+#endif
+      )
     {
       return svn_error_return(svn_wc__wq_add_deletion_postcommit(
                                 db, local_abspath, new_revnum, no_unlock,
@@ -309,7 +312,10 @@ svn_wc__process_committed_internal(svn_w
                  of running the log for the replaced directory that was
                  created at the start of this function). */
               if (status == svn_wc__db_status_deleted
-                  || status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+                  || status == svn_wc__db_status_obstructed_delete
+#endif
+                  )
                 {
                   svn_boolean_t replaced;
 
@@ -963,7 +969,9 @@ svn_wc_add4(svn_wc_context_t *wc_ctx,
             node_exists = FALSE;
             break;
           case svn_wc__db_status_deleted:
+#ifndef SVN_WC__SINGLE_DB
           case svn_wc__db_status_obstructed_delete:
+#endif
             /* A working copy root should never have a WORKING_NODE */
             SVN_ERR_ASSERT(!is_wc_root);
             node_exists = FALSE;
@@ -1020,8 +1028,11 @@ svn_wc_add4(svn_wc_context_t *wc_ctx,
         || parent_status == svn_wc__db_status_not_present
         || parent_status == svn_wc__db_status_excluded
         || parent_status == svn_wc__db_status_absent
+#ifndef SVN_WC__SINGLE_DB
         || parent_status == svn_wc__db_status_obstructed
-        || parent_status == svn_wc__db_status_obstructed_add)
+        || parent_status == svn_wc__db_status_obstructed_add
+#endif
+        )
       {
         return
           svn_error_createf(SVN_ERR_ENTRY_NOT_FOUND, err,
@@ -1031,7 +1042,10 @@ svn_wc_add4(svn_wc_context_t *wc_ctx,
                                                    scratch_pool));
       }
     else if (parent_status == svn_wc__db_status_deleted
-             || parent_status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+             || parent_status == svn_wc__db_status_obstructed_delete
+#endif
+             )
       {
         return
           svn_error_createf(SVN_ERR_WC_SCHEDULE_CONFLICT, NULL,

Modified: subversion/trunk/subversion/libsvn_wc/copy.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/copy.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/copy.c (original)
+++ subversion/trunk/subversion/libsvn_wc/copy.c Mon Sep  6 13:47:23 2010
@@ -642,7 +642,9 @@ svn_wc_copy3(svn_wc_context_t *wc_ctx,
                      svn_dirent_local_style(dst_abspath, scratch_pool));
 
           case svn_wc__db_status_deleted:
+#ifndef SVN_WC__SINGLE_DB
           case svn_wc__db_status_obstructed_delete:
+#endif
           case svn_wc__db_status_not_present:
             break; /* OK to add */
 

Modified: subversion/trunk/subversion/libsvn_wc/crop.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/crop.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/crop.c (original)
+++ subversion/trunk/subversion/libsvn_wc/crop.c Mon Sep  6 13:47:23 2010
@@ -251,7 +251,9 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
         SVN_ERR_MALFUNCTION();
 
       case svn_wc__db_status_added:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_add:
+#endif
         /* Would have to check parents if we want to allow this */
         return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
                                  _("Cannot exclude '%s': it is to be added "
@@ -259,7 +261,9 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
                                  svn_dirent_local_style(local_abspath,
                                                         scratch_pool));
       case svn_wc__db_status_deleted:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_delete:
+#endif
         /* Would have to check parents if we want to allow this */
         return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
                                  _("Cannot exclude '%s': it is to be deleted "
@@ -269,7 +273,9 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
 
       case svn_wc__db_status_normal:
       case svn_wc__db_status_incomplete:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed:
+#endif
       default:
         break; /* Ok to exclude */
     }
@@ -357,16 +363,22 @@ svn_wc_crop_tree2(svn_wc_context_t *wc_c
                                svn_dirent_local_style(local_abspath,
                                                       scratch_pool));
 
-    if (status == svn_wc__db_status_deleted ||
-        status == svn_wc__db_status_obstructed_delete)
+    if (status == svn_wc__db_status_deleted
+#ifndef SVN_WC__SINGLE_DB
+        || status == svn_wc__db_status_obstructed_delete
+#endif
+        )
       return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
                                _("Cannot crop '%s': it is going to be removed "
                                  "from repository. Try commit instead"),
                                svn_dirent_local_style(local_abspath,
                                                       scratch_pool));
 
-    if (status == svn_wc__db_status_added ||
-        status == svn_wc__db_status_obstructed_add)
+    if (status == svn_wc__db_status_added
+#ifndef SVN_WC__SINGLE_DB
+        || status == svn_wc__db_status_obstructed_add
+#endif
+        )
       return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
                                _("Cannot crop '%s': it is to be added "
                                  "to the repository. Try commit instead"),

Modified: subversion/trunk/subversion/libsvn_wc/diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff.c Mon Sep  6 13:47:23 2010
@@ -591,8 +591,7 @@ file_diff(struct dir_baton *db,
                                      NULL, NULL, NULL, NULL, NULL, NULL,
                                      eb->db, local_abspath, pool, pool));
 
-  replaced = ((status == svn_wc__db_status_added
-               || status == svn_wc__db_status_obstructed_add)
+  replaced = ((status == svn_wc__db_status_added)
               && have_base
               && base_status != svn_wc__db_status_not_present);
 

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Mon Sep  6 13:47:23 2010
@@ -272,7 +272,10 @@ get_base_info_for_deleted(svn_wc_entry_t
                                    db, parent_abspath,
                                    scratch_pool, scratch_pool));
       if (parent_status == svn_wc__db_status_added
-          || parent_status == svn_wc__db_status_obstructed_add)
+#ifndef SVN_WC__SINGLE_DB
+          || parent_status == svn_wc__db_status_obstructed_add
+#endif
+          )
         SVN_ERR(svn_wc__db_scan_addition(NULL, NULL,
                                          &parent_repos_relpath,
                                          &entry->repos,
@@ -405,7 +408,10 @@ get_base_info_for_deleted(svn_wc_entry_t
                                        db, parent_abspath,
                                        scratch_pool, scratch_pool));
           if (parent_status == svn_wc__db_status_added
-              || parent_status == svn_wc__db_status_obstructed_add)
+#ifndef SVN_WC__SINGLE_DB
+              || parent_status == svn_wc__db_status_obstructed_add
+#endif
+              )
             SVN_ERR(svn_wc__db_scan_addition(&parent_status,
                                              NULL,
                                              NULL, NULL, NULL,
@@ -649,7 +655,10 @@ read_one_entry(const svn_wc_entry_t **ne
         }
     }
   else if (status == svn_wc__db_status_deleted
-           || status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+           || status == svn_wc__db_status_obstructed_delete
+#endif
+           )
     {
 #ifdef SVN_WC__SINGLE_DB
       svn_node_kind_t path_kind;
@@ -690,7 +699,10 @@ read_one_entry(const svn_wc_entry_t **ne
 #endif
     }
   else if (status == svn_wc__db_status_added
-           || status == svn_wc__db_status_obstructed_add)
+#ifndef SVN_WC__SINGLE_DB
+           || status == svn_wc__db_status_obstructed_add
+#endif
+           )
     {
       svn_wc__db_status_t work_status;
       const char *op_root_abspath;
@@ -772,6 +784,7 @@ read_one_entry(const svn_wc_entry_t **ne
                   && !SVN_IS_VALID_REVNUM(entry->cmt_rev))
                 entry->revision = 0;
 
+#ifndef SVN_WC__SINGLE_DB
               if (status == svn_wc__db_status_obstructed_add)
                 entry->revision = SVN_INVALID_REVNUM;
 
@@ -781,6 +794,7 @@ read_one_entry(const svn_wc_entry_t **ne
                   && status == svn_wc__db_status_obstructed_add)
                 entry->schedule = svn_wc_schedule_normal;
               else
+#endif
                 entry->schedule = svn_wc_schedule_add;
             }
         }
@@ -789,6 +803,7 @@ read_one_entry(const svn_wc_entry_t **ne
          then we cannot begin a scan for data. The original node may
          have important data. Set up stuff to kill that idea off,
          and finish up this entry.  */
+#ifndef SVN_WC__SINGLE_DB
       if (status == svn_wc__db_status_obstructed_add)
         {
           entry->cmt_rev = SVN_INVALID_REVNUM;
@@ -796,6 +811,7 @@ read_one_entry(const svn_wc_entry_t **ne
           scanned_original_relpath = NULL;
         }
       else
+#endif
         {
           SVN_ERR(svn_wc__db_scan_addition(&work_status,
                                            &op_root_abspath,
@@ -993,12 +1009,14 @@ read_one_entry(const svn_wc_entry_t **ne
       entry->schedule = svn_wc_schedule_normal;
       entry->deleted = TRUE;
     }
+#ifndef SVN_WC__SINGLE_DB
   else if (status == svn_wc__db_status_obstructed)
     {
       /* ### set some values that should (hopefully) let this directory
          ### be usable.  */
       entry->revision = SVN_INVALID_REVNUM;
     }
+#endif
   else if (status == svn_wc__db_status_absent)
     {
       entry->absent = TRUE;
@@ -1049,6 +1067,14 @@ read_one_entry(const svn_wc_entry_t **ne
 
      ### the last three should probably have an "implied" REPOS_RELPATH
   */
+#ifdef SVN_WC__SINGLE_DB
+  SVN_ERR_ASSERT(repos_relpath != NULL
+                 || entry->schedule == svn_wc_schedule_delete
+                 || status == svn_wc__db_status_not_present
+                 || status == svn_wc__db_status_absent
+                 || status == svn_wc__db_status_excluded
+                 );
+#else
   SVN_ERR_ASSERT(repos_relpath != NULL
                  || entry->schedule == svn_wc_schedule_delete
                  || status == svn_wc__db_status_obstructed
@@ -1058,6 +1084,7 @@ read_one_entry(const svn_wc_entry_t **ne
                  || status == svn_wc__db_status_absent
                  || status == svn_wc__db_status_excluded
                  );
+#endif
   if (repos_relpath)
     entry->url = svn_path_url_add_component2(entry->repos,
                                              repos_relpath,

Modified: subversion/trunk/subversion/libsvn_wc/lock.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/lock.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/lock.c (original)
+++ subversion/trunk/subversion/libsvn_wc/lock.c Mon Sep  6 13:47:23 2010
@@ -663,16 +663,23 @@ adm_available(svn_boolean_t *available,
                                db, local_abspath, scratch_pool, scratch_pool));
 
   if (obstructed)
+#ifndef SVN_WC__SINGLE_DB
     *obstructed = (status == svn_wc__db_status_obstructed ||
                    status == svn_wc__db_status_obstructed_add ||
                    status == svn_wc__db_status_obstructed_delete);
+#else
+    *obstructed = FALSE;
+#endif
 
-  *available = !(status == svn_wc__db_status_obstructed ||
-                 status == svn_wc__db_status_obstructed_add ||
-                 status == svn_wc__db_status_obstructed_delete ||
-                 status == svn_wc__db_status_absent ||
-                 status == svn_wc__db_status_excluded ||
-                 status == svn_wc__db_status_not_present);
+  *available = !(status == svn_wc__db_status_absent
+                 || status == svn_wc__db_status_excluded
+                 || status == svn_wc__db_status_not_present
+#ifndef SVN_WC__SINGLE_DB
+                 || status == svn_wc__db_status_obstructed
+                 || status == svn_wc__db_status_obstructed_add
+                 || status == svn_wc__db_status_obstructed_delete
+#endif
+                 );
 
   return SVN_NO_ERROR;
 }

Modified: subversion/trunk/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/node.c (original)
+++ subversion/trunk/subversion/libsvn_wc/node.c Mon Sep  6 13:47:23 2010
@@ -136,7 +136,10 @@ svn_wc__node_get_repos_info(const char *
 
   if (scan_added
       && (status == svn_wc__db_status_added
-          || status == svn_wc__db_status_obstructed_add))
+#ifndef SVN_WC__SINGLE_DB
+          || status == svn_wc__db_status_obstructed_add
+#endif
+          ))
     {
       /* We have an addition. scan_addition() will find the intended
          repository location by scanning up the tree.  */
@@ -153,12 +156,15 @@ svn_wc__node_get_repos_info(const char *
   if (((repos_root_url != NULL && *repos_root_url == NULL)
        || (repos_uuid != NULL && *repos_uuid == NULL))
       && (status == svn_wc__db_status_normal
-          || status == svn_wc__db_status_obstructed
           || status == svn_wc__db_status_absent
           || status == svn_wc__db_status_excluded
           || status == svn_wc__db_status_not_present
           || (scan_deleted && (status == svn_wc__db_status_deleted))
-          || (scan_deleted && (status == svn_wc__db_status_obstructed_delete))))
+#ifndef SVN_WC__SINGLE_DB
+          || status == svn_wc__db_status_obstructed
+          || (scan_deleted && (status == svn_wc__db_status_obstructed_delete))
+#endif
+          ))
     {
       SVN_ERR(svn_wc__db_scan_base_repos(NULL, repos_root_url, repos_uuid,
                                          wc_ctx->db, local_abspath,
@@ -365,7 +371,10 @@ svn_wc__internal_node_get_url(const char
                || status == svn_wc__db_status_not_present
                || (!have_base
                    && (status == svn_wc__db_status_deleted
-                       || status == svn_wc__db_status_obstructed_delete)))
+#ifndef SVN_WC__SINGLE_DB
+                       || status == svn_wc__db_status_obstructed_delete
+#endif
+                       )))
         {
           const char *parent_abspath;
 
@@ -446,7 +455,10 @@ svn_wc__node_get_repos_relpath(const cha
       else if (status == svn_wc__db_status_excluded
                || (!have_base
                    && (status == svn_wc__db_status_deleted
-                       || status == svn_wc__db_status_obstructed_delete)))
+#ifndef SVN_WC__SINGLE_DB
+                       || status == svn_wc__db_status_obstructed_delete
+#endif
+                       )))
         {
           const char *parent_abspath, *name, *parent_relpath;
 
@@ -567,7 +579,10 @@ svn_wc__internal_get_copyfrom_info(const
         }
     }
   else if ((status == svn_wc__db_status_added
-            || status == svn_wc__db_status_obstructed_add)
+#ifndef SVN_WC__SINGLE_DB
+            || status == svn_wc__db_status_obstructed_add
+#endif
+            )
            && (copyfrom_rev || copyfrom_url || copyfrom_root_url
                || copyfrom_repos_relpath))
     {
@@ -813,8 +828,11 @@ svn_wc__node_is_status_deleted(svn_boole
                                wc_ctx->db, local_abspath,
                                scratch_pool, scratch_pool));
 
-  *is_deleted = (status == svn_wc__db_status_deleted) ||
-                (status == svn_wc__db_status_obstructed_delete);
+  *is_deleted = (status == svn_wc__db_status_deleted)
+#ifndef SVN_WC__SINGLE_DB
+                || (status == svn_wc__db_status_obstructed_delete)
+#endif
+                ;
 
   return SVN_NO_ERROR;
 }
@@ -900,7 +918,10 @@ svn_wc__node_is_added(svn_boolean_t *is_
                                wc_ctx->db, local_abspath,
                                scratch_pool, scratch_pool));
   *is_added = (status == svn_wc__db_status_added
-               || status == svn_wc__db_status_obstructed_add);
+#ifndef SVN_WC__SINGLE_DB
+               || status == svn_wc__db_status_obstructed_add
+#endif
+               );
 
   return SVN_NO_ERROR;
 }
@@ -936,7 +957,10 @@ svn_wc__internal_is_replaced(svn_boolean
                                      scratch_pool, scratch_pool));
 
   *replaced = ((status == svn_wc__db_status_added
-                || status == svn_wc__db_status_obstructed_add)
+#ifndef SVN_WC__SINGLE_DB
+                || status == svn_wc__db_status_obstructed_add
+#endif
+                )
                && have_base
                && base_status != svn_wc__db_status_not_present);
 
@@ -1130,8 +1154,12 @@ svn_wc__node_get_commit_base_rev(svn_rev
                                        wc_ctx->db, parent_abspath,
                                        scratch_pool, scratch_pool));
 
+#ifndef SVN_WC__SINGLE_DB
           SVN_ERR_ASSERT(parent_status == svn_wc__db_status_added
                          || parent_status == svn_wc__db_status_obstructed_add);
+#else
+          SVN_ERR_ASSERT(parent_status == svn_wc__db_status_added);
+#endif
 
           SVN_ERR(svn_wc__db_scan_addition(NULL, NULL, NULL, NULL, NULL, NULL,
                                            NULL, NULL,
@@ -1280,11 +1308,15 @@ svn_wc__internal_node_get_schedule(svn_w
 
       case svn_wc__db_status_normal:
       case svn_wc__db_status_incomplete:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed:
+#endif
         break;
 
       case svn_wc__db_status_deleted:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_delete:
+#endif
         {
           const char *work_del_abspath;
 
@@ -1313,7 +1345,9 @@ svn_wc__internal_node_get_schedule(svn_w
           break;
         }
       case svn_wc__db_status_added:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_add:
+#endif
         {
           const char *op_root_abspath;
           const char *parent_abspath;

Modified: subversion/trunk/subversion/libsvn_wc/props.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/props.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/props.c (original)
+++ subversion/trunk/subversion/libsvn_wc/props.c Mon Sep  6 13:47:23 2010
@@ -1758,6 +1758,7 @@ svn_wc__get_pristine_props(apr_hash_t **
       return SVN_NO_ERROR;
     }
 
+#ifndef SVN_WC__SINGLE_DB
   /* The node is obstructed:
 
      - subdir is missing, obstructed by a file, or missing admin area
@@ -1777,6 +1778,7 @@ svn_wc__get_pristine_props(apr_hash_t **
                                 "properties are not available."),
                              svn_dirent_local_style(local_abspath,
                                                     scratch_pool));
+#endif
 
   /* status: normal, moved_here, copied, deleted  */
 

Modified: subversion/trunk/subversion/libsvn_wc/revision_status.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/revision_status.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/revision_status.c (original)
+++ subversion/trunk/subversion/libsvn_wc/revision_status.c Mon Sep  6 13:47:23 2010
@@ -83,9 +83,12 @@ analyze_status(const char *local_abspath
       return SVN_NO_ERROR;
     }
   else if (status == svn_wc__db_status_added
-           || status == svn_wc__db_status_obstructed_add
            || status == svn_wc__db_status_deleted
-           || status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+           || status == svn_wc__db_status_obstructed_add
+           || status == svn_wc__db_status_obstructed_delete
+#endif
+           )
     {
       wb->result->modified = TRUE; 
     }

Modified: subversion/trunk/subversion/libsvn_wc/status.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/status.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/status.c (original)
+++ subversion/trunk/subversion/libsvn_wc/status.c Mon Sep  6 13:47:23 2010
@@ -2535,12 +2535,15 @@ internal_status(svn_wc_status3_t **statu
                              scratch_pool, scratch_pool);
 
   if ((err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
+      || node_status == svn_wc__db_status_not_present
+      || node_status == svn_wc__db_status_absent
+      || node_status == svn_wc__db_status_excluded
+#ifndef SVN_WC__SINGLE_DB
       || node_status == svn_wc__db_status_obstructed
       || node_status == svn_wc__db_status_obstructed_add
       || node_status == svn_wc__db_status_obstructed_delete
-      || node_status == svn_wc__db_status_not_present
-      || node_status == svn_wc__db_status_absent
-      || node_status == svn_wc__db_status_excluded)
+#endif
+      )
     {
       svn_error_clear(err);
       node_kind = svn_wc__db_kind_unknown;

Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Mon Sep  6 13:47:23 2010
@@ -461,16 +461,22 @@ node_get_relpath_ignore_errors(svn_wc__d
   if (relpath)
     return relpath;
 
-  if (status == svn_wc__db_status_added ||
-      status == svn_wc__db_status_obstructed_add)
+  if (status == svn_wc__db_status_added
+#ifndef SVN_WC__SINGLE_DB
+      || status == svn_wc__db_status_obstructed_add
+#endif
+      )
     {
       svn_error_clear(svn_wc__db_scan_addition(NULL, NULL, &relpath, NULL,
                                                NULL, NULL, NULL, NULL, NULL,
                                                db, local_abspath,
                                                result_pool, scratch_pool));
     }
-  else if (status != svn_wc__db_status_deleted &&
-           status != svn_wc__db_status_obstructed_delete)
+  else if (status != svn_wc__db_status_deleted
+#ifndef SVN_WC__SINGLE_DB
+           && status != svn_wc__db_status_obstructed_delete
+#endif
+           )
     {
       svn_error_clear(svn_wc__db_scan_base_repos(&relpath, NULL, NULL,
                                                  db, local_abspath,
@@ -1578,10 +1584,16 @@ create_tree_conflict(svn_wc_conflict_des
                                        result_pool, scratch_pool));
 
       /* This better really be an added status. */
+#ifndef SVN_WC__SINGLE_DB
       SVN_ERR_ASSERT(added_status == svn_wc__db_status_added
                      || added_status == svn_wc__db_status_obstructed_add
                      || added_status == svn_wc__db_status_copied
                      || added_status == svn_wc__db_status_moved_here);
+#else
+      SVN_ERR_ASSERT(added_status == svn_wc__db_status_added
+                     || added_status == svn_wc__db_status_copied
+                     || added_status == svn_wc__db_status_moved_here);
+#endif
     }
   else if (reason == svn_wc_conflict_reason_unversioned)
     {
@@ -1760,7 +1772,9 @@ check_tree_conflict(svn_wc_conflict_desc
   switch (status)
     {
       case svn_wc__db_status_added:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_add:
+#endif
       case svn_wc__db_status_moved_here:
       case svn_wc__db_status_copied:
         /* Is it a replace? */
@@ -1801,7 +1815,9 @@ check_tree_conflict(svn_wc_conflict_desc
 
 
       case svn_wc__db_status_deleted:
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed_delete:
+#endif
         /* The node is locally deleted. */
         reason = svn_wc_conflict_reason_deleted;
         break;
@@ -1813,10 +1829,12 @@ check_tree_conflict(svn_wc_conflict_desc
          * So the node exists and is essentially 'normal'. We still need to
          * check prop and text mods, and those checks will retrieve the
          * missing information (hopefully). */
+#ifndef SVN_WC__SINGLE_DB
       case svn_wc__db_status_obstructed:
         /* Tree-conflicts during update are only concerned with local
          * modifications. We can safely update BASE, disregarding the
          * obstruction. So let's treat this as normal. */
+#endif
       case svn_wc__db_status_normal:
         if (action == svn_wc_conflict_action_edit)
           /* An edit onto a local edit or onto *no* local changes is no
@@ -1840,7 +1858,9 @@ check_tree_conflict(svn_wc_conflict_desc
                * but the update editor will not visit the subdirectories
                * of a directory that it wants to delete.  Therefore, we
                * need to start a separate crawl here. */
+#ifndef SVN_WC__SINGLE_DB
               if (status != svn_wc__db_status_obstructed)
+#endif
                 SVN_ERR(tree_has_local_mods(&modified, &all_mods_are_deletes,
                                             eb->db, local_abspath,
                                             eb->cancel_func, eb->cancel_baton,
@@ -2543,6 +2563,7 @@ add_directory(const char *path,
            * conflict, so merge it with the incoming add. */
           db->add_existed = TRUE;
 
+#ifndef SVN_WC__SINGLE_DB
           /* Pre-single-db, a dir that was OS-deleted from the working copy
            * along with its .svn folder is seen 'obstructed' in this code
            * path. The particular situation however better matches the word
@@ -2559,6 +2580,7 @@ add_directory(const char *path,
               do_notification(eb, db->local_abspath, svn_node_dir,
                               svn_wc_notify_add, pool);
             }
+#endif
         }
     }
   else if (kind != svn_node_none)

Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=993028&r1=993027&r2=993028&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Mon Sep  6 13:47:23 2010
@@ -733,7 +733,9 @@ remove_base_node(svn_wc__db_t *db,
 
   if (base_status == svn_wc__db_status_normal
       && wrk_status != svn_wc__db_status_added
+#ifndef SVN_WC__SINGLE_DB
       && wrk_status != svn_wc__db_status_obstructed_add
+#endif
       && wrk_status != svn_wc__db_status_excluded)
     {
 #ifndef SVN_WC__SINGLE_DB
@@ -770,7 +772,9 @@ remove_base_node(svn_wc__db_t *db,
       SVN_ERR(svn_wc__db_temp_op_remove_entry(db, local_abspath, scratch_pool));
     }
   else if (wrk_status == svn_wc__db_status_added
+#ifndef SVN_WC__SINGLE_DB
            || wrk_status == svn_wc__db_status_obstructed_add
+#endif
            || (have_work && wrk_status == svn_wc__db_status_excluded))
     /* ### deletes of working additions should fall in this case, but
        ### we can't express these without the 4th tree */
@@ -1293,7 +1297,10 @@ log_do_committed(svn_wc__db_t *db,
 
           /* Committing a deletion should remove the local nodes.  */
           if (child_status == svn_wc__db_status_deleted
-              || child_status == svn_wc__db_status_obstructed_delete)
+#ifndef SVN_WC__SINGLE_DB
+              || child_status == svn_wc__db_status_obstructed_delete
+#endif
+              )
             {
               SVN_ERR(svn_wc__internal_remove_from_revision_control(
                         db, child_abspath,