On 03.11.2017 22:51, Julian Foad wrote: > 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'?
No, the two-keyword approach is actually better. I've often wished we'd made our argument parser slightly more flexible in that respect, so that instead of svn command [options args] we could write svn [topic] command [options args] which would be useful for topics such as "(save|check)point", "changelist", "auth", "branch" and so on. I'm absolutely in favour of the second form for complex cases. [...] > 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. Precisely. +1 FWIW, the reason I'm slightly in favour of "savepoint" vs. "checkpoint" has been discussed before: the abbreviation "sp" is not taken yet, but "cp" is; I suspect it would save "power users" of the command line a ton of grief if they could write "svn sp s[quash] 0:-3" instead of "svn cp squash --from 0 --to -3" and then get a syntax error. :) > 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? IIUC the shelving prototype is a lot closer to Perforce's than Git's, right? Then thinking about shelves is better than about stashes. Why not do the same as with (save|check)points: the [topic] should be a noun, the [command] a verb, so: svn shelf save ... svn shelf restore ... I'm not sure about the abbreviation here ... "sh" sounds tempting but is also a well-known abbreviation for "shell". -- Brane