You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by Apache subversion Wiki <co...@subversion.apache.org> on 2013/06/28 21:50:09 UTC

[Subversion Wiki] Update of "Ev2" by brane

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Subversion Wiki" for change notification.

The "Ev2" page has been changed by brane:
https://wiki.apache.org/subversion/Ev2?action=diff&rev1=9&rev2=10

  The WC's update editor has a much more difficult time. There are a couple
  ways that the WC could solve this problem:
  
-  1. The incoming changes are placed into a client-side TXN. At the end
-     of the update, when `complete()` is called, the TXN becomes BASE
-     along with the regular post-update revision bump.
-  1. Each time a node is replaced (`SVN_IS_VALID_REVNUM(replaces_rev)`),
-     then the WC will set aside information about the replaced node
-     in case it needs to be accessed later.
+  1. The incoming changes are placed into a client-side TXN. At the end of the update, when `complete()` is called, the TXN becomes BASE along with the regular post-update revision bump.
+  1. Each time a node is replaced (`SVN_IS_VALID_REVNUM(replaces_rev)`), then the WC will set aside information about the replaced node in case it needs to be accessed later.
+  1. The WC grows a "checkpoint" feature wherein it can store an arbitrarily deep stack of working copy states, and every update/merge/switch implicitly creates a checkpoint. This is the most generic solution, but also the most complicated one. It does have a number of additional benefits:
+   * Allows rollback to the working copy state (possibly including local modifications) immediately prior to the operation, thus not losing local mods upon a broken update.
+   * Provides an "svn checkpoint" client feature.
+   * Provides infrastructure for a future "svn shelve" feature.
  
- Both the above scenarios will allow the WC to retain the original state
+ All the above scenarios will allow the WC to retain the original state
  should it be needed for a later move.
  
  == Add a "replaced node's information" struct ==