Issue description: 'svn status' should reported nested working copies as unversioned regardless of the format of their working copies.
Issue link: http://subversion.tigris.org/issues/show_bug.cgi?id=3742 All tests pass using 'make check' Log [[[ Make 'svn status' report nested working copies as unversioned regardless of the format of their working copies. * subversion/svn/status.c, subversion/libsvn_wc/status.c (print_status, assemble_unversioned): Consider other format working copies as unversioned by ignoring SVN_ERR_WC_UPGRADE_REQUIRED error. * subversion/tests/cmdline/stat_tests.py (status_nested_wc_old_format): Remove XFail marker. Patch by: Noorul Islam K M <noorul{_AT_}collab.net> ]]]
Index: subversion/tests/cmdline/stat_tests.py =================================================================== --- subversion/tests/cmdline/stat_tests.py (revision 1071136) +++ subversion/tests/cmdline/stat_tests.py (working copy) @@ -1793,7 +1793,6 @@ #---------------------------------------------------------------------- # Regression for issue #3742 -@XFail() @Issue(3742) def status_nested_wc_old_format(sbox): "status on wc with nested old-format wc" Index: subversion/svn/status.c =================================================================== --- subversion/svn/status.c (revision 1071136) +++ subversion/svn/status.c (working copy) @@ -150,12 +150,17 @@ svn_boolean_t text_conflicted; svn_boolean_t prop_conflicted; svn_boolean_t tree_conflicted; + svn_error_t *err; - SVN_ERR(svn_wc__node_check_conflicts(&prop_conflicted, - &text_conflicted, - &tree_conflicted, ctx->wc_ctx, - local_abspath, pool, pool)); + err = svn_wc__node_check_conflicts(&prop_conflicted, + &text_conflicted, + &tree_conflicted, ctx->wc_ctx, + local_abspath, pool, pool); + if (err && err->apr_err == SVN_ERR_WC_UPGRADE_REQUIRED) + svn_error_clear(err); + else + SVN_ERR(err); if (tree_conflicted) { Index: subversion/libsvn_wc/status.c =================================================================== --- subversion/libsvn_wc/status.c (revision 1071136) +++ subversion/libsvn_wc/status.c (working copy) @@ -695,13 +695,21 @@ { svn_wc_status3_t *stat; const svn_wc_conflict_description2_t *tree_conflict; + svn_error_t *err; /* Find out whether the path is a tree conflict victim. This function will set tree_conflict to NULL if the path is not a victim. */ - SVN_ERR(svn_wc__db_op_read_tree_conflict(&tree_conflict, - db, local_abspath, - scratch_pool, scratch_pool)); + err = svn_wc__db_op_read_tree_conflict(&tree_conflict, + db, local_abspath, + scratch_pool, scratch_pool); + + if (path_kind == svn_node_dir && + err && + err->apr_err == SVN_ERR_WC_UPGRADE_REQUIRED) + svn_error_clear(err); + else + SVN_ERR(err); /* return a fairly blank structure. */ stat = apr_pcalloc(result_pool, sizeof(**status));