You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by rh...@apache.org on 2014/06/04 18:19:17 UTC

svn commit: r1600323 - in /subversion/trunk/subversion: libsvn_client/externals.c tests/cmdline/externals_tests.py

Author: rhuijben
Date: Wed Jun  4 16:19:17 2014
New Revision: 1600323

URL: http://svn.apache.org/r1600323
Log:
Resolve a regression reported by <GezwiZ> in #svn IRC, see r1600311.

* subversion/libsvn_client/externals.c
  (svn_client__handle_externals): Fix removal of empty ancestor directories
    of externals that are removed. Properly handle deleted and non existing
    directories.

* subversion/tests/cmdline/externals_tests.py
  (update_deletes_file_external): Remove XFail marker.

Modified:
    subversion/trunk/subversion/libsvn_client/externals.c
    subversion/trunk/subversion/tests/cmdline/externals_tests.py

Modified: subversion/trunk/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=1600323&r1=1600322&r2=1600323&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/externals.c (original)
+++ subversion/trunk/subversion/libsvn_client/externals.c Wed Jun  4 16:19:17 2014
@@ -1017,7 +1017,9 @@ svn_client__handle_externals(apr_hash_t 
 
         parent_abspath = svn_dirent_dirname(parent_abspath, iterpool);
         SVN_ERR(svn_wc_read_kind2(&kind, ctx->wc_ctx, parent_abspath,
-                                  TRUE, FALSE, iterpool));
+                                  FALSE /* show_deleted*/,
+                                  FALSE /* show_hidden */,
+                                  iterpool));
         if (kind == svn_node_none)
           {
             svn_error_t *err;
@@ -1026,7 +1028,12 @@ svn_client__handle_externals(apr_hash_t 
             if (err && APR_STATUS_IS_ENOTEMPTY(err->apr_err))
               {
                 svn_error_clear(err);
-                break;
+                break; /* No parents to delete */
+              }
+            else if (err && APR_STATUS_IS_ENOTDIR(err->apr_err))
+              {
+                svn_error_clear(err);
+                /* Fall through; parent dir might be unversioned */
               }
             else
               SVN_ERR(err);

Modified: subversion/trunk/subversion/tests/cmdline/externals_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/externals_tests.py?rev=1600323&r1=1600322&r2=1600323&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/externals_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/externals_tests.py Wed Jun  4 16:19:17 2014
@@ -3413,7 +3413,6 @@ def update_external_peg_rev(sbox):
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'status', '-u', sbox.wc_dir)
 
-@XFail()
 def update_deletes_file_external(sbox):
   "update deletes a file external"