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,