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

Re: Checkpointing v1 design -- terminology

From: Julian Foad <julianfoad_at_apache.org>
Date: Fri, 3 Nov 2017 21:51:37 +0000

Branko Čibej wrote:
>>   * main commands are 'checkpoint' to save a new version and
>> 'rollback' to revert to version N
> The main issue I have with this is that "checkpoint" is not a verb. (I
> know, neither are 'changelist' or 'auth').
> How about 'save' (to create a savepoint) and 'restore' instead?
> As to why I'm nitpicking at this point: whatever we choose will be
> pretty much set in stone, in the UI and the API, for the conceivable future.

Thanks for helping with the terminology. I agree it's important.

The prototype CLI I'm working on (in the 'shelve-checkpoint' branch)
actually has 'svn checkpoint save' and 'svn checkpoint rollback'. Do you
think mean to suggest plain 'svn save' and 'svn restore'? I'm not sure
about that. They could deserve to be first-class 'svn' commands if we
consider them first-class companions to 'commit', 'revert' and 'diff'.

The analogy to 'save' a file or the work in almost any application is
apt. (For the converse we should then consider 'open' or 'load', but
neither of these sound good.)

Saving the work-in-progress is also like a deferred not-quite commit, so
some variant of the 'commit' command such as 'svn commit [--]save' might
be appropriate.

A reason for choosing a noun (phrase) such as 'checkpoint', 'savepoint',
'changelist' or 'changeset' followed by a verb is to allow us to add
verbs without cluttering the main command name space. I am thinking for
example that we might want to 'send' this change to a review system or
'commit' it to the svn server (ok we'd use 'svn commit <something>' for
that) or export it to a patch or email (git format-patch). The main
actions on a Perforce changelist are done by first-class commands 'p4
submit', 'p4 shelve', etc. while the 'p4 change[list]' command has
(option-letter) verbs for 'input' and 'output' actions.

Any suggestions for the 'shelve' terminology problem? Change to 'stash'
and incur false expectations based on git stash? Is there something else
that, like 'stash', can be used as a noun and a verb and sounds good?

- Julian
Received on 2017-11-03 22:51:44 CET

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