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 2011/04/17 16:20:04 UTC

svn commit: r1094146 - in /subversion/trunk/subversion: libsvn_wc/ tests/libsvn_wc/

Author: rhuijben
Date: Sun Apr 17 14:20:03 2011
New Revision: 1094146

URL: http://svn.apache.org/viewvc?rev=1094146&view=rev
Log:
Following up on r1094135, apply a similar change to svn_wc__db_base_get_info()
and its callers.

This patch adds the following arguments:
 had_props         Does this node have pristine properties in BASE
 needs_full_update Does this node need 'incomplete' handling in editor v1.
                   (currently equivalent to status ==
                    svn_wc__db_status_incomplete)

It also updates the last_mod_time and translated_size properties like how
they are now placed in _read_info().

* subversion/libsvn_wc/adm_crawler.c
  (find_base_rev,
   svn_wc_crawl_revisions5): Update callers.

* subversion/libsvn_wc/adm_ops.c
  (svn_wc__internal_remove_from_revision_control) Update caller.

* subversion/libsvn_wc/ambient_depth_filter_editor.c
  (ambient_read_info): Update callers.
* subversion/libsvn_wc/crop.c
  (svn_wc_exclude): Update callers.

* subversion/libsvn_wc/diff.c
  (get_nearest_pristine_text_as_file,
   file_diff): Update callers.

* subversion/libsvn_wc/entries.c
  (get_base_info_for_deleted,
   read_one_entry): Update callers.

* subversion/libsvn_wc/node.c
  (svn_wc__node_get_base_rev,
   svn_wc__node_get_working_rev_info,
   svn_wc__node_get_lock_info,
   svn_wc__node_get_origin,
   svn_wc__node_get_commit_status): Update callers.

* subversion/libsvn_wc/translate.c
  (svn_wc__maybe_set_read_only): Update callers.

* subversion/libsvn_wc/update_editor.c
  (complete_directory,
   open_root,
   create_tree_conflict,
   check_tree_conflict,
   open_directory,
   close_directory,
   open_file): Update callers.

* subversion/libsvn_wc/wc_db.c
  (base_get_info): Update arguments list and retrieval.
  (svn_wc__db_base_get_info): Update argument list and pass new arguments.

  (get_info_for_copy,
   bump_node_revision,
   bump_revisions_post_commit,
   end_directory_update): Update callers.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_base_get_info): Update argument list and documentation.

* subversion/libsvn_wc/workqueue.c
  (remove_base_node,
   run_base_remove,
   run_deletion_postcommit): Update callers.

* subversion/tests/libsvn_wc/db-test.c
  (test_getting_info,
   validate_node): Update callers.

Modified:
    subversion/trunk/subversion/libsvn_wc/adm_crawler.c
    subversion/trunk/subversion/libsvn_wc/adm_ops.c
    subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.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/node.c
    subversion/trunk/subversion/libsvn_wc/translate.c
    subversion/trunk/subversion/libsvn_wc/update_editor.c
    subversion/trunk/subversion/libsvn_wc/wc_db.c
    subversion/trunk/subversion/libsvn_wc/wc_db.h
    subversion/trunk/subversion/libsvn_wc/workqueue.c
    subversion/trunk/subversion/tests/libsvn_wc/db-test.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=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Sun Apr 17 14:20:03 2011
