subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache subversion Wiki <comm...@subversion.apache.org>
Subject [Subversion Wiki] Update of "NodesOperations" by PhilipMartin
Date Tue, 01 May 2012 15:28:10 GMT
Dear Wiki user,

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

The "NodesOperations" page has been changed by PhilipMartin:
http://wiki.apache.org/subversion/NodesOperations

New page:
= Update =

Updating using the current v1 editor changes the base node tree in several steps converting
to and from mixed-revisions.  Starting with a simple singe-revision tree:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || normal   ||     3    ||
||  0       ||    A/f        || normal   ||     3    ||
||  0       ||    A/B        || normal   ||     3    ||
||  0       ||    B          || normal   ||     3    ||
|||||||| '''table A1''' ||

the v1 editor starts the update with open root:

|| op-depth || local-relpath || presence     || revision ||
||  0       ||               || incomplete   ||     4    ||
||  0       ||    A          || normal       ||     3    ||
||  0       ||    A/f        || normal       ||     3    ||
||  0       ||    A/B        || normal       ||     3    ||
||  0       ||    B          || normal       ||     3    ||
|||||||| '''table A2''' ||

then open directory A:

|| op-depth || local-relpath || presence     || revision ||
||  0       ||               || incomplete   ||     4    ||
||  0       ||    A          || incomplete   ||     4    ||
||  0       ||    A/f        || normal       ||     3    ||
||  0       ||    A/B        || normal       ||     3    ||
||  0       ||    B          || normal       ||     3    ||
|||||||| '''table A3''' ||

then open file/close file A/f:

|| op-depth || local-relpath || presence     || revision ||
||  0       ||               || incomplete   ||     4    ||
||  0       ||    A          || incomplete   ||     4    ||
||  0       ||    A/f        || normal       ||     4    ||
||  0       ||    A/B        || normal       ||     3    ||
||  0       ||    B          || normal       ||     3    ||
|||||||| '''table A4''' ||

then close directory A:

|| op-depth || local-relpath || presence     || revision ||
||  0       ||               || incomplete   ||     4    ||
||  0       ||    A          || normal       ||     4    ||
||  0       ||    A/f        || normal       ||     4    ||
||  0       ||    A/B        || normal       ||     3    ||
||  0       ||    B          || normal       ||     3    ||
|||||||| '''table A5''' ||

then close directory for the root:

|| op-depth || local-relpath || presen   || revision ||
||  0       ||               || normal   ||     4    ||
||  0       ||    A          || normal   ||     4    ||
||  0       ||    A/f        || normal   ||     4    ||
||  0       ||    A/B        || normal   ||     3    ||
||  0       ||    B          || normal   ||     3    ||
|||||||| '''table A6''' ||

then close edit for the root:

|| op-depth || local-relpath || presen   || revision ||
||  0       ||               || normal   ||     4    ||
||  0       ||    A          || normal   ||     4    ||
||  0       ||    A/f        || normal   ||     4    ||
||  0       ||    A/B        || normal   ||     4    ||
||  0       ||    B          || normal   ||     4    ||
|||||||| '''table A7''' ||

We don't yet know all the details of the v2 editor update but it is likely that the modify
file A/f call will change the original single-revision tree into:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || normal   ||     3    ||
||  0       ||    A/f        || normal   ||     4    ||
||  0       ||    A/B        || normal   ||     3    ||
||  0       ||    B          || normal   ||     3    ||
|||||||| '''table A8''' ||

and then the complete call will update the rest of the tree to revision 4 giving table A7.


= Delete and Commit =

Start with a single-revision tree:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || normal   ||     3    ||
||  0       ||    A/f        || normal   ||     3    ||
||  0       ||    A/B        || normal   ||     3    ||
|||||||| '''table B1''' ||

Delete A/f, the revision of the base-deleted node has no meaning:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || normal   ||     3    ||
||  0       ||    A/f        || normal   ||     3    ||
||  0       ||    A/B        || normal   ||     3    ||
||  2       ||    A/f         || base-deleted ||     ||
|||||||| '''table B2''' ||

Delete A, subsuming A/f:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || normal   ||     3    ||
||  0       ||    A/f        || normal   ||     3    ||
||  0       ||    A/B        || normal   ||     3    ||
||  1       ||    A          || base-deleted ||      ||
||  1       ||    A/f        || base-deleted ||      ||
||  1       ||    A/B        || base-deleted ||      ||
|||||||| '''table B3''' ||

Commit, once again the revision of the not-present node has no meaning:

|| op-depth || local-relpath || presence || revision ||
||  0       ||               || normal   ||     3    ||
||  0       ||    A          || not-present ||       ||
|||||||| '''table B4''' ||

After the commit the parent of the deleted node is still at the old revision because the commit
did not modify that directory.

Mime
View raw message