Author: rhuijben
Date: Thu Feb 28 14:44:09 2013
New Revision: 1451218

URL: http://svn.apache.org/r1451218
Log:
* subversion/libsvn_wc/adm_crawler.c
  (report_revisions_and_depths,
   svn_wc_crawl_revisions5): Avoid a db query when missing files during update.

Modified:
    subversion/trunk/subversion/libsvn_wc/adm_crawler.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=1451218&r1=1451217&r2=1451218&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Thu Feb 28 14:44:09 2013
@@ -373,26 +373,19 @@ report_revisions_and_depths(svn_wc__db_t
         {
           svn_wc__db_status_t wrk_status;
           svn_kind_t wrk_kind;
+          const svn_checksum_t *checksum;
 
           SVN_ERR(svn_wc__db_read_info(&wrk_status, &wrk_kind, NULL, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, NULL, NULL, NULL,
+                                       &checksum, NULL, NULL, NULL, NULL, NULL,
                                        NULL, NULL, NULL, NULL, NULL, NULL,
                                        NULL, NULL, NULL, NULL, NULL,
                                        db, this_abspath, iterpool, iterpool));
 
-          if (wrk_status == svn_wc__db_status_added)
-            SVN_ERR(svn_wc__db_scan_addition(&wrk_status, NULL, NULL, NULL,
-                                             NULL, NULL, NULL, NULL, NULL,
-                                             NULL, NULL, db, this_abspath,
-                                             iterpool, iterpool));
-
-          if (wrk_status == svn_wc__db_status_normal
-              || wrk_status == svn_wc__db_status_copied
-              || wrk_status == svn_wc__db_status_moved_here
-              || (wrk_kind == svn_kind_dir
-                  && (wrk_status == svn_wc__db_status_added
-                      || wrk_status == svn_wc__db_status_incomplete)))
+          if ((wrk_status == svn_wc__db_status_normal
+               || wrk_status == svn_wc__db_status_added
+               || wrk_status == svn_wc__db_status_incomplete)
+              && (wrk_kind == svn_kind_dir || checksum))
             {
               svn_node_kind_t dirent_kind;
 
@@ -713,8 +706,10 @@ svn_wc_crawl_revisions5(svn_wc_context_t
     {
       svn_wc__db_status_t wrk_status;
       svn_kind_t wrk_kind;
+      const svn_checksum_t *checksum;
+
       err = svn_wc__db_read_info(&wrk_status, &wrk_kind, NULL, NULL, NULL,
-                                 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                                 NULL, NULL, NULL, NULL, NULL, &checksum, NULL,
                                  NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                  NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                  NULL,
@@ -731,18 +726,10 @@ svn_wc_crawl_revisions5(svn_wc_context_t
       else
         SVN_ERR(err);
 
-      if (wrk_status == svn_wc__db_status_added)
-        SVN_ERR(svn_wc__db_scan_addition(&wrk_status, NULL, NULL, NULL, NULL,
-                                         NULL, NULL, NULL, NULL, NULL, NULL,
-                                         db, local_abspath,
-                                         scratch_pool, scratch_pool));
-
-      if (wrk_status == svn_wc__db_status_normal
-          || wrk_status == svn_wc__db_status_copied
-          || wrk_status == svn_wc__db_status_moved_here
-          || (wrk_kind == svn_kind_dir
-              && (wrk_status == svn_wc__db_status_added
-                  || wrk_status == svn_wc__db_status_incomplete)))
+      if ((wrk_status == svn_wc__db_status_normal
+          || wrk_status == svn_wc__db_status_added
+          || wrk_status == svn_wc__db_status_incomplete)
+          && (wrk_kind == svn_kind_dir || checksum))
         {
           SVN_ERR(restore_node(wc_ctx->db, local_abspath,
                                wrk_kind, use_commit_times,


Reply via email to