On Mon, May 21, 2018 at 12:01 PM Julian Foad <julianf...@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.