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
    XMLWordPrintableJSON

Details

    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

        Activity

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

          People

            Unassigned Unassigned
            cmpilato C. Michael Pilato

            Dates

              Created:
              Updated:

              Slack

                Issue deployment