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
-_at_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));
Received on 2011-02-16 08:53:57 CET