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 2013/02/05 15:43:05 UTC

svn commit: r1442611 - in /subversion/trunk/subversion: libsvn_client/delete.c tests/cmdline/basic_tests.py

Author: rhuijben
Date: Tue Feb  5 14:43:04 2013
New Revision: 1442611

URL: http://svn.apache.org/viewvc?rev=1442611&view=rev
Log:
Allow 'svn cp iota iota2; svn rm iota2' if iota was originally
an unchanged copy.

* subversion/libsvn_client/delete.c
  (find_undeletables): Allow unmodified copies to pass without
    noticing an unsafe to delete item.

* subversion/tests/cmdline/basic_tests.py
  (basic_delete): Extend to cover this change.

Modified:
    subversion/trunk/subversion/libsvn_client/delete.c
    subversion/trunk/subversion/tests/cmdline/basic_tests.py

Modified: subversion/trunk/subversion/libsvn_client/delete.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/delete.c?rev=1442611&r1=1442610&r2=1442611&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/delete.c (original)
+++ subversion/trunk/subversion/libsvn_client/delete.c Tue Feb  5 14:43:04 2013
@@ -79,7 +79,14 @@ find_undeletables(void *baton,
     return svn_error_createf(SVN_ERR_UNVERSIONED_RESOURCE, NULL,
                              _("'%s' is not under version control"),
                              svn_dirent_local_style(local_abspath, pool));
-
+  else if ((status->node_status == svn_wc_status_added
+            || status->node_status == svn_wc_status_replaced)
+           && status->text_status == svn_wc_status_normal
+           && (status->prop_status == svn_wc_status_normal
+               || status->prop_status == svn_wc_status_none))
+    {
+      /* Unmodified copy. Go ahead, remove it */
+    }
   else if (status->node_status != svn_wc_status_normal
            && status->node_status != svn_wc_status_deleted
            && status->node_status != svn_wc_status_missing)

Modified: subversion/trunk/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/basic_tests.py?rev=1442611&r1=1442610&r2=1442611&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/basic_tests.py Tue Feb  5 14:43:04 2013
@@ -1152,6 +1152,10 @@ def basic_delete(sbox):
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'rm', '--force', X_path)
 
+  # Deleting an unchanged copy shouldn't error.
+  sbox.simple_copy('iota', 'iota2')
+  svntest.main.run_svn(None, 'rm', sbox.ospath('iota2'))
+
   # Deleting already removed from wc versioned item with --force
   iota_path = sbox.ospath('iota')
   os.remove(iota_path)