[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[PATCH] Fix for issue 3742

From: Noorul Islam K M <noorul_at_collab.net>
Date: Wed, 16 Feb 2011 13:23:06 +0530

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

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.