Differences between revisions 1 and 37 (spanning 36 versions)
Revision 1 as of 2007-12-11 09:32:45
Size: 753
Comment: Initial explanation page for shelve extension.
Revision 37 as of 2013-08-05 22:56:01
Size: 4127
Editor: balticom-142-114-156
Comment: compatibility update for Mercurial 2.7
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Shelve extension = #pragma section-numbers 2
= Shelve Extension =

'''This extension is not distributed with Mercurial.'''

''Author: TK Soh (<<MailTo(teekaysoh AT gmail DOT com)>>)''

''Current maintainer: Oleg Oshmyan (<<MailTo(chortos AT inbox DOT lv)>>)''

Repository: https://bitbucket.org/astiob/hgshelve

<<TableOfContents>>

== Overview ==

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.

== Configuration ==

Configure your ''`.hgrc`'' to enable the extension by adding following lines:
Line 4: Line 40:
interactively select changes to set aside [extensions]
hgshelve=/path/to/hgshelve.py
}}}
Line 6: Line 44:
If a list of files is omitted, all changes reported by "hg status"
will be candidates for shelveing.
or place `hgshelve.py` in your 'hgext' directory and add the following lines:
Line 9: Line 46:
You will be prompted for whether to shelve changes to each
modified file, and for files with multiple changes, for each
change to use. For each query, the following responses are
possible:
{{{
[extensions]
hgext.hgshelve=
}}}
Line 14: Line 51:
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 shelve --all
}}}

Temporarily stash away changes. All hunks will automatically be selected.

{{{
hg unshelve
}}}

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 ===

{{{
Line 27: Line 125:
[http://www.nabble.com/-ANN--shelve-extension-td12696573.html Initial announcement message.] == See also ==
 * AtticExtension
 * [[/Talk|Talk]] page

----
CategoryExtensionsByOthers

Shelve Extension

This extension is not distributed with Mercurial.

Author: TK Soh (<teekaysoh AT gmail DOT com>)

Current maintainer: Oleg Oshmyan (<chortos AT inbox DOT lv>)

Repository: https://bitbucket.org/astiob/hgshelve

1. Overview

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.

2. Compatibility with Mercurial

Mercurial

Shelve Extension

2.7.x -

62eece7dd02f or later

2.2.x - 2.6.x

53dbf2e68dc6 to f482f58b8054

1.9.x - 2.1.x

53dbf2e68dc6 to 80217a869c9b

1.6.x - 1.8.x

41e13e800fb6 to 3d7a2a3ae9a5

1.5.x

d95c583611f8

1.4.x

276d8083dc3b

1.3.x

18815655993b to 3920be7ffb42

1.1.x - 1.2.x

7090a3ed2da7

< 1.1.x

ef85a6331d31

The source repository has tags denoting the last changesets compatible with particular versions of Mercurial.

3. 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

4. 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 shelve --all

Temporarily stash away changes. All hunks will automatically be selected.

hg unshelve

Get the changes back into the workdir.

4.1. 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.

4.2. 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

5. See also


CategoryExtensionsByOthers

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