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 ==