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;