[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Shelve & checkpoint - next steps

From: Nathan Hartman <hartman.nathan_at_gmail.com>
Date: Mon, 21 May 2018 22:47:48 -0400

On Mon, May 21, 2018 at 12:01 PM Julian Foad <julianfoad_at_apache.org> wrote:

> Since http://svn.apache.org/r1831908 the "svn status" command can operate
> directly on a shelf.
>
> $ svn shelves -q
> foo
> $ svn st --cl svn:shelf:foo
> --- Changelist 'svn:shelf:foo':
> A D1
> A new-file
> MM config.txt
> D hello.txt
> A D1/D2
>
> The main WC state for those paths may be unmodified, or modified in a
> completely different way:
>
> $ svn st
> A + D1
> M config.txt
>
> This, to me, is the beginning of the more exciting side of shelving, when
> it is no longer doing just what a simple add-on script could do, but is
> becoming more deeply integrated into the work flows and commands that users
> are already familiar with.

Very nice! When I get some free cycles -- I'm assuming I have to build a
client myself to try it? :-)

An obvious CLI enhancement would be translate a new "--shelf=SHELF" to
> "--cl=svn:shelf:SHELF" and translate "--- Changelist 'svn:shelf:SHELF'" to
> "--- Shelf 'SHELF'".

I don't really see how changelists are related to shelves. I thought
changelists were a feature that should have been more descriptively named
"tags" or "filters" or "groups" or "attributes" or something. But I
probably misunderstand. But in any event I like this idea better:

An alternative is to extend the 'revision specifier' dimension instead, as
> I mentioned before, like this (made-up example, not implemented):
>

> $ svn diff --summarize -r foo
> --- Shelf 'foo':
> A D1
> A new-file
> MM config.txt
> D hello.txt
> A D1/D2

This makes sense to me because a shelf is like a potential future revision
(or one in the making). And this syntax is so much cleaner and shorter.
Plus this lends itself to things like:

$ svn diff -r 141:foo

to get the difference between an arbitrary revision and the contents of a
shelf. Whether that would be a nightmare to implement is another story
altogether, as is what to do when shelves become a series of checkpoints
and you want differences between arbitrary items in the series...

Anyway, my 2 cents for now.
Received on 2018-05-22 07:15:32 CEST

This is an archived mail posted to the Subversion Dev mailing list.