Author: rhuijben
Date: Sun Jun  5 16:14:38 2011
New Revision: 1132444

URL: http://svn.apache.org/viewvc?rev=1132444&view=rev
Log:
In the upgrade code: don't install information in WORKING nodes that should be
obtained from lower layers. Match the behavior of what a new working copy would
look like.

* subversion/libsvn_wc/entries.c
  (write_entry): Handle an incomplete delete as a delete instead of as an
    incomplete node. (The old scenarios where we had to support this are
    no longer valid). Don't install last modification info in base_deleted
    records.

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=1132444&r1=1132443&r2=1132444&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_wc/entries.c (original)
+++ subversion/trunk/subversion/libsvn_wc/entries.c Sun Jun  5 16:14:38 2011
@@ -2036,19 +2036,8 @@ write_entry(struct write_baton **entry_n
             }
           else if (entry->schedule == svn_wc_schedule_delete)
             {
-              if (entry->incomplete)
-                {
-                  /* A transition from a schedule-delete state to incomplete
-                     is most likely caused by 
svn_wc_remove_from_revision_control.
-                     By setting this node's presence to 'incomplete', we will
-                     lose the scheduling information, but this directory is
-                     being deleted (by the logs) ... we won't need the state.  
*/
-                  working_node->presence = svn_wc__db_status_incomplete;
-                }
-              else
-                {
-                  working_node->presence = svn_wc__db_status_base_deleted;
-                }
+              working_node->presence = svn_wc__db_status_base_deleted;
+              working_node->kind = entry->kind;
             }
           else
             {
@@ -2071,9 +2060,12 @@ write_entry(struct write_baton **entry_n
 
          Note: cmt_rev is the distinguishing value. The others may be 0 or
          NULL if the corresponding revprop has been deleted.  */
-      working_node->changed_rev = entry->cmt_rev;
-      working_node->changed_date = entry->cmt_date;
-      working_node->changed_author = entry->cmt_author;
+      if (working_node->presence != svn_wc__db_status_base_deleted)
+        {
+          working_node->changed_rev = entry->cmt_rev;
+          working_node->changed_date = entry->cmt_date;
+          working_node->changed_author = entry->cmt_author;
+        }
 
       if (entry->schedule == svn_wc_schedule_delete
           && parent_node->work


Reply via email to