You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by gs...@apache.org on 2010/05/12 01:35:14 UTC

svn commit: r943340 - /subversion/trunk/subversion/libsvn_wc/adm_crawler.c

Author: gstein
Date: Tue May 11 23:35:14 2010
New Revision: 943340

URL: http://svn.apache.org/viewvc?rev=943340&view=rev
Log:
Fix r943323. There was an assertion that all nodes would have a revision,
but this is not necessarily true for obstructed nodes. Tweak it.

Not sure this is entirely correct, but it maintains some behavior from
prior to r943323.

* subversion/libsvn_wc/adm_crawler.c:
  (report_revisions_and_depths): nodes with SVN_INVALID_REVNUM should
    "inherit" their parent's revision
  (svn_wc_crawl_revisions5): leave a marker about future research

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=943340&r1=943339&r2=943340&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/trunk/subversion/libsvn_wc/adm_crawler.c Tue May 11 23:35:14 2010
@@ -468,8 +468,13 @@ report_revisions_and_depths(svn_wc__db_t
       if (this_depth == svn_depth_unknown)
         this_depth = svn_depth_infinity;
 
-      /* We better have a revision.  */
-      SVN_ERR_ASSERT(SVN_IS_VALID_REVNUM(this_rev));
+      /* Obstructed nodes might report SVN_INVALID_REVNUM. Tweak it.
+
+         ### it seems that obstructed nodes should be handled quite a
+         ### bit differently. maybe reported as missing, like not-present
+         ### or absent nodes?  */
+      if (!SVN_IS_VALID_REVNUM(this_rev))
+        this_rev = dir_rev;
 
       /*** Files ***/
       if (this_kind == svn_wc__db_kind_file ||
@@ -846,6 +851,8 @@ svn_wc_crawl_revisions5(svn_wc_context_t
   SVN_ERR(reporter->set_path(report_baton, "", target_rev, target_depth,
                              start_empty, NULL, scratch_pool));
 
+  /* ### status can NEVER be deleted. should examine why this was
+     ### ever here. we may have remapped into wc-ng incorrectly.  */
   if (status != svn_wc__db_status_deleted)
     {
       apr_finfo_t info;