@@ -680,7 +680,7 @@ find_base_rev(svn_revnum_t *base_rev,
     return svn_error_return(
         svn_wc__db_base_get_info(NULL, NULL, base_rev, NULL, NULL, NULL, NULL,
                                  NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                 NULL, NULL,
+                                 NULL, NULL, NULL, NULL,
                                  db, local_abspath, pool, pool));
 
   if (status == svn_wc__db_status_added)
@@ -753,9 +753,9 @@ svn_wc_crawl_revisions5(svn_wc_context_t
      compared to. */
   err = svn_wc__db_base_get_info(&status, &target_kind, &target_rev,
                                  &repos_relpath, &repos_root_url,
-                                 NULL, NULL, NULL, NULL, NULL,
-                                 &target_depth, NULL, NULL, NULL,
-                                 &target_lock, NULL,
+                                 NULL, NULL, NULL, NULL, &target_depth,
+                                 NULL, NULL, &target_lock, NULL,
+                                 NULL, NULL, NULL, NULL,
                                  db, local_abspath, scratch_pool,
                                  scratch_pool);
 
@@ -925,7 +925,7 @@ svn_wc_crawl_revisions5(svn_wc_context_t
       err = svn_wc__db_base_get_info(&parent_status, NULL, NULL,
                                      &parent_repos_relpath, NULL, NULL, NULL,
                                      NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL,
                                      db, parent_abspath,
                                      scratch_pool, scratch_pool);
 

Modified: subversion/trunk/subversion/libsvn_wc/adm_ops.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/adm_ops.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_ops.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_ops.c Sun Apr 17 14:20:03 2011
@@ -1822,8 +1822,8 @@ svn_wc__internal_remove_from_revision_co
       /* Find the checksum(s) of the node's one or two pristine texts.  Note
          that read_info() may give us the one from BASE_NODE again. */
       err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL, NULL, NULL,
-                                     &base_sha1_checksum,
+                                     NULL, NULL, NULL, NULL, 
+                                     &base_sha1_checksum, NULL, NULL, NULL,
                                      NULL, NULL, NULL, NULL,
                                      db, local_abspath,
                                      scratch_pool, scratch_pool);

Modified: subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/ambient_depth_filter_editor.c Sun Apr 17 14:20:03 2011
@@ -141,8 +141,8 @@ ambient_read_info(svn_boolean_t *hidden,
 
   if (read_base)
     err = svn_wc__db_base_get_info(status, kind, NULL, NULL, NULL, NULL,
-                                   NULL, NULL, NULL, NULL, depth, NULL, NULL,
-                                   NULL, NULL, NULL,
+                                   NULL, NULL, NULL, depth, NULL, NULL,
+                                   NULL, NULL, NULL, NULL, NULL, NULL,
                                    db, local_abspath,
                                    scratch_pool, scratch_pool);
   else

Modified: subversion/trunk/subversion/libsvn_wc/crop.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/crop.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/crop.c (original)
+++ subversion/trunk/subversion/libsvn_wc/crop.c Sun Apr 17 14:20:03 2011
@@ -277,7 +277,7 @@ svn_wc_exclude(svn_wc_context_t *wc_ctx,
     SVN_ERR(svn_wc__db_base_get_info(NULL, &kind, &revision, &repos_relpath,
                                      &repos_root, &repos_uuid, NULL, NULL,
                                      NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL,
+                                     NULL, NULL, NULL, NULL,
                                      wc_ctx->db, local_abspath,
                                      scratch_pool, scratch_pool));
 

Modified: subversion/trunk/subversion/libsvn_wc/diff.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/diff.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/diff.c (original)
+++ subversion/trunk/subversion/libsvn_wc/diff.c Sun Apr 17 14:20:03 2011
@@ -166,8 +166,8 @@ get_nearest_pristine_text_as_file(const 
       svn_error_t *err;
 
       err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL, NULL, NULL, &checksum,
-                                     NULL, NULL, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, &checksum,
+                                     NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                      db, local_abspath,
                                      scratch_pool, scratch_pool);
       if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
@@ -591,6 +591,7 @@ file_diff(struct dir_baton *db,
     SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &revert_base_revnum,
                                      NULL, NULL, NULL, NULL, NULL, NULL,
                                      NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                                     NULL, NULL,
                                      eb->db, local_abspath, pool, pool));
 
   replaced = ((status == svn_wc__db_status_added)

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Sun Apr 17 14:20:03 2011
@@ -221,10 +221,12 @@ get_base_info_for_deleted(svn_wc_entry_t
                                  &entry->cmt_rev,
                                  &entry->cmt_date,
                                  &entry->cmt_author,
-                                 &entry->text_time,
                                  &entry->depth,
                                  checksum,
+                                 NULL,
+                                 NULL /* lock */,
                                  &entry->working_size,
+                                 &entry->text_time,
                                  NULL,
                                  NULL,
                                  NULL,
@@ -584,7 +586,7 @@ read_one_entry(const svn_wc_entry_t **ne
                                            NULL, NULL, NULL,
                                            NULL, NULL, NULL,
                                            NULL, NULL, NULL,
-                                           &update_root,
+                                           NULL, &update_root, NULL,
                                            db, entry_abspath,
                                            scratch_pool,
                                            scratch_pool));

Modified: subversion/trunk/subversion/libsvn_wc/node.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/node.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/node.c (original)
+++ subversion/trunk/subversion/libsvn_wc/node.c Sun Apr 17 14:20:03 2011
@@ -897,11 +897,9 @@ svn_wc__node_get_base_rev(svn_revnum_t *
   svn_boolean_t have_base;
   svn_error_t *err;
 
-  err = svn_wc__db_base_get_info(NULL, NULL, base_revision,
-                                 NULL, NULL, NULL,
-                                 NULL, NULL, NULL,
-                                 NULL, NULL, NULL,
-                                 NULL, NULL, NULL, NULL,
+  err = svn_wc__db_base_get_info(NULL, NULL, base_revision, NULL,
+                                 NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+                                 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                  wc_ctx->db, local_abspath,
                                  scratch_pool, scratch_pool);
 
@@ -973,9 +971,9 @@ svn_wc__node_get_working_rev_info(svn_re
                                            NULL, NULL, changed_rev,
                                            changed_date, changed_author,
                                            NULL, NULL, NULL, NULL, NULL,
-                                           NULL, NULL, wc_ctx->db,
-                                           base_del_abspath, result_pool,
-                                           scratch_pool));
+                                           NULL, NULL, NULL, NULL,
+                                           wc_ctx->db, base_del_abspath,
+                                           result_pool, scratch_pool));
         }
     }
   else if (have_base)
@@ -985,7 +983,8 @@ svn_wc__node_get_working_rev_info(svn_re
       SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &base_rev, NULL, NULL,
                                        NULL, changed_rev, changed_date,
                                        changed_author, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, wc_ctx->db, local_abspath,
+                                       NULL, NULL, NULL, NULL, NULL,
+                                       wc_ctx->db, local_abspath,
                                        result_pool, scratch_pool));
 
       if (revision && !SVN_IS_VALID_REVNUM(*revision)
@@ -1097,8 +1096,8 @@ svn_wc__node_get_lock_info(const char **
   svn_error_t *err;
 
   err = svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                 &lock, NULL,
+                                 NULL, NULL, NULL, NULL, NULL, &lock, NULL,
+                                 NULL, NULL, NULL, NULL,
                                  wc_ctx->db, local_abspath,
                                  result_pool, scratch_pool);
 
@@ -1599,7 +1598,7 @@ svn_wc__node_get_origin(svn_boolean_t *i
         SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, repos_relpath,
                                          repos_root_url, repos_uuid, NULL,
                                          NULL, NULL, NULL, NULL, NULL, NULL,
-                                         NULL, NULL, NULL,
+                                         NULL, NULL, NULL, NULL, NULL,
                                          wc_ctx->db, local_abspath,
                                          result_pool, scratch_pool));
       }
