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

Re: A rational svn shelve/checkpoint CLI

From: Julian Foad <julianfoad_at_apache.org>
Date: Mon, 8 Jan 2018 15:29:45 +0000

Stefan Sperling wrote:
> On Mon, Jan 08, 2018 at 02:34:31PM +0000, Julian Foad wrote:
>>>>   svn save            -> svn shelf-save
>>>>   svn shelve          -> svn shelf-shelve
>>>>   svn unshelve        -> svn shelf-unshelve
>>>>   svn shelves         -> svn shelf-shelves
>>>
>>>
>>> This naming doesn't make any sense to me. Using a word root in the same
>>> command as both a noun and a verb runs counter to my notions of proper
>>> grammar. It doesn't look right. The following would be better:
>>>
>>>     shelf-save, shelf-restore, shelf-list, shelf-log, shelf-drop,
>>> shelf-diff.[*]
>>
>> Thanks for your thoughts.
>>
>> You missed out the 'shelve' command (which is like 'save' but reverts the
>> modifications) which is probably the most difficult one to accommodate. What
>> do you propose for that? If you intend 'save' to include the revert then
>> what do propose for the form that doesn't revert (that is, form that creates
>> another save-point/check-point)?
>>
>> I considered using the word 'restore'. It is fine in the context of
>> 'shelf-restore' but because of considering aliases I went for 'unshelve' as
>> the better one-word name, and let the two-word construction be ugly. I also
>> considered 'svn unshelve' as an alias with 'svn shelf-restore' as the
>> two-word form.
>>
>> Similarly for 'shelves' vs. 'list', with an additional consideration here
>> that 'svn list' is already a command with a different meaning, a meaning
>> that could also usefully be applied to a shelf.
>
> How about a combination of new subcommands for actions which
> tranfer working copy state from/to the shelf (used frequently),
> and just one subcommand with options for management of the
> shelf itself (used less frequently), like:
>
> svn shelve
> svn unshelve
> svn shelf --list
> svn shelf --drop
> svn shelf --diff/--show

That's a totally reasonable approach, and is similar to (not exactly the
same as) what's currently implemented on trunk and on shelve-checkpoint
branch.

FWIW you missed out 'svn save' (create a checkpoint, don't revert from WC).

The discussion of syntax for referring to a particular shelf and version
is perhaps the more interesting part of the whole discussion; I would
welcome any thoughts on that part.

- Julian
Received on 2018-01-08 16:29:51 CET

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