Index: subversion/libsvn_wc/entries.c =================================================================== --- subversion/libsvn_wc/entries.c (revision 16212) +++ subversion/libsvn_wc/entries.c (working copy) @@ -1690,9 +1690,25 @@ if (modify_flags & SVN_WC__ENTRY_MODIFY_SCHEDULE) { svn_wc_entry_t *entry_before, *entry_after; - apr_uint32_t orig_modify_flags = modify_flags; + apr_uint32_t orig_modify_flags; svn_wc_schedule_t orig_schedule = entry->schedule; + /* Make sure to invalidate fields not related to the new schedule */ + if (!(entry->schedule == svn_wc_schedule_add || + entry->schedule == svn_wc_schedule_replace)) + { + modify_flags |= + SVN_WC__ENTRY_MODIFY_COPYFROM_URL | + SVN_WC__ENTRY_MODIFY_COPYFROM_REV | + SVN_WC__ENTRY_MODIFY_COPIED; + + entry->copyfrom_url = NULL; + entry->copyfrom_rev = SVN_INVALID_REVNUM; + entry->copied = FALSE; + } + + orig_modify_flags = modify_flags; + /* Keep a copy of the unmodified entry on hand. */ entry_before = apr_hash_get (entries, name, APR_HASH_KEY_STRING);