<?xml version="1.0" encoding="UTF-8"?>
<article id="Install">
  <title>Getting and installing WinMerge<indexterm>
      <primary>installing WinMerge</primary>
    </indexterm></title>

  <para>WinMerge can be installed using the installer or by unzipping files from
  an archive. Using the installer is the recommended method.</para>

  <section>
    <title>Getting files</title>

    <para>The latest release can be always downloaded from the WinMerge home
    page: <ulink url="https://winmerge.org/">WinMerge.org</ulink>. Note that
    delays can occur in updating home pages for the latest releases, but the
    project status page at <ulink
    url="https://sourceforge.net/projects/winmerge/">SourceForge.net</ulink>
    shows the latest files. There is also a mailing list for release
    announcements. Stable releases are also available in several file download
    sites.</para>
  </section>

  <section>
	<title>Compatibility</title>
	
	<itemizedlist>
	  <listitem>
	    <para><ulink url="https://sourceforge.net/projects/winmerge/files/stable/2.16.0/">WinMerge 2.16.0</ulink> 
		supports Windows XP and later. It runs on both 32 bit and 64 bit Windows.</para>
	  </listitem>
	  <listitem>
	    <para><ulink url="https://sourceforge.net/projects/winmerge/files/stable/2.14.0/">WinMerge 2.14.0</ulink> 
		was the last version to support Windows 2000.</para>
	  </listitem>
	  <listitem>
	    <para><ulink url="https://sourceforge.net/projects/winmerge/files/stable/2.12.4/">WinMerge 2.12.4</ulink> 
		was the last version to support Windows 95, 98, ME and NT.</para>
	  </listitem>
	  <listitem>
	    <para>WinMerge is not supported on Windows RT.</para>
	  </listitem>
	</itemizedlist>
  </section>
  
  <section id="Installing_usinginstaller">
    <title>Using the installer (recommended)</title>

    <note>
      <para>The installer requires Administrator user privileges in Windows
      2000 or newer. If you don't have admin user privileges, you can install
      WinMerge by unzipping from an archive file (see <xref
      linkend="InstallFromArchive" />).</para>
    </note>

    <para>Using the installer is recommended for most users. The installer
    prompts for the location where WinMerge is installed. It then installs the
    files, configures the shell integration, and adds WinMerge to the Start
    menu. To install WinMerge:</para>

    <orderedlist>
      <listitem>
        <simpara>Start the installer executable (usually named
        <filename>WinMerge-<replaceable>version</replaceable>-setup.exe</filename>).</simpara>
      </listitem>

      <listitem>
        <simpara>Click <guibutton>Next</guibutton> in the Welcome
        screen.</simpara>
      </listitem>

      <listitem>
        <simpara>Click <guibutton>Next</guibutton> in the License Agreement
        screen.</simpara>
      </listitem>

      <listitem>
        <simpara>In the Select Destination Location page, accept the location
        for WinMerge or, if you choose another location, we recommend that you
        install WinMerge in its own folder. Click
        <guibutton>Next</guibutton>.</simpara>
      </listitem>

      <listitem>
        <simpara>In the Select Components page, choose one of the preconfigured
        installations in the top control. We recommend the
        <guilabel>Typical</guilabel> configuration for most users. The lower box
        shows all the available components. You can modify the default
        configuration by checking or unchecking components. For example, if you
        want to use a WinMerge localization for a different language than
        English, select the <guilabel>Languages</guilabel> component.</simpara>

        <variablelist>
          <varlistentry>
            <term>WinMerge core files<indexterm>
                <primary>WinMerge executables, Unicode and ANSI</primary>
              </indexterm></term>

            <listitem>
              <para>WinMerge executable, Help, and other needed files. Cannot be
              unchecked.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Filters</term>

            <listitem>
              <para>File filter files enable you to narrow the scope of
              comparisons.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Plugins</term>

            <listitem>
              <para>WinMerge plugins are custom dlls or scriptlets, written in
              the COM API, that you can use to preprocess data before a
              comparison.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Frhed</term>

            <listitem>
              <para>TBD</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>WinIMerge</term>

            <listitem>
              <para>TBD</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Archive Support</term>

            <listitem>
              <para>TBD</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>GnuWin32 Patch for Windows</term>

            <listitem>
              <para>TBD</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Languages</term>

            <listitem>
              <para>WinMerge translation files. If you want to configure
              WinMerge to use a different language than English, expand this
              item and choose one or more available translations. The installer
              creates a Languages subfolder in the WinMerge folder, containing a
              *.po translation file for each of your selections. After
              installation, you can open WinMerge and change its localization to
              one of the translation file languages. See <xref
              linkend="Locales" /> for details.</para>
            </listitem>
          </varlistentry>
        </variablelist>

        <para>Click <guibutton>Next</guibutton>.</para>
      </listitem>

      <listitem>
        <simpara>In the Select Start Menu Folder page, configure WinMerge
        shortcuts.</simpara>

        <itemizedlist>
          <listitem>
            <para>Accept the default setting to create a program shortcut, or
            specify a different folder.</para>
          </listitem>

          <listitem>
            <para>Optionally, check the option, <guilabel>Don't create a Start
            Menu folder</guilabel>.</para>
          </listitem>
        </itemizedlist>

        <para>Click <guibutton>Next</guibutton>.</para>
      </listitem>

      <listitem>
        <para>In the Select Additional Tasks page, specify any additional
        tasks:<indexterm>
            <primary>integration</primary>

            <secondary>with version control system</secondary>
          </indexterm><indexterm>
            <primary>VCS</primary>

            <see>version control systems</see>
          </indexterm></para>

        <variablelist>
          <varlistentry>
            <term>Enable Explorer context menu integration</term>

            <listitem>
              <indexterm>
                <primary>integration</primary>

                <secondary>with Windows shell</secondary>
              </indexterm>

              <indexterm>
                <primary>Windows shell integration</primary>
              </indexterm>

              <para>Enables you to <link linkend="OpenPaths_shell-integ">launch
              WinMerge compare operations from Windows Explorer</link> (this
              integration can be enabled or disabled later in WinMerge
              options).</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Add WinMerge folder to your system path</term>

            <listitem>
              <para>Adds the WinMerge installation folder to your system's Path
              environment variable.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Integrate with TortoiseCVS<indexterm>
                <primary>TortoiseCVS integration</primary>
              </indexterm></term>

            <listitem>
              <para>Sets WinMerge to be the TortoiseCVS diff application.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Integrate with TortoiseSVN<indexterm>
                <primary>TortoiseSVN integration</primary>
              </indexterm></term>

            <listitem>
              <para>Sets WinMerge to be the TortoiseSVN diff application.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Integrate with TortoiseGit<indexterm>
                <primary>TortoiseGit integration</primary>
              </indexterm></term>

            <listitem>
              <para>Sets WinMerge to be the TortoiseGit diff application.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Create a Desktop shortcut</term>

            <listitem>
              <para>Adds the WinMerge shortcut to your Windows Desktop.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Create a Quick Launch shortcut</term>

            <listitem>
              <para>Adds the WinMerge shortcut to the Windows Quick Launch
              bar.</para>
            </listitem>
          </varlistentry>
        </variablelist>

        <para>Click <guibutton>Next</guibutton>.</para>
      </listitem>

      <listitem>
        <simpara>In the Ready to Install page, verify your install selections.
        If necessary, click <guibutton>Back</guibutton> to change anything in a
        previous page. When you are sure that you are ready to proceed, click
        <guibutton>Install</guibutton>.</simpara>
      </listitem>

      <listitem>
        <simpara>After the installer has copied files, the final screen appears.
        Using the two check boxes, confirm whether the created WinMerge Start
        menu folder should be opened, and whether the WinMerge application
        should be started.</simpara>
      </listitem>
    </orderedlist>
  </section>

  <section id="InstallFromArchive">
    <title>Installing from an archive<indexterm>
        <primary>archive, installing WinMerge from</primary>
      </indexterm></title>

    <para>WinMerge is pretty much independent of other system components. It is
    not tightly integrated with Windows, and does not use many DLLs.</para>

    <para>Archive files have the correct folder structure. WinMerge should be
    unzipped preserving this folder structure in the destination folder. For
    example, the root folder created under <filename
    class="directory">C:\Program Files\</filename> has the name, <filename
    class="directory">WinMerge-<replaceable>version</replaceable></filename>
    (for example, <filename class="directory">WinMerge-2.6.0</filename>). You
    can rename this folder or copy its files to another folder (preserving the
    folder structure!).</para>

    <para>After the files are unzipped, WinMerge is ready to run! Shell
    integration and archive integration may need additional steps, as described
    in the next section.</para>
  </section>

  <section>
    <title>Enabling Windows Explorer shell integration without the installer
    <indexterm>
        <primary>integration</primary>

        <secondary>with Windows shell</secondary>
      </indexterm><indexterm>
        <primary>Windows shell integration</primary>
      </indexterm></title>

    <para>If you do not use the install program and you want to enable Windows
    Explorer shell integration, you must register the shell integration DLL
    (<filename>ShellExtension*.dll</filename>) separately.</para>

    <note>
      <para>Installing shell integration requires Administrator user
      privileges.</para>
    </note>

    <para>Open WinMerge and using the <xref
    linkend="Configuration_shell-integ" /> in the Options window. In the
    Options window use the <guibutton>Register shell extension</guibutton>
    or <guibutton>Unregister shell extension</guibutton> buttons.</para>
  </section>
</article>