@@ -1734,7 +1733,8 @@ svn_wc__node_get_commit_status(svn_node_
     {
       SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, revision, NULL, NULL, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, update_root,
+                                       NULL, NULL, NULL, NULL, update_root,
+                                       NULL,
                                        wc_ctx->db, local_abspath,
                                        scratch_pool, scratch_pool));
     }

Modified: subversion/trunk/subversion/libsvn_wc/translate.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/translate.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/translate.c (original)
+++ subversion/trunk/subversion/libsvn_wc/translate.c Sun Apr 17 14:20:03 2011
@@ -411,8 +411,8 @@ svn_wc__maybe_set_read_only(svn_boolean_
     return SVN_NO_ERROR; /* Doesn't need lock handling */
 
   SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                   NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                   &lock, NULL,
+                                   NULL, NULL, NULL, NULL, NULL, &lock,
+                                   NULL, NULL, NULL, NULL, NULL,
                                    db, local_abspath,
                                    scratch_pool, scratch_pool));
 

Modified: subversion/trunk/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/update_editor.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/trunk/subversion/libsvn_wc/update_editor.c Sun Apr 17 14:20:03 2011
@@ -669,7 +669,7 @@ complete_directory(struct edit_baton *eb
          have to worry about removing it.  */
       err = svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL, NULL,
                                      NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL,
                                      eb->db, eb->target_abspath,
                                      scratch_pool, scratch_pool);
       if (err)
@@ -721,8 +721,8 @@ complete_directory(struct edit_baton *eb
       SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL,
                                        NULL, NULL, NULL,
                                        NULL, NULL, NULL,
-                                       NULL, &depth, NULL, NULL, NULL, NULL,
-                                       NULL,
+                                       &depth, NULL, NULL, NULL, NULL,
+                                       NULL, NULL, NULL, NULL,
                                        eb->db, local_abspath,
                                        scratch_pool, scratch_pool));
 
