Author: rhuijben
Date: Tue May  3 16:11:02 2011
New Revision: 1099108

URL: http://svn.apache.org/viewvc?rev=1099108&view=rev
Log:
* subversion/libsvn_wc/entries.c
  (read_one_entry): Remove multi-db check for constructing new directory
    databases during checkout where the not present BASE node wasn't copied
    into the subdirectory.

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

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1099108&r1=1099107&r2=1099108&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Tue May  3 16:11:02 2011
@@ -478,58 +478,22 @@ read_one_entry(const svn_wc_entry_t **ne
   if (status == svn_wc__db_status_normal
       || status == svn_wc__db_status_incomplete)
     {
-      svn_boolean_t have_row = FALSE;
+      /* Plain old BASE node.  */
+      entry->schedule = svn_wc_schedule_normal;
 
-      /* Ugh. During a checkout, it is possible that we are constructing
-         a subdirectory "over" a not-present directory. The read_info()
-         will return information out of the wc.db in the subdir. We
-         need to detect this situation and create a DELETED entry
-         instead.
-
-         ### Does this still happen?  The regression tests passed when
-             the NODES query was erroneously accessing BASE_NODE. */
-      if (kind == svn_wc__db_kind_dir)
+      /* Grab inherited repository information, if necessary. */
+      if (repos_relpath == NULL)
         {
-          svn_sqlite__db_t *sdb;
-          svn_sqlite__stmt_t *stmt;
-
-          SVN_ERR(svn_wc__db_temp_borrow_sdb(
-                    &sdb, db, dir_abspath,
-                    scratch_pool));
-
-          SVN_ERR(svn_sqlite__get_statement(&stmt, sdb,
-                                            STMT_SELECT_NOT_PRESENT));
-          SVN_ERR(svn_sqlite__bindf(stmt, "is", wc_id, entry->name));
-          SVN_ERR(svn_sqlite__step(&have_row, stmt));
-          SVN_ERR(svn_sqlite__reset(stmt));
-        }
-
-      if (have_row)
-        {
-          /* Just like a normal "not-present" node: schedule=normal
-             and DELETED.  */
-          entry->schedule = svn_wc_schedule_normal;
-          entry->deleted = TRUE;
+          SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath,
+                                             &entry->repos,
+                                             &entry->uuid,
+                                             db,
+                                             entry_abspath,
+                                             result_pool,
+                                             scratch_pool));
         }
-      else
-        {
-          /* Plain old BASE node.  */
-          entry->schedule = svn_wc_schedule_normal;
 
-          /* Grab inherited repository information, if necessary. */
-          if (repos_relpath == NULL)
-            {
-              SVN_ERR(svn_wc__db_scan_base_repos(&repos_relpath,
-                                                 &entry->repos,
-                                                 &entry->uuid,
-                                                 db,
-                                                 entry_abspath,
-                                                 result_pool,
-                                                 scratch_pool));
-            }
-
-          entry->incomplete = (status == svn_wc__db_status_incomplete);
-        }
+      entry->incomplete = (status == svn_wc__db_status_incomplete);
     }
   else if (status == svn_wc__db_status_deleted)
     {


Reply via email to