The hub for Assembla's ECVC enhancements to open-source Subversion software.
Shelving means setting your uncommitted changes aside, so that you can work on something else. Shelving is a fast, local, convenient way of creating and applying patches, similar in concept to 'git stash'.
From the central Wiki page Shelving and Checkpointing you can read about the rationale and the current limitations and possible extensions. You can add your comments in there too.
Shelving v1 is available in TortoiseSVN 1.10 and command-line Subversion 1.10. Shelving v1, based on patch files, supports basic kinds of changes including text file content and properties.
Recent developments of Shelving and Checkpointing are available in Cornerstone 4 and preview builds of command-line Subversion. Support for 'binary' files, and other improvements, are currently in development.
Go to https://www.assembla.com/subversion to download for Windows, MacOS or Linux.
-- or --
Build the current development version of Subversion or TortoiseSVN from source, following the normal build procedure of those projects.
Start with a version-controlled folder or file that contains some local (uncommitted) changes. Right-click; select TortoiseSVN->Shelve
.
Enter a name; click OK. Subversion makes a patch (like with the Create Patch
command) and saves the patch into .svn/shelves/NAME.patch
and reverts those changes from your local files. That is Shelving your local changes.
Then you can make other changes and shelve them with a different name.
You can restore the previously shelved changes back into your working files. Select TortoiseSVN->Unshelve
and select the name of the shelved change, click OK, and Subversion applies the patch (like using the Apply Patch
command) and removes the patch.
See also: Creating and Applying Patches in TortoiseSVN.
The command-line interface is documented in svn shelve --help
and svn unshelve --help
. For information about the development, and a comparison with git/hg/bzr/p4, see Shelving Command-Line UI Design.