Size: 3511
Comment: move ShelveExtension discussion to Talk page
|
Size: 1184
Comment: Expand hatnote: refer users of earlier versions to ThirdPartyShelveExtension
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
'''This extension is not distributed with Mercurial.''' | '''This extension is distributed with Mercurial 2.8 and later. If you are using an earlier version of Mercurial, see ThirdPartyShelveExtension.''' |
Line 6: | Line 6: |
''Author: TK Soh (<<MailTo(teekaysoh AT gmail DOT com)>>)'' | ''Author: Bryan O'Sullivan'' |
Line 8: | Line 8: |
''Current maintainer: Oleg Oshmyan (<<MailTo(chortos AT inbox DOT lv)>>)'' Repository: https://bitbucket.org/astiob/hgshelve |
''Current maintainer: Facebook'' |
Line 16: | Line 14: |
The shelve extension provides the `shelve` command to let you choose which parts of the changes in a working directory you'd like to set aside temporarily, at the granularity of patch hunks. You can later restore the shelved patch hunks using the `unshelve` command. The shelve extension has been adapted from Mercurial's RecordExtension. == Compatibility with Mercurial == || '''Mercurial''' || '''Shelve Extension''' || || 1.9.x || [[https://bitbucket.org/tksoh/hgshelve/changeset/53dbf2e68dc6|53dbf2e68dc6]] or later || || 1.6.x - 1.8.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/41e13e800fb6/|41e13e800fb6]] or later|| || 1.5.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/d95c583611f8/|d95c583611f8]] or later|| || 1.4.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/276d8083dc3b/|276d8083dc3b]] or later|| || 1.3.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/18815655993b/|18815655993b]] or later|| || 1.1.x - 1.2.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/7090a3ed2da7/|7090a3ed2da7]] || || < 1.1.x || [[http://bitbucket.org/tksoh/hgshelve/changeset/ef85a6331d31/|ef85a6331d31]] || |
The shelve extension lets you set your pending changes aside temporarily and restore them at a later time. It is useful in situations where you need to switch tasks, but are not ready to commit your current work. |
Line 37: | Line 22: |
hgshelve=/path/to/hgshelve.py }}} or place `hgshelve.py` in your 'hgext' directory and add the following lines: {{{ [extensions] hgext.hgshelve= }}} If you use the win32text extension, make sure you have the following lines in your ''`.hgrc`'' or ''`mercurial.ini`''. This enables automatic line-ending translation when applying patches. {{{ [patch] eol = auto |
shelve= |
Line 56: | Line 27: |
(this is only a description of the basic usage) |
Temporarily stash away changes: |
Line 62: | Line 32: |
Temporarily stash away changes. You can select the exact hunks of changes you want to shelve. |
List all existing shelves: |
Line 65: | Line 34: |
hg shelve --all | hg shelve --list |
Line 68: | Line 37: |
Temporarily stash away changes. All hunks will automatically be selected. |
Get the changes back into the working directory: |
Line 74: | Line 42: |
Get the changes back into the workdir. === Shelves === Different changesets can be saved to different shelves, by using the '''--name''' parameter. Without this parameter, the shelf name "default" is used. You can have any number of shelves at one time. |
Shelves can be given custom names (the default name is your active bookmark or branch): |
Line 82: | Line 44: |
hg shelve --name myshelf | hg shelve --name <name> hg unshelve <name> |
Line 85: | Line 48: |
Temporarily stash away changes to the shelf '''myshelf'''. Any changes already shelved to a different shelf will not be included. {{{ hg shelve --name myshelf --append }}} Add any changes to the existing shelf '''myshelf'''. {{{ hg unshelve --name myshelf }}} Get the changes stashed away to the shelf '''myshelf''' back into the workdir, and remove the shelf. Any changes shelved to a different shelf will not be included. {{{ hg shelve --list }}} List all current shelves. === Hunk selection === {{{ y - shelve this change n - skip this change s - skip remaining changes to this file f - shelve remaining changes to this file d - done, skip remaining changes and files a - shelve all changes to all remaining files q - quit, shelveing no changes ? - display help }}} |
See `hg shelve --help` for advance usage. |
Line 122: | Line 51: |
* ThirdPartyShelveExtension | |
Line 123: | Line 53: |
* [[/Talk|Talk]] page | |
Line 125: | Line 56: |
CategoryExtensionsByOthers | CategoryBundledExtension |
Shelve Extension
This extension is distributed with Mercurial 2.8 and later. If you are using an earlier version of Mercurial, see ThirdPartyShelveExtension.
Author: Bryan O'Sullivan
Current maintainer: Facebook
Contents
1. Overview
The shelve extension lets you set your pending changes aside temporarily and restore them at a later time. It is useful in situations where you need to switch tasks, but are not ready to commit your current work.
2. Configuration
Configure your .hgrc to enable the extension by adding following lines:
[extensions] shelve=
3. Usage
Temporarily stash away changes:
hg shelve
List all existing shelves:
hg shelve --list
Get the changes back into the working directory:
hg unshelve
Shelves can be given custom names (the default name is your active bookmark or branch):
hg shelve --name <name> hg unshelve <name>
See hg shelve --help for advance usage.