Differences between revisions 10 and 18 (spanning 8 versions)
Revision 10 as of 2009-05-25 13:53:44
Size: 1735
Editor: abuehl
Comment:
Revision 18 as of 2010-12-13 19:40:35
Size: 3181
Editor: DavidKramer
Comment: Added documentation on multiple shelves gleaned from reading the source code
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
Repository: [[http://freehg.org/u/tksoh/hgshelve/]] Repository: [[http://bitbucket.org/tksoh/hgshelve/]]
Line 17: Line 17:
The latest version of '''hgshelve''' requires Mercurial version 1.1 or later. Mercurial users of older version will need to 'downgrade' to older version of '''hgshelve''' at changeset [[http://freehg.org/u/tksoh/hgshelve/rev/ef85a6331d31|ef85a6331d31]]. || '''Mercurial''' || '''Shelve Extension''' ||
|| 1.6 and later || [[http://bitbucket.org/tksoh/hgshelve/changeset/41e13e800fb6/|41e13e800fb6]] or later||
|| 1.5.x and later || [[http://bitbucket.org/tksoh/hgshelve/changeset/d95c583611f8/|d95c583611f8]] or later||
|| 1.4.x and later || [[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]] ||
Line 35: Line 41:
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
}}}
Line 52: Line 64:
=== Shelves ===
Line 53: Line 66:
=== Hunks selection === Different changesets can be saves 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 changes 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 ===
Line 68: Line 109:

=== See also ===

AtticExtension

Shelve Extension

This extension is not distributed with Mercurial.

Author: TK Soh <teekaysoh@gmail.com>

Repository: http://bitbucket.org/tksoh/hgshelve/

Overview

The shelve extension provides the shelve command to lets 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.6 and later

41e13e800fb6 or later

1.5.x and later

d95c583611f8 or later

1.4.x and later

276d8083dc3b or later

1.3.x

18815655993b or later

1.1.x - 1.2.x

7090a3ed2da7

< 1.1.x

ef85a6331d31

Configuration

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

[extensions]
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

Usage

(this is only a description of the basic usage)

hg shelve

Temporarily stash away changes. You can select the exact hunks of changes you want to shelve.

hg unshelve

Get the changes back into the workdir.

Shelves

Different changesets can be saves 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 changes 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 also

AtticExtension


CategoryExtensionsByOthers

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