Differences between revisions 39 and 40
Revision 39 as of 2013-08-26 07:39:19
Size: 4127
Comment: spam
Revision 40 as of 2013-11-07 19:21:58
Size: 867
Editor: mpm
Comment:
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.'''
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''' ||
|| 2.7.x - || [[https://bitbucket.org/astiob/hgshelve/commits/62eece7dd02f|62eece7dd02f]] or later ||
|| 2.2.x - 2.6.x || [[https://bitbucket.org/astiob/hgshelve/commits/53dbf2e68dc6|53dbf2e68dc6]] to [[https://bitbucket.org/astiob/hgshelve/commits/f482f58b8054|f482f58b8054]] ||
|| 1.9.x - 2.1.x || [[https://bitbucket.org/astiob/hgshelve/commits/53dbf2e68dc6|53dbf2e68dc6]] to [[https://bitbucket.org/astiob/hgshelve/commits/80217a869c9b|80217a869c9b]] ||
|| 1.6.x - 1.8.x || [[https://bitbucket.org/astiob/hgshelve/commits/41e13e800fb6|41e13e800fb6]] to [[https://bitbucket.org/astiob/hgshelve/commits/3d7a2a3ae9a5|3d7a2a3ae9a5]] ||
|| 1.5.x || [[https://bitbucket.org/astiob/hgshelve/commits/d95c583611f8|d95c583611f8]] ||
|| 1.4.x || [[https://bitbucket.org/astiob/hgshelve/commits/276d8083dc3b|276d8083dc3b]] ||
|| 1.3.x || [[https://bitbucket.org/astiob/hgshelve/commits/18815655993b|18815655993b]] to [[https://bitbucket.org/astiob/hgshelve/commits/3920be7ffb42|3920be7ffb42]] ||
|| 1.1.x - 1.2.x || [[https://bitbucket.org/astiob/hgshelve/commits/7090a3ed2da7|7090a3ed2da7]] ||
|| < 1.1.x || [[https://bitbucket.org/astiob/hgshelve/commits/ef85a6331d31|ef85a6331d31]] ||

The source repository has tags denoting the last changesets compatible with particular versions of Mercurial.
The shelve extension lets you set the changes in your working directory aside temporarily and restore them.
Line 41: 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
hgshelve=
Line 66: Line 33:
Temporarily stash away changes. You can select the exact hunks of changes you want to shelve. Temporarily stash away changes.
Line 69: Line 36:
hg shelve --all hg shelve --list
Line 72: Line 39:
Temporarily stash away changes. All hunks will automatically be selected. List all existing shelves.
Line 78: Line 45:
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.

{{{
hg shelve --name myshelf
}}}

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
}}}
Get the changes back into the working directory.
Line 126: Line 48:
 * ThirdPartyShelveExtension

Shelve Extension

This extension is distributed with Mercurial 2.8 and later.

Author: Bryan O'Sullivan

Current maintainer: Facebook

1. Overview

The shelve extension lets you set the changes in your working directory aside temporarily and restore them.

2. Configuration

Configure your .hgrc to enable the extension by adding following lines:

[extensions]
hgshelve=

3. Usage

(this is only a description of the basic usage)

hg shelve

Temporarily stash away changes.

hg shelve --list

List all existing shelves.

hg unshelve

Get the changes back into the working directory.

4. See also


CategoryExtensionsByOthers

ShelveExtension (last edited 2020-07-05 06:29:48 by DanKurtz)