You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2010/02/15 14:16:05 UTC
svn commit: r910214 - /subversion/trunk/notes/wc-ng/transitions
Author: philip
Date: Mon Feb 15 13:16:05 2010
New Revision: 910214
URL: http://svn.apache.org/viewvc?rev=910214&view=rev
Log:
* notes/wc-ng/transitions: New.
Added:
subversion/trunk/notes/wc-ng/transitions (with props)
Added: subversion/trunk/notes/wc-ng/transitions
URL: http://svn.apache.org/viewvc/subversion/trunk/notes/wc-ng/transitions?rev=910214&view=auto
==============================================================================
--- subversion/trunk/notes/wc-ng/transitions (added)
+++ subversion/trunk/notes/wc-ng/transitions Mon Feb 15 13:16:05 2010
@@ -0,0 +1,130 @@
+Delete and revert both operate on WORKING_NODE.presence while leaving
+BASE_NODE.presence untouched.
+
+Possible BASE_NODE.presence values:
+<none>, normal, incomplete, absent, excluded, not-present
+
+Possible WORKING_NODE.presence values:
+<none>, normal, incomplete, absent, excluded, not-present, base-deleted
+
+
+------original-state------- ----delete----
+BASE_NODE WORKING_NODE WORKING_NODE
+<none> <none> -
+<none> normal <none> or not-present [1]
+<none> incomplete <none> or - [2]
+<none> absent -
+<none> excluded - [3]
+<none> not-present -
+<none> base-deleted -
+normal <none> base-deleted
+normal normal <none> or not-present [1]
+normal incomplete <none> or - [2]
+normal absent -
+normal excluded - [3]
+normal not-present -
+normal base-deleted -
+incomplete <none> base-deleted
+incomplete normal <none> or not-present [1]
+incomplete incomplete <none> or - [2]
+incomplete absent -
+incomplete excluded - [3]
+incomplete not-present -
+incomplete base-deleted -
+absent <none> -
+absent normal x
+absent incomplete x
+absent absent x
+absent excluded x
+absent not-present x
+absent base-deleted x
+excluded <none> base-deleted
+excluded normal <none> or not-present [1]
+excluded incomplete <none> or - [2]
+excluded absent -
+excluded excluded - [3]
+excluded not-present -
+excluded base-deleted -
+not-present <none> -
+not-present normal <none> or not-present [1]
+not-present incomplete <none> or - [2]
+not-present absent -
+not-present excluded - [3]
+not-present not-present -
+not-present base-deleted -
+
+
+------original-state------- ---revert---
+BASE_NODE WORKING_NODE WORKING_NODE
+<none> <none> -
+<none> normal <none> or - [4]
+<none> incomplete <none> or - [4]
+<none> absent -
+<none> excluded -
+<none> not-present normal
+<none> base-deleted <none>
+normal <none> -
+normal normal <none> or - [4]
+normal incomplete <none> or - [4]
+normal absent -
+normal excluded -
+normal not-present normal
+normal base-deleted <none>
+incomplete <none> -
+incomplete normal <none> or - [4]
+incomplete incomplete <none> or - [4]
+incomplete absent -
+incomplete excluded -
+incomplete not-present normal
+incomplete base-deleted <none>
+absent <none> -
+absent normal x
+absent incomplete x
+absent absent x
+absent excluded x
+absent not-present x
+absent base-deleted x
+excluded <none> -
+excluded normal <none> or - [4]
+excluded incomplete <none> or - [4]
+excluded absent -
+excluded excluded -
+excluded not-present normal
+excluded base-deleted <none>
+not-present <none> -
+not-present normal <none> or - [4]
+not-present incomplete <none> or - [4]
+not-present absent -
+not-present excluded -
+not-present not-present normal
+not-present base-deleted <none>
+
+
+key
+---
+- : operation not allowed or no change required
+x : original state not allowed
+
+notes
+-----
+[1] <none> if the root of the copy, not-present otherwise.
+[2] <none> if the root of the copy, - otherwise
+[3] A sparse copy, should commit automatically delete an excluded node?
+[4] <none> if the root of the copy, - otherwise
+
+
+Generally BASE_NODE.presence normal and incomplete are treated the
+same, since update can change one into the other at any time.
+
+It's not possible to delete something with WORKING_NODE.presence
+incomplete unless it's the root of the copy. If we transformed it to
+not-present revert would not be able to go back to incomplete.
+
+It's possible to delete something with BASE_NODE.presence excluded
+because the name alone is sufficient information at commit time.
+
+WORKING_NODE.presence excluded is more difficult. Should commit
+automatically delete an excluded node? There are arguments for and
+against. If commit doesn't automatically delete the node can the user
+delete it in the working tree? Like WORKING_NODE.presence incomplete
+the problem is that revert would not be able to cope.
Propchange: subversion/trunk/notes/wc-ng/transitions
------------------------------------------------------------------------------
svn:eol-style = native