<type>documentation</type>
<domain>versioncontrol</domain>
<id>hg</id>
<title>Mercurial</title>
<date>$Date: 2006-05-24 22:53:07 -0400 (Wed, 24 May 2006) $</date>
<version>$Revision: 13098 $</version>
<product>pro+</product>

Wing's Mercurial integration requires the ``hg`` command line executable to be installed
separately from Wing. Please see https://www.mercurial-scm.org/ for information about
Mercurial. The ``hg`` executable may either be in your path or set with the `Version
Control > Mercurial > Mercurial Executable
<script:show_preferences_gui#prefname="versioncontrol.hg.executable">`__ preference.

The Mercurial integration defines the following commands, in addition to those documented in
`Common Version Control Operations <ref:versioncontrol/common-operations>`__:

**Resolve** marks merge conflicts in a file to be resolved, by running ``hg resolve -m``.

**Annotate** shows the revision number for every line in a file.

**Pull Changes** fetches changes from a remote repository to the local repository and optionally
updates the working directory.

**Update** updates the entire working directory with changes from the local repository.

**Push Changes** pushes changes in the local repository to a remote repository.

**Create Branch** creates a new named branch and switches to it.

**List Branches** lists all named branches.

**Switch Branch** switches to a selected named branch.

**Merge From Branch** merges changes from a selected branch into the working directory.

**Shelve** moves all local changes to shelved status and returns the working directory 
to unchanged status.

**Unshelve** brings changes previously shelved back into the working directory.

**List Shelves** lists all change sets that have been shelved.

**Rebase** moves changes that have been committed but not yet pushed to the tip of the
current branch. This may be used when Mercurial complains about multiple branch heads
during Push. It must be preceded with Pull to get the latest changes in the repository,
and then will merge pulled changes also into the working directory. This command may show
the merge tool configured in the ``.hgrc`` file, if there are conflicting changes and a
manual merge is necessary. It does not use Wing's integrated difference/merge tool
because that does not support three way merging.
