Julian Foad wrote:
'Roll back' means retrieving an old version of a shelved change and could be named like one or a permutation of these:

   svn unshelve --checkpoint=3 foo
   svn shelf restore foo@3
   svn revert --savepoint=3 --cl=foo
   svn changelist restore -v3 foo

(I am deliberately bringing 'changelist' into the mix, as I believe integration with 'changelist' is where we need to take this.)

The integration with changelists that I am thinking of is basically that changelist FOO corresponds to the working (unshelved) version of a shelved change named FOO. Unshelving or restoring FOO will apply the saved change FOO and assign the affected files to changelist FOO; and saving or shelving FOO will use the changelist FOO as the set of files to save or shelve.

With this changelist integration we could have... (I know we can't compatibly have exactly this syntax; see below for alternatives)...

Shelve = save and revert:
  svn cl shelve FOO

Checkpoint = save and don't revert:
  svn cl save FOO

Unshelve / restore / roll back (all possible names for same thing):
  svn cl unshelve [-v VERSION_NUM] FOO
  svn cl restore [-v VERSION_NUM] FOO
  (etc.)

Revert files in (active) changelist FOO:
  svn revert --cl=FOO  # existing syntax
  svn cl revert FOO

Commit the (possibly shelved) changelist FOO:
  svn commit --cl=FOO  # existing syntax
  svn cl commit FOO


Possible different ways to write the topic noun and the verb:

  svn clsave          FOO [PATH...]
  svn cl save         FOO [PATH...]
  svn cl --save       FOO [PATH...]
  svn changelist save FOO [PATH...]
  svn changelist-save FOO [PATH...]

  svn save       --cl=FOO [PATH...]


The key point I am making here is the "topic" we're talking about in these commands is the "changelist" rather than the "savepoint" which is merely a stored version of a changelist.

- Julian

Reply via email to