On Mon, Jul 10, 2017 at 2:59 PM, Julian Foad <julian_at_assembla.com> wrote:
> Dear Subversion Developers,
> I am delighted to announce that I am working with Assembla to develop
> shelving and checkpointing functionality in Subversion. These have
> been on the wish list for many years, and are becoming ever more in
> demand since the popularity of git is making more users appreciate the
> benefits of local operations.
> Based on our many discussions in the past, along with a fresh look at
> how other VCS's implement these features, I have written down the
> requirements and started working on a design in the document
> Shelving-Checkpointing Dev . I will follow up with an HTML email
> containing a copy of today's version. I invite you to leave comments
> directly in Google Docs, or send them by reply here, as you prefer.
> I will be the project lead on this within Assembla. I will regularly
> demonstrate small increments of functionality, which will also act as
> calls for feedback. We want to keep the scope quite small to get it
> done as quickly as possible.
> Please read through and if you are able to contribute with any
> suggestions or practical help, that would be wonderful. Thanks!
> - Julian
>  Shelving-Checkpointing Dev doc. (J Foad)
That's great news! I hope this will give Subversion some much needed
extra momentum (together with the tree conflict resolution
improvements of 1.10). Indeed, these "local / offline" features have
been on many people's wish list for a long time.
I've quickly scanned your google docs, but have to go through them in
some more detail. I'll try to dig into them and give some feedback if
One thing that crossed my mind: a nice additional feature that
probably could be built on top of shelving would be "partial commit"
(committing only some hunks out of a modified file). I've recently
looked up past discussions about this, in response to a post on
users@. See my response with a lot of references here:
(For the "partial commit" feature, start reading below "Is there an
option to inspect each file further line-by-line for lines that have
changed to either be selected or excluded from the commit?")
As I explained in that post, TortoiseSVN has implemented this in some
way with what they call "restore after commit" .
So I imagine we could do the same by (1) making the user select some
lines he wants to commit; (2) shelve the modifications that were not
selected; (3) commit; (4) unshelve. We even have a command line UI
(sort of) for selecting lines out of a diff, namely the UI stsp
created for handling text conflicts interactively.
Just a thought ... Of course fleshing out the fundamentals of the
Shelving and Checkpointing features in the first place will be most
Received on 2017-07-12 16:04:34 CEST