Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-3625

Commit shelving

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments



      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".


        Issue Links


          This comment will be Viewable by All Users Viewable by All Users


            Unassigned Unassigned
            cmpilato C. Michael Pilato




                Issue deployment