:orphan:

hg unshelve
===========

restore a shelved change to the working directory
-------------------------------------------------

This command accepts an optional name of a shelved change to
restore. If none is given, the most recent shelved change is used.

If a shelved change is applied successfully, the bundle that
contains the shelved changes is moved to a backup location
(.hg/shelve-backup).

Since you can restore a shelved change on top of an arbitrary
commit, it is possible that unshelving will result in a conflict
between your changes and the commits you are unshelving onto. If
this occurs, you must resolve the conflict, then use
``--continue`` to complete the unshelve operation. (The bundle
will not be moved until you successfully complete the unshelve.)

(Alternatively, you can use ``--abort`` to abandon an unshelve
that causes a conflict. This reverts the unshelved changes, and
leaves the bundle in place.)

If bare shelved change (without interactive, include and exclude
option) was done on newly created branch it would restore branch
information to the working directory.

After a successful unshelve, the shelved changes are stored in a
backup directory. Only the N most recent backups are kept. N
defaults to 10 but can be overridden using the ``shelve.maxbackups``
configuration option.

.. container:: verbose

   Timestamp in seconds is used to decide order of backups. More
   than ``maxbackups`` backups are kept, if same timestamp
   prevents from deciding exact order of them, for safety.

   Selected changes can be unshelved with ``--interactive`` flag.
   The working directory is updated with the selected changes, and
   only the unselected changes remain shelved.
   Note: The whole shelve is applied to working directory first before
   running interactively. So, this will bring up all the conflicts between
   working directory and the shelve, irrespective of which changes will be
   unshelved.
