Shelving: beyond text changes
From: Julian Foad <julian_at_assembla.com>
Date: Wed, 1 Nov 2017 10:58:58 +0000
Shelving v1 (as in what I have done so far) supports text changes only.
== What next? ==
Several possible directions:
* Missing Support in Shelving (binary files, copies/moves, dirs)
=== Missing Support in Shelving ===
To move Shelving from a "starting point" to "fair usability" we will
binary files (and binary property values)
See the "Straight Ahead" section below for details.
=== Checkpointing ===
Initial conversations on Checkpointing were headed in the direction of
The latest thinking on Checkpointing was that the quickest way to start
'foo-1.patch' 'foo-2.patch' etc.
'svn checkpoint' increments the suffix number on the last used
No support for commit-all-as-separate-commits, nor rebasing after 'svn
An initial version of this could be done in as little as ~2 weeks.
=== Integration with Changelists ===
The idea of a Change-Set is currently split 3 ways in Subversion:
=== Supporting Cloud-based Code Review Systems ===
Paul Hammant has noted how years ago Google got started building a
=== Alternative Storage ===
An alternative is to store shelved changes in the same way as the WC
* speed & space efficiency
The "missing support" in shelving (binary files, copies and moves,
Instead, the work is in extending the WC infrastructure. I believe the
optional or compressed pristines (a separate wish-list feature)
== The "Straight ahead" implementation of Missing Support in Shelving ==
The "Straight ahead" route is to Enhance "svn diff" and "svn patch"
binary files (moderate effort, say ~4 weeks)
switch to 'git diff' mode
copies and moves (larger effort, more uncertainty)
mkdir/rmdir/dir-props (moderate effort, say ~4 weeks)
invent a syntax (probably like that for a symlink or empty file)
mergeinfo changes (smaller effort, say ~1 weeks)
implement in 'patch': connect existing mergeinfo parser to make
Note: patch files are still inherently a sub-optimal design for large
This is an archived mail posted to the Subversion Dev mailing list.