@@ -1146,8 +1146,8 @@ open_root(void *edit_baton,
 
       /* Read the depth from the entry. */
       SVN_ERR(svn_wc__db_base_get_info(&status, NULL, NULL, NULL, NULL, NULL,
-                                   NULL, NULL, NULL, NULL, &depth, NULL, NULL,
-                                   NULL, NULL, NULL,
+                                   NULL, NULL, NULL, &depth, NULL, NULL, NULL,
+                                   NULL, NULL, NULL, NULL, NULL,
                                    eb->db, db->local_abspath, pool, pool));
       db->ambient_depth = depth;
       db->was_incomplete = (status == svn_wc__db_status_incomplete);
@@ -1362,7 +1362,8 @@ create_tree_conflict(svn_wc_conflict_des
                                        &left_repos_relpath,
                                        &repos_root_url,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, NULL, NULL,
+                                       NULL, NULL, NULL, NULL, NULL, NULL,
+                                       NULL,
                                        eb->db,
                                        local_abspath,
                                        result_pool,
@@ -1515,7 +1516,7 @@ check_tree_conflict(svn_wc_conflict_desc
             SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, NULL,
                                              NULL, NULL, NULL, NULL, NULL,
                                              NULL, NULL, NULL, NULL, NULL,
-                                             NULL, NULL, NULL,
+                                             NULL, NULL, NULL, NULL, NULL,
                                              eb->db, local_abspath,
                                              pool,
                                              pool));
@@ -2294,9 +2295,9 @@ open_directory(const char *path,
     base_status = status;
   else
     SVN_ERR(svn_wc__db_base_get_info(&base_status, NULL, &db->old_revision,
-                                     NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL, NULL,
                                      &db->ambient_depth, NULL, NULL, NULL,
-                                     NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL,
                                      eb->db, db->local_abspath, pool, pool));
 
   db->was_incomplete = (base_status == svn_wc__db_status_incomplete);
@@ -2617,8 +2618,8 @@ close_directory(void *dir_baton,
                                        &changed_rev,
                                        &changed_date,
                                        &changed_author,
-                                       NULL, &depth, NULL, NULL, NULL, NULL,
-                                       NULL,
+                                       &depth, NULL, NULL, NULL, NULL,
+                                       NULL, NULL, NULL, NULL,
                                        eb->db, db->local_abspath,
                                        pool, pool));
 
@@ -3112,8 +3113,8 @@ open_file(const char *path,
   if (have_work)
     SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, &fb->old_revision,
                                      NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, &fb->original_checksum, NULL, NULL,
-                                     NULL, NULL,
+                                     &fb->original_checksum, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL,
                                      eb->db, fb->local_abspath,
                                      fb->pool, scratch_pool));
 

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.c Sun Apr 17 14:20:03 2011
@@ -1837,13 +1837,15 @@ base_get_info(svn_wc__db_status_t *statu
               svn_revnum_t *changed_rev,
               apr_time_t *changed_date,
               const char **changed_author,
-              apr_time_t *last_mod_time,
               svn_depth_t *depth,
               const svn_checksum_t **checksum,
-              svn_filesize_t *translated_size,
               const char **target,
               svn_wc__db_lock_t **lock,
+              svn_filesize_t *recorded_size,
+              apr_time_t *recorded_mod_time,
+              svn_boolean_t *had_props,
               svn_boolean_t *update_root,
+              svn_boolean_t *needs_full_update,
               svn_wc__db_wcroot_t *wcroot,
               const char *local_relpath,
               apr_pool_t *result_pool,
@@ -1893,9 +1895,9 @@ base_get_info(svn_wc__db_status_t *statu
           /* Result may be NULL. */
           *changed_author = svn_sqlite__column_text(stmt, 9, result_pool);
         }
-      if (last_mod_time)
+      if (recorded_mod_time)
         {
-          *last_mod_time = svn_sqlite__column_int64(stmt, 12);
+          *recorded_mod_time = svn_sqlite__column_int64(stmt, 12);
         }
       if (depth)
         {
@@ -1931,9 +1933,9 @@ base_get_info(svn_wc__db_status_t *statu
                                                scratch_pool));
             }
         }
