On 03/03/2011 01:15 PM, stsp_at_apache.org wrote:
> Author: stsp
> Date: Thu Mar 3 18:15:46 2011
> New Revision: 1076712
>
> URL: http://svn.apache.org/viewvc?rev=1076712&view=rev
> Log:
> As a first step towards eliminating use of the node walker in
> svn_wc_revision_status2(), use a DB query to determine the min/max revisions
> of the working copy, instead of obtaining this information during the crawl.
I was *just* making changes in this space. Why? Because this code needs to
ignore file externals when determining the revision range and status and
such. In fact, I was just getting ready to run the full test suite with the
attached patch, which appears to fix issue #3816[1]. Can we modify your
MIN_MAX sqlite statement to skip nodes which are file externals?
-- C-Mike
[1] http://subversion.tigris.org/issues/show_bug.cgi?id=3816
-----------------
Index: subversion/libsvn_wc/revision_status.c
===================================================================
--- subversion/libsvn_wc/revision_status.c (revision 1076717)
+++ subversion/libsvn_wc/revision_status.c (working copy)
@@ -61,6 +61,7 @@
svn_revnum_t revision;
svn_revnum_t item_rev;
svn_depth_t depth;
+ svn_boolean_t is_file_external;
svn_wc__db_status_t status;
SVN_ERR(svn_wc__db_read_info(&status, NULL, &revision, NULL,
@@ -89,6 +90,12 @@
wb->result->modified = TRUE;
}
+ /* Ignore file externals. */
+ SVN_ERR(svn_wc__internal_is_file_external(&is_file_external, wb->db,
+ local_abspath, scratch_pool));
+ if (is_file_external)
+ return SVN_NO_ERROR;
+
if (! wb->result->switched)
{
svn_boolean_t wc_root;
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2011-03-03 19:41:55 CET