DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
| operation | CLI syntax example | recipe |
|---|---|---|
| shelve and revert | svn shelve X [PATH...] | assert(any PATH is modified) patch-save(X, PATH...) # creates a new version patch-unapply(X) |
save new version ('checkpoint') | svn shelf-save X [PATH...] | assert(any PATH is modified) patch-save(X, PATH...) |
restore X [N] unshelve X | svn shelf-restore unshelve X [N] svn unshelve X | assert(not any patch-get-paths(X) is modified) # or warn or allow override patch-apply(X, N) patch-delete-versions-newer-than-N(X, N) |
| export to patch | svn shelf-diff X N | # export version N of shelf X as a patch |
| delete shelf | svn shelf-drop X | patch-delete-all-versions(X) |
| list shelves | svn shelf-list svn shelves | list-all-shelves() |
| list shelf versions | svn shelf-log X | list-shelf-versions(X) |
...
These possible extensions are not supported initially.
remember the order; 'unshelve' takes newest patch by default
once the base state is recorded, warn or otherwise try to avoid accidentally unshelving to a different branch or unrelated path
allow showing a shelf's content -- like 'svn log [-v] [--diff]', 'svn status', 'svn diff [--summarize]'
shelve: if no name given, automatically generate a name (so more like 'git stash')
use shelf's log message when committing
see the "Commit Log Message" discussion section belowabove
consider allowing restricting paths on 'apply' commandshandle conflicts better, using a proper merge rather than patching
when checkpointing, warn if PATH... excludes any paths that were in the previous version?
consider allowing restricting paths on 'apply' commands.
- once the base state is recorded: warn or otherwise try to avoid accidentally unshelving to a different branch or unrelated path[with changelists] path spec would be implied by changelist; any explicitly specified paths could be added to the changelist
Roll Forward, as in Undo/Redo
...