-      if (translated_size)
+      if (recorded_size)
         {
-          *translated_size = get_translated_size(stmt, 6);
+          *recorded_size = get_translated_size(stmt, 6);
         }
       if (target)
         {
@@ -1942,10 +1944,21 @@ base_get_info(svn_wc__db_status_t *statu
           else
             *target = svn_sqlite__column_text(stmt, 11, result_pool);
         }
+      if (had_props)
+        {
+          *had_props = !svn_sqlite__column_is_null(stmt, 13);
+        }
       if (update_root)
         {
           *update_root = svn_sqlite__column_boolean(stmt, 14);
         }
+      if (needs_full_update)
+        {
+          /* Before we add a new column it is equivalent to the wc-ng
+             incomplete presence */
+          *status = (svn_sqlite__column_token(stmt, 2, presence_map)
+                            == svn_wc__db_status_incomplete);
+        }
     }
   else
     {
@@ -1970,13 +1983,15 @@ svn_wc__db_base_get_info(svn_wc__db_stat
                          svn_revnum_t *changed_rev,
                          apr_time_t *changed_date,
                          const char **changed_author,
-                         apr_time_t *last_mod_time,
                          svn_depth_t *depth,
                          const svn_checksum_t **checksum,
-                         svn_filesize_t *translated_size,
                          const char **target,
                          svn_wc__db_lock_t **lock,
+                         svn_filesize_t *recorded_size,
+                         apr_time_t *recorded_mod_time,
+                         svn_boolean_t *had_props,
                          svn_boolean_t *update_root,
+                         svn_boolean_t *needs_full_update,
                          svn_wc__db_t *db,
                          const char *local_abspath,
                          apr_pool_t *result_pool,
@@ -1993,9 +2008,10 @@ svn_wc__db_base_get_info(svn_wc__db_stat
   VERIFY_USABLE_WCROOT(wcroot);
 
   SVN_ERR(base_get_info(status, kind, revision, repos_relpath, &repos_id,
-                        changed_rev, changed_date, changed_author,
-                        last_mod_time, depth, checksum, translated_size,
-                        target, lock, update_root,
+                        changed_rev, changed_date, changed_author, depth,
+                        checksum, target, lock, recorded_size,
+                        recorded_mod_time, had_props,
+                        update_root, needs_full_update,
                         wcroot, local_relpath, result_pool, scratch_pool));
   SVN_ERR_ASSERT(repos_id != INVALID_REPOS_ID);
   SVN_ERR(fetch_repos_info(repos_root_url, repos_uuid,
@@ -2434,7 +2450,7 @@ get_info_for_copy(apr_int64_t *copyfrom_
           SVN_ERR(base_get_info(NULL, NULL, copyfrom_rev, copyfrom_relpath,
                                 copyfrom_id,
                                 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                NULL, NULL, NULL,
+                                NULL, NULL, NULL, NULL, NULL,
                                 wcroot, base_del_relpath,
                                 result_pool, scratch_pool));
         }
@@ -7176,7 +7192,7 @@ bump_node_revision(svn_wc__db_wcroot_t *
 
   SVN_ERR(base_get_info(&status, &db_kind, &revision, &repos_relpath,
                         &repos_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                        NULL, NULL, &update_root,
+                        NULL, NULL, NULL, &update_root, NULL,
                         wcroot, local_relpath,
                         scratch_pool, scratch_pool));
 
@@ -7295,7 +7311,7 @@ bump_revisions_post_commit(void *baton,
   apr_int64_t new_repos_id = -1;
 
   err = base_get_info(&status, &kind, NULL, NULL, NULL, NULL, NULL, NULL,
-                      NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                       wcroot, local_relpath, scratch_pool, scratch_pool);
   if (err && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND)
     {
@@ -9491,7 +9507,7 @@ end_directory_update(void *baton,
   svn_sqlite__stmt_t *stmt;
   svn_wc__db_status_t base_status;
 
-  SVN_ERR(base_get_info(&base_status, NULL, NULL, NULL, NULL, NULL,
+  SVN_ERR(base_get_info(&base_status, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                         NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                         wcroot, local_relpath, scratch_pool, scratch_pool));
 

Modified: subversion/trunk/subversion/libsvn_wc/wc_db.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc_db.h?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/wc_db.h (original)
+++ subversion/trunk/subversion/libsvn_wc/wc_db.h Sun Apr 17 14:20:03 2011
@@ -674,21 +674,27 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
    will be returned.
 
    The OUT parameters, and their "not available" values are:
-     STATUS           n/a (always available)
-     KIND             n/a (always available)
-     REVISION         SVN_INVALID_REVNUM
-     REPOS_RELPATH    NULL (caller should scan up)
-     REPOS_ROOT_URL   NULL (caller should scan up)
-     REPOS_UUID       NULL (caller should scan up)
-     CHANGED_REV      SVN_INVALID_REVNUM
-     CHANGED_DATE     0
-     CHANGED_AUTHOR   NULL
-     LAST_MOD_TIME    0
-     DEPTH            svn_depth_unknown
-     CHECKSUM         NULL
-     TRANSLATED_SIZE  SVN_INVALID_FILESIZE
-     TARGET           NULL
-     LOCK             NULL
+     STATUS             n/a (always available)
+     KIND               n/a (always available)
+     REVISION           SVN_INVALID_REVNUM
+     REPOS_RELPATH      NULL (caller should scan up)
+     REPOS_ROOT_URL     NULL (caller should scan up)
+     REPOS_UUID         NULL (caller should scan up)
+     CHANGED_REV        SVN_INVALID_REVNUM
+     CHANGED_DATE       0
+     CHANGED_AUTHOR     NULL
+     DEPTH              svn_depth_unknown
+     CHECKSUM           NULL
+     TARGET             NULL
+     LOCK               NULL
+
+     RECORDED_SIZE      SVN_INVALID_FILESIZE
+     RECORDED_MOD_TIME  0
+
+     HAD_PROPS          FALSE
+
+     UPDATE_ROOT        FALSE
+     NEEDS_FULL_UPDATE  FALSE
 
    If the STATUS is normal, and the REPOS_* values are NULL, then the
    caller should use svn_wc__db_scan_base_repos() to scan up the BASE
@@ -701,7 +707,7 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
    If CHECKSUM is requested, and the node is NOT a file, then it will
    be set to NULL.
 
-   If TRANSLATED_SIZE is requested, and the node is NOT a file, then
+   If RECORDED_SIZE is requested, and the node is NOT a file, then
    it will be set to SVN_INVALID_FILESIZE.
 
    If TARGET is requested, and the node is NOT a symlink, then it will
@@ -710,6 +716,9 @@ svn_wc__db_base_remove(svn_wc__db_t *db,
    If UPDATE_ROOT is requested, set it to TRUE if the node should only
    be updated when it is the root of an update (e.g. file externals).
 
+   If NEEDS_FULL_UPDATE is requested, set it to TRUE if the node needs to know
+   the complete set of children and properties on the next update. (EditorV1)
+
    All returned data will be allocated in RESULT_POOL. All temporary
    allocations will be made in SCRATCH_POOL.
 */
@@ -723,13 +732,15 @@ svn_wc__db_base_get_info(svn_wc__db_stat
                          svn_revnum_t *changed_rev,
                          apr_time_t *changed_date,
                          const char **changed_author,
-                         apr_time_t *last_mod_time,
                          svn_depth_t *depth,
                          const svn_checksum_t **checksum,
-                         svn_filesize_t *translated_size,
                          const char **target,
                          svn_wc__db_lock_t **lock,
+                         svn_filesize_t *recorded_size,
+                         apr_time_t *recorded_mod_time,
+                         svn_boolean_t *had_props,
                          svn_boolean_t *update_root,
+                         svn_boolean_t *needs_full_update,
                          svn_wc__db_t *db,
                          const char *local_abspath,
                          apr_pool_t *result_pool,
@@ -1403,7 +1414,7 @@ svn_wc__db_op_set_tree_conflict(svn_wc__
      CONFLICTED              FALSE
 
      OP_ROOT                 FALSE
-     HAVE_PROPS             FALSE
+     HAD_PROPS               FALSE
      PROPS_MOD               FALSE
 
      HAVE_BASE               FALSE

Modified: subversion/trunk/subversion/libsvn_wc/workqueue.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/workqueue.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/workqueue.c (original)
+++ subversion/trunk/subversion/libsvn_wc/workqueue.c Sun Apr 17 14:20:03 2011
@@ -175,7 +175,7 @@ remove_base_node(svn_wc__db_t *db,
   else
     SVN_ERR(svn_wc__db_base_get_info(&base_status, &base_kind, NULL, NULL,
                                      NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL, NULL, NULL,
+                                     NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                      db, local_abspath,
                                      scratch_pool, scratch_pool));
 
@@ -265,7 +265,7 @@ run_base_remove(svn_wc__db_t *db,
       SVN_ERR(svn_wc__db_base_get_info(NULL, &kind, &revision, &repos_relpath,
                                        &repos_root_url, &repos_uuid, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL,
+                                       NULL, NULL, NULL, NULL, NULL,
                                        db, local_abspath,
                                        scratch_pool, scratch_pool));
     }
@@ -358,6 +358,7 @@ run_deletion_postcommit(svn_wc__db_t *db
       SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, &parent_revision, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
+                                       NULL, NULL,
                                        db, svn_dirent_dirname(local_abspath,
                                                               scratch_pool),
                                        scratch_pool, scratch_pool));

Modified: subversion/trunk/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_wc/db-test.c?rev=1094146&r1=1094145&r2=1094146&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_wc/db-test.c Sun Apr 17 14:20:03 2011
@@ -412,6 +412,9 @@ test_getting_info(apr_pool_t *pool)
   const svn_checksum_t *checksum;
   svn_filesize_t translated_size;
   const char *target;
+  svn_boolean_t had_props;
+  svn_boolean_t update_root;
+  svn_boolean_t needs_full_update;
   svn_wc__db_lock_t *lock;
   svn_wc__db_t *db;
   svn_error_t *err;
@@ -423,8 +426,9 @@ test_getting_info(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_get_info(
             &status, &kind, &revision,
             &repos_relpath, &repos_root_url, &repos_uuid,
-            &changed_rev, &changed_date, &changed_author, &last_mod_time,
-            &depth, &checksum, &translated_size, &target, &lock, NULL,
+            &changed_rev, &changed_date, &changed_author,&depth, &checksum, 
+            &target, &lock, &translated_size, &last_mod_time, &had_props,
+            &update_root, &needs_full_update,
             db, local_abspath,
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_dir);
@@ -448,7 +452,8 @@ test_getting_info(apr_pool_t *pool)
             NULL, &kind, NULL,
             &repos_relpath, &repos_root_url, &repos_uuid,
             NULL, NULL, NULL, NULL,
-            NULL, &checksum, &translated_size, NULL, NULL, NULL,
+            &checksum, NULL, NULL, &translated_size,
+            NULL, NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "A", pool),
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_file);
@@ -462,8 +467,9 @@ test_getting_info(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_get_info(
             &status, &kind, &revision,
             &repos_relpath, &repos_root_url, &repos_uuid,
-            &changed_rev, &changed_date, &changed_author, &last_mod_time,
-            &depth, &checksum, &translated_size, &target, &lock, NULL,
+            &changed_rev, &changed_date, &changed_author,
+            &depth, &checksum, &target, &lock, &translated_size,
+            &last_mod_time, NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "B", pool),
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_symlink);
@@ -487,7 +493,8 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "C", pool),
             pool, pool));
   SVN_TEST_ASSERT(kind == svn_wc__db_kind_unknown);
@@ -499,7 +506,8 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "D", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_not_present);
@@ -510,7 +518,8 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "E", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_incomplete);
@@ -520,7 +529,9 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, &checksum, &translated_size, NULL, NULL, NULL,
+            NULL, &checksum, NULL,
+            NULL, &translated_size, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "F", pool),
             pool, pool));
   SVN_TEST_STRING_ASSERT(SHA1_1,
@@ -532,7 +543,9 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &changed_rev, &changed_date, &changed_author,
-            NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "G", pool),
             pool, pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "G-alt");
@@ -547,7 +560,9 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, &checksum, &translated_size, &target, NULL, NULL,
+            NULL, &checksum, &target,
+            NULL, &translated_size, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "H", pool),
             pool, pool));
   SVN_TEST_ASSERT(checksum == NULL);
@@ -560,7 +575,8 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "missing-file", pool),
             pool, pool);
   SVN_TEST_ASSERT(err != NULL && err->apr_err == SVN_ERR_WC_PATH_NOT_FOUND);
@@ -589,7 +605,8 @@ validate_node(svn_wc__db_t *db,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
             NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL,
+            NULL, NULL, NULL,
             db, path,
             scratch_pool, scratch_pool));
   SVN_TEST_ASSERT(kind == expected_kind);