<?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. 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.8/">WinMerge 2.16.8 (64 bit)</ulink> 
		supports Windows 7 and later. It runs on 64 bit Windows.</para>
	  </listitem>
	  <listitem>
	    <para><ulink url="https://sourceforge.net/projects/winmerge/files/stable/2.16.8/">WinMerge 2.16.8 (32 bit)</ulink> 
		supports Windows XP SP3 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.16.0/">WinMerge 2.16.0</ulink> 
		supports Windows XP SP3 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>
    <para></para>
    <note>
      <para>The installer requires Administrator user privileges. If you don't have admin user privileges, you can install
      WinMerge by unzipping from an archive file (see <xref
      linkend="InstallFromArchive" />) or by using per-user installer (WinMerge-x.x.x-x64-PerUser-Setup.exe).</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 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</primary>
              </indexterm></term>

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

          <varlistentry>
            <term>32-bit WinMerge ShellExtension<indexterm>
                <primary>Shellextension</primary>
              </indexterm></term>

            <listitem>
              <para>The option enables you to launch WinMerge directly from Windows Explorer, comparing items that you have selected there.</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 (Free hex editor)</term>

            <listitem>
              <para>Frhed enable you to show files in hex format.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>WinIMerge (Image Diff/Merge)</term>

            <listitem>
              <para>WinIMerge enables you to show the differences between image files.</para>
            </listitem>
          </varlistentry>

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

            <listitem>
              <para>Install it if you want to compare the files contained in a compressed file without having to decompress them manually.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>GnuWin32 Patch for Windows/HTML Tidy/jq</term>

            <listitem>
              <para>Install commands used by plugins.</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>
        </variablelist>

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

      <listitem>
        <simpara>In the 3-way merge wizard page, register WinMerge
        as 3-way merge tool for TortoiseSVN/Git.</simpara>

        <variablelist>
          <varlistentry>
            <term>Register WinMerge as a 3-way merge tool<indexterm>
                <primary>3-way merge tool</primary>
              </indexterm></term>

            <listitem>
              <para>Register WinMerge as 3-way merge tool for
              TortoiseSVN/Git.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Merge at right pane</term>

            <listitem>
              <para>Merge at right pane.</para>
            </listitem>
          </varlistentry>


          <varlistentry>
            <term>Merge at center pane</term>

            <listitem>
              <para>Merge at center pane.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Merge at left pane</term>

            <listitem>
              <para>Merge at left pane.</para>
            </listitem>
          </varlistentry>

          <varlistentry>
            <term>Auto-merge at startup time</term>

            <listitem>
              <para>Optionally, disable the option <guilabel>Auto-merge at
            startup time</guilabel>.</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>
      <para></para>
      </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>
