************
Introduction
************

.. module:: introduction
	:synopsis: Introduce TortoiseHg and its various parts

What is TortoiseHg?
===================

TortoiseHg is a set of graphical tools and a shell extension for the
`Mercurial <http://mercurial.selenic.com/wiki/>`_ distributed revision control
system.

On Windows,
	TortoiseHg consists of a shell extension, which provides overlay
	icons and context menus in your file explorer, and a command line
	program named :file:`hgtk.exe` which can launch the TortoiseHg tools.
	Binary packages of TortoiseHg for Windows come with Mercurial and a
	merge tool and are thus completely ready for use "Out of the Box".

On Linux,
	TortoiseHg consists of a command line hgtk script and a Nautilus
	extension which provides overlays and context menus in your file
	explorer.  You must have Mercurial installed separately in order to
	run TortoiseHg on Linux.  TortoiseHg binary packages list Mercurial
	as a dependency, so it is usually installed for you automatically.

TortoiseHg is primarily written in Python and PyGtk (the Windows shell
extension being the notable exception).  The hgtk script and TortoiseHg
dialogs can be used on any platform that supports PyGtk, including Mac
OS X.


Installing TortoiseHg
=====================

On Windows
----------

TortoiseHg comes with an easy to use MSI installer.  You can always find
the most up to date release on our `website
<http://tortoisehg.bitbucket.org/download/windows.html>`_.
Double click on the installer file and follow the instructions.

After a first time install, a re-login is usually required to start the
icon overlays.

During upgrades, the installer will ask to close or restart any
applications that have loaded the TortoiseHg shell extension.  If you
allow those applications to be closed, the upgrade will not require a
reboot or logout.  If other users are logged in, or if there are
applications which cannot be shutdown, a reboot will be required to
complete the install.

.. note::
	If you have a legacy version of TortoiseHg installed, the 1.0
	installer will ask that you to remove it.  The uninstall can be
	initiated from the control panel or the start menu.

.. warning::
	The legacy uninstallers have a tendency to delete your user
	Mercurial.ini file, so backup your file before uninstalling the
	older TortoiseHg versions.  This is not a problem with the newer MSI
	packages.

All legacy TortoiseHg installers (before version 1.0) were built with
InnoSetup.  They installed a TortoiseOverlay package as a separate
application, so you always saw both TortoiseHg and TortoiseOverlay as
two applications in the *Add/Remove Programs* control panel program.
(On X64 platforms, there were two TortoiseOverlays, one for x86
processes and one of x64 processes).

The new MSI installers for TortoiseHg 1.0 include the TortoiseOverlay
packages as "merge modules" so they do not appear as separate
applications anymore.  It should be safe to uninstall the older
TortoiseOverlay applications from *Add/Remove Programs* after you
uninstall the legacy (<=0.9.3) TortoiseHg installer, unless you have
other Tortoise products that also used the separate TortoiseOverlay MSI
approach (TortoiseCVS or TortoiseBZR).

.. note::
	TortoiseOverlay is a shim package that allows multiple Tortoise
	style shell extension clients to share overlay slots.  This is
	necessary because even modern Windows platforms only support a
	limited number of overlay slots (11-14).  TortoiseOverlay
	packages are created by the TortoiseSVN developers.

To be completely safe, there are two approaches you can take:

1) Just leave the old TortoiseOverlay packages installed.  They do not
   harm anything.
2) Uninstall all the old TortoiseOverlay packages, then re-install all
   of your Tortoise products until they are all functional.



Language settings
^^^^^^^^^^^^^^^^^

The TortoiseHg user interface has been translated into many languages.
Language packs are not required since all available languages are
installed. Look in :file:`C:\\Program Files\\TortoiseHg\\locale` for the
available languages. To enable a language just set the environment
variable ``LANGUAGE`` to the desidered language, e.g. for italian
``set LANGUAGE=it``.

.. note::
	After setting LANGUAGE, if standard GUI elements like :guilabel:`OK`
	and :guilabel:`Apply` still appear in English, it means the
	TortoiseHg installer did not include translations of GTK+ for your
	locale.  This usually means the translation of TortoiseHg for your
	locale was incomplete at release time.

The Windows shell extension context menus get their translations from
the Windows registry.  Translations for many locales were installed
under :file:`C:\\Program Files\\TortoiseHg\\i18n\\cmenu`.  Select the
locale you would like to use, double-click on it, and confirm all
requests.

On Linux and Mac
----------------

The most recent Linux packages can be found on our `download
<http://tortoisehg.bitbucket.org/download/linux.html>`_ page.

For Mac OS X, no packages are available but you can run hgtk and all the
dialogs via the source install method. For details, see
`Mac OS X <http://bitbucket.org/tortoisehg/stable/wiki/MacOSX>`_.

.. note::
	If you install TortoiseHg from source, you need to add our
	contrib/mergetools.rc file to your HGRC path in some way.  One
	approach is to %include it from your ~/.hgrc file.

Language settings
^^^^^^^^^^^^^^^^^

The TortoiseHg tools use Python's
`gettext <http://docs.python.org/library/gettext.html>`_ library to
localize their text.  To get localized dialogs, it is recommended that
you set the LANGUAGE environment variable to your locale of choice.

.. vim: noet ts=4
