Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
trunk
Description
See the wiki pages: Shelving and Checkpointing
Developers often need to temporarily put aside in-process working copy changes to begin some other usually-short-lived task. You know the routine. You're halfway through the implementation of a medium-sized feature when – stop the presses! A customer just found a mission-critical bug in the app!
Current workarounds include:
- create a branch; switch to branch; commit unfinished primary task code to branch; switch back; handle and commit secondary task; merge from branch; resume primary task.
- use 'svn diff' to make a patchfile for primary task work; svn revert -R; handle and commit secondary task; use 'svn patch' to recreate local primary task mods; deal with all the stuff (copies and moves, directories, etc.) that 'patch' can't represent; resume primary task.
A better approach that avoids the need to create server branches and to marshal/unmarshal changes away from Subversion would be to support 'svn shelve/unshelve' commands, where "shelve" means "squirrel away my changes into the working copy metadata and revert them from the WORKING tree " and "unshelve" means "merge the changes I previously squirreled away back into my WORKING tree".
Attachments
Issue Links
- is a parent of
-
SVN-4745 Shelving: diff & WC APIs
-
- Closed
-
-
SVN-4758 Shelving 1.10: Unable to shelve changes when using custom diff-cmd
-
- Reopened
-
- is blocked by
-
SVN-4774 Shelving: presence of old 1.10 shelves breaks shelf-list
-
- Resolved
-
-
SVN-4776 Shelving: remove non-x-prefixed command aliases
-
- Resolved
-
-
SVN-4709 shelve: deleted file becomes 'replaced'
-
- Closed
-
- is duplicated by
-
SVN-2541 Introducing shelves
-
- Closed
-
- is related to
-
SVN-2948 Add quilt-like capabilities to svn's changelist feature
-
- Open
-
- relates to
-
SVN-4772 Shelving: Command-line completion of shelf names
-
- Open
-
-
SVN-3626 Commit checkpointing
-
- Open
-
1.
|
Shelving: from experimental to supported |
|
Open | Unassigned |
2.
|
Shelving: diff & WC APIs |
|
Closed | Julian Foad |
3.
|
Shelving: JavaHL bindings |
|
Open | Unassigned |
4.
|
Shelving: SWIG bindings |
|
Open | Unassigned |
5.
|
Shelving: support directories |
|
Closed | Unassigned |
6.
|
Shelving: support copy and move |
|
Closed | Unassigned |
7.
|
Shelving: refactor so checkpoints are built from a series of simple shelves |
|
Open | Unassigned |
8.
|
Shelving: Integrate with Changelists |
|
Open | Unassigned |
9.
|
Shelving: CLI syntax for accessing a shelf |
|
Open | Unassigned |
10.
|
Shelving: command-line output format of svn shelves / shelf-list |
|
Open | Unassigned |
11.
|
Shelving: remind user if old 1.10 shelves exist |
|
Open | Unassigned |
12.
|
Shelving: roll-back should not destroy newer versions by default |
|
Open | Unassigned |