<?xml version="1.0" encoding="UTF-8"?>
<article id="Version_control">
  <title>ほかのツールと共にWinMergeを使用する<indexterm>
      <primary>integration</primary>
    </indexterm></title>

  <para>ファイルを比較することと、マージすることは、大きな変更を管理する上でよくあることです。
    そのような理由により、WinMergeは、それ単体で使用されるだけでなく、
    他のツールと連携しても使用されます。さらに、
    diffとマージユーティリティは、異なる特徴を提供するので、
    それは、時々、異なるツールを結合するのに便利です。
    このトピックは、他のツールと共に使用するための主な方法について説明しています。</para>

  <section>
    <title>コマンドインターフェース(CLI)を使用する</title>

    <para><xref linkend="Command_line" />で説明されている、コマンドライン・インタフェース(CLI)により、
      コマンド・プロンプト、スクリプト、または、他のツールやプログラムから、
      WinMergeを起動することができます。<!-- TODO: なんかよくわからない -->Basically, any
    program that allows you to call an external executable with at least one
    path, can be used to launch a WinMerge operation.</para>

    <para>ここにいくつかの例を示します</para>

    <itemizedlist>
      <listitem>
        <para>バッチファイルは、WinMergeを起動することができ、
          パラメータを対話的に指定することができます。</para>

        <literallayout>start "WinMerge" /B "C:\Program Files\WinMerge\WinMergeU.exe" /e /s /u /dl %3 /dr %5 %6 %7</literallayout>
      </listitem>

      <listitem>
        <para>Subversionクライアントは、次に示すように、外部のdiffプログラムを呼ぶことを許可しています。
        </para>

        <literallayout>$ svn diff --diff-cmd "C:\Program Files\WinMerge\WinMergeU.exe" -x "-dl -dr" myfile </literallayout>
      </listitem>
    </itemizedlist>

    <tip>
      <para>同様に、組み込みのdiffツールを含む、多くのGUIツール(バージョン管理システムのクライアントやIDE)は、
      それらのデフォルトのdiffツールの代わりにWinMergeを設定することが可能です。
      次のセクションは、TortoiseSVN、TortoiseCVS、ClearCaseで、
      このような方法でWinMergeを使う方法を説明しています。
      EclipseやPerforceなど他のツールは、それらのドキュメントを参照するか、
      インターネットで詳細や例を調べてください。</para>
    </tip>
  </section>

  <section id="VersionControl_vcs">
    <title>バージョン管理システムで、WinMergeを使う<indexterm>
      <primary>version control systems</primary>

        <secondary>integration with</secondary>
      </indexterm></title>

    <para>あなたは、二つの方法で、WinMergeが、2、3のサポートされているバージョン管理システム(VCS)と、
      協調し合うように設定できます。
     このセクションは、二つのタイプのVCS統合と、それぞれの例を説明しています。</para>

    <section>
      <title>WinMergeから、バージョン管理されているファイルをチェックアウトする</title>

      <indexterm>
        <primary>Visual Source Safeとの統合</primary>
      </indexterm>

      <para>WinMergeでファイルを保存した時、そのファイルが、ClearCase、または、
        Visual Source Safeでバージョン管理されている場合、
        WinMergeは、VCSのチェックアウトダイアログを表示することができます。
      これは、あなたがWinMergeで作業しながら、ファイルをチェックアウトするのを容易にします。
      しかしながら、WinMergeは、チェックイン、または、履歴ツールを提供していません。
      後で忘れずに、VCSインタフェースを使用してファイルをチェックしてください。</para>

    <para>この統合は、WinMergeインストール後に有効です。この統合を、
      有効、または、無効にするには、<menuchoice>
        <guimenu>編集(E)</guimenu>

        <guimenuitem>設定</guimenuitem>
      </menuchoice>をクリックします。バージョン管理統合ページを開き、
      適当なオプションを選択してください。</para>

  <example>
        <title>Visual Source Safeとの統合</title>

        <para>これは、VSS統合を使用して、サンプルファイルをチェックアウトする例です。</para>

    <orderedlist>
      <listitem>
        <para>左か右のターゲットがバージョン管理下にある、
          WinMergeの「ファイル、または、フォルダの比較」を起動してください。</para>
      </listitem>

      <listitem>
            <para>WinMerge中で、バージョン管理されているファイルを編集してください。</para>
      </listitem>

      <listitem>
        <para>変更を保存してください。WinMergeは、ファイルが読み取り専用であることを検知し、
          それがVisual Source Safeの管理下にあると推測します。
             WinMergeは、このように、Visual Source Safeのダイアログを表示します。
            </para>

        <mediaobject>
          <imageobject>
            <imagedata fileref="screenshots/sourcesafe1.png" format="PNG" />
          </imageobject>
        </mediaobject>
      </listitem>

      <listitem>
        <para>お使いのシステムに、一つより多くのVSSデータベースがある場合、
          <guilabel>データベース</guilabel>ドロップダウンリストの中から、
          正しいVisual Source Safeデータベースを選択してください。</para>
      </listitem>

      <listitem><!-- TODO: 一文目自信ない -->
        <para><guilabel>プロジェクト</guilabel>フィールドは、
          VSSデータベースパスに関係のある、選択されたファイルの場所を示しています。
          パスが正しいか検査してください。ほとんどのエラーは、
          間違ったプロジェクトパスが原因です。
          もしフォルダを変更したなら、プロジェクトパスの変更も忘れずに！</para>
      </listitem>

      <listitem>
        <para>必要なら、パスワードを入力してください。
          WinMergeは、現在のセッションのパスワードを記憶します。しかし、セキュリティのために、それは保存しません。
            したがって、セッションの間は、パスワードを再度タイプする必要はありません。
            しかし、WinMergeを開く度に、パスワードをタイプしなければなりません。
            </para>
      </listitem>

      <listitem>
        <para>任意で、これらのオプションの内、ひとつ、または、両方を有効にできます。</para>

        <itemizedlist>
          <listitem>
            <para><guilabel><!-- TODO: WinMerge日本語版を確認 -->Link to Destination VSS
                project</guilabel></para>
          </listitem>

          <listitem>
            <para><guilabel><!-- TODO: WinMerge日本語版を確認 -->Apply to all items</guilabel>.
              この操作は、フォルダ比較でファイルをコピーした時、
              ディレクトリ中の複数ファイルのチェックアウトを可能にします。</para>
          </listitem>
        </itemizedlist>
      </listitem>
    </orderedlist>

    <para>残念ながら、VSSは発生したエラーについての情報を、ほとんど提供しません。
      ある操作に失敗する場合、
      次の条件のうちのいくつかが原因かもしれません。</para>

    <itemizedlist>
      <listitem>
        <para>他のユーザが、排他アクセスで、
          ファイルをチェックアウトした。</para>
      </listitem>

      <listitem>
        <para>間違ったプロジェクトが選択されている。</para>
      </listitem>

      <listitem>
        <para>プロジェクト名を間違って入力した。</para>
      </listitem>

      <listitem>
        <para>不正なVSSパスを使用している。
          (例えば、<userinput>$/MyProject/res</userinput> は不正なパスです。)</para>
      </listitem>

      <listitem>
          <para>接続しているVSSサーバマシンが壊れている。
          </para>
      </listitem>
    </itemizedlist>
  </example>
    </section>

    <section>
      <title>WinMergeを、バージョン管理システムの、差分ツールとして使用する</title>

      <indexterm>
        <primary>TortoiseSVNとの統合</primary>
      </indexterm>

      <para>TortoiseSVN、TortoiseCVS、または、Rational ClearCase でファイル比較する際、
        VCSは、組込みの差分ツールの代わりに、WinMergeを起動することができます。
       この設定は、<link
      linkend="Installing_usinginstaller">WinMergeのインストール</link>の最中のみで可能です。</para>

      <example>
        <title>TortoiseSVNとの統合</title>

        <para>これは、WinMerge統合を使用した、TortoiseSVNでの比較操作のサンプルです。
        この統合は、TortoiseCVS と ClearCase
        も同じです。</para>

        <orderedlist>
          <listitem>
            <para>Windowsのエクスプローラ中で、チェックアウトしたSubversion作業コピーをナビゲートします。
            </para>
          </listitem>

          <listitem>
            <para>Subversionの管理下にあるファイル(大抵は、目立つTortoiseSVNアイコンで示されます)を、
            右クリックし、コンテキストメニューの
            <guimenu>TortoiseSVN</guimenu>をクリックしてください。</para>

            <itemizedlist>
              <listitem>
                <para>ファイルが修正されていない場合、
                  コンテキストメニューは、<guimenuitem><!-- TODO: 日本語版確認 -->前のバージョンと比較
                  </guimenuitem>のショートカットを含んでいます。このコマンドは、
                  チェックアウトされているバージョンと、リポジトリにチェックインされている、
                  前のバージョンを比較します。</para>
              </listitem>

              <listitem>
                <para>ファイルを変更している場合、コンテキストメニューは、同じ
                  <guimenuitem><!-- TODO: 日本語版確認 -->前のバージョンと比較</guimenuitem>
                  のショートカットと、それに加え、<guimenuitem><!-- TODO: 日本語版確認 -->比較</guimenuitem>のショートカットを含んでいます。
                このコマンドは、あなたの版と最新版(チェックアウトされている版)を比較します。
                それは、変更を加えた箇所をレビューするのに便利です。
                </para>
              </listitem>
            </itemizedlist>
          </listitem>

          <listitem>
            <para><guimenuitem><!-- TODO: 日本語版確認 -->前のバージョンと比較
              </guimenuitem>、または、<guimenuitem><!-- TODO: 日本語版確認 -->比較</guimenuitem>ショートカットのどちらかを選んでください。
              WinMergeのウィンドウが開き、ファイル比較ウィンドウに、
              目的のファイルのバージョンが読み込まれます。</para>
          </listitem>
        </orderedlist>

        <para><menuchoice>
            <guimenu>TortoiseSVN</guimenu>

            <guimenuitem>比較</guimenuitem>
          </menuchoice>のショートカットでは、ファイルシステムにある、
          Subversionで管理されていない二つのファイルの比較が可能です。
          <!-- FIXME: ここ自信ない -->WinMerge統合の方法を次に示します。</para>

        <orderedlist>
          <listitem>
            <para>Windowsのエクスプローラで、<keycap>Ctrl</keycap>を押しながら二つのファイルを選択し、
            右クリックします。</para>
          </listitem>

          <listitem>
            <para>コンテキストメニューから、<menuchoice>
                <guimenu>TortoiseSVN</guimenu>

                <guimenuitem>比較</guimenuitem>
              </menuchoice>を選択します。</para>

              <para>WinMergeウィンドウが開き、選択されたファイルが、
                ファイル比較ウィンドウに表示されます。</para>
          </listitem>
        </orderedlist>
      </example>

      <example>
        <title>Visual Studio Team Foundation Server integration</title>

        <para>You can manually set up WinMerge as the default tool to use for
		in Visual Studio to show differences in Team Foundation Server (TFS)
        Other version control systems can be set up in very similar ways.</para>

        <orderedlist>
          <listitem>
            <para>In Visual Studio, navigate to the 
			  <menuchoice>
                <guimenu>Tools</guimenu>

                <guimenuitem>Options...</guimenuitem>
              </menuchoice> menu.</para>
          </listitem>
		  
          <listitem>
            <para>Under <menuchoice>
                <guimenu>Source Control</guimenu>
              </menuchoice>, find the<menuchoice>
                <guimenu> Visual Studio Team Foundation Server</guimenu>
              </menuchoice> options.</para>
          </listitem>
		  
          <listitem>
            <para>Click the <guimenuitem>Configure User Tools...</guimenuitem> button.</para>
          </listitem>

          <listitem>
            <para>Click the <guimenuitem>Add...</guimenuitem> button.</para>
          </listitem>
		  
		  <listitem>
            <mediaobject>
              <imageobject>
                <imagedata fileref="screenshots/tfs_configure.png" format="PNG" />
              </imageobject>
            </mediaobject>
			<para>Type in the following options in the Configure Tool.</para>
			<itemizedlist>
              <listitem>
                <para>Extension: .*</para>
              </listitem>

              <listitem>
                <para>Operation: Compare</para>
              </listitem>
			  
			  <listitem>
                <para>Command: {Path to WinMerge}\WinMergeU.exe</para>
              </listitem>
			  
			  <listitem>
                <para>Arguments: /e /u /dl %6 /dr %7 %1 %2</para>
              </listitem>
            </itemizedlist>
			<para> Where {Path to WinMerge} is the path were WinMerge is installed.
			In the above screenshot it is installed to the default installation path 
			C:\Program Files (x86)\WinMerge\WinMergeU.exe</para>
			<para> The arguments are described under <xref linkend="Command_line" />.</para>
          </listitem>
        </orderedlist>
		
		<para>Every time you tell TFS to compare two files, it will now use WinMerge.</para>
      </example>
	  
      <section id="VersionControl_cc">
        <title>ClearCaseとの統合について</title>

        <para>WinMergeのインストール時に、Rational ClearCase統合を選択した時、
        インストーラは、</para>

        <orderedlist>
          <listitem>
            <para><!-- TODO: 日本語版確認 -->ClearCaseのバックアップコピーを、
            <filename>map</filename>ファイルは、<filename>map.bak</filename>として、
            <filename><replaceable>ccase-home-dir</replaceable>\lib\mgrs</filename>
            ディレクトリに作成します。<!-- FIXME: よくわからない -->The <filename>map</filename> file is a user-configurable
            file that associates ClearCase methods with the programs that carry
            them out.</para>
          </listitem>

          <listitem>
            <para><filename>map</filename>ファイル中の<guilabel><!-- TODO: 日本語版ではどうなっているのだろう -->text_file_delta</guilabel>フィールドを、
            <command>cleartool diff</command>コマンドが実行されたとき、
            デフォルトの<filename>cleardiff.exe</filename>の代わりに、
            WinMergeを指定するように変更してください。</para>
          </listitem>
        </orderedlist>

        <para>あとでWinMergeとClearCaseの連携を止めたい時は、
        ClearCaseの<filename>map</filename>ファイルを、
        WinMergeインストーラが作成したバックアップ、<filename>map.bak</filename>で置き換えてください。
        または、ClearCaseの<filename>map</filename>ファイルを
        <command>cleartool diff</command>コマンドで、
        <filename>cleardiff.exe</filename>が実行されるように編集してください。</para>
      </section>
    </section>
  </section>
</article>
