Author: philip
Date: Thu May 12 14:17:32 2011
New Revision: 1102321

URL: http://svn.apache.org/viewvc?rev=1102321&view=rev
Log:
Return an error, rather than assert, for upgrades involving replaced
directories that are copies.

* subversion/libsvn_wc/entries.c
  (write_entry): Return error rather than assert.

Modified:
    subversion/trunk/subversion/libsvn_wc/entries.c

Modified: subversion/trunk/subversion/libsvn_wc/entries.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/entries.c?rev=1102321&r1=1102320&r2=1102321&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Thu May 12 14:17:32 2011
@@ -1723,6 +1723,12 @@ write_entry(struct write_baton **entry_n
         break;
 
       case svn_wc_schedule_delete:
+        if (entry->copied)
+          return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+                   _("Cannot upgrade with copied/replaced directory '%s'"),
+                   svn_dirent_local_style(parent_node->base->local_relpath,
+                                          scratch_pool));
+
         SVN_ERR_ASSERT(!entry->copied);
         working_node = MAYBE_ALLOC(working_node, result_pool);
         if (parent_node->base)
@@ -1730,6 +1736,12 @@ write_entry(struct write_baton **entry_n
         break;
 
       case svn_wc_schedule_replace:
+        if (parent_node->base && parent_node->work)
+          return svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+                   _("Cannot upgrade with copied/replaced directory '%s'"),
+                   svn_dirent_local_style(parent_node->base->local_relpath,
+                                          scratch_pool));
+                                   
         SVN_ERR_ASSERT((parent_node->base && !parent_node->work)
                        || (parent_node->work && !parent_node->base));
         working_node = MAYBE_ALLOC(working_node, result_pool);


Reply via email to