1 <?xml version="1.0" encoding="UTF-8"?>
2 <article id="Intro_diffs">
3 <title>ファイル比較とマージの概観</title>
5 <para>ここでの主題は、WinMergeがどのようにして、テキストファイル中の
7 そして、単純なファイルの比較とマージ操作のデモを行います。
8 バイナリファイルに関する情報は、<xref linkend="Compare_bin" />を参照してください。</para>
10 <section id="Intro_diffs_comparing">
11 <title>ファイルの比較<indexterm>
12 <primary>ファイルの比較</primary>
14 <secondary>overview</secondary>
17 <para>私たちは、ある方法で関連付られる二つのファイルを、いつも比較します。
18 たとえば、別々の時間、または、別々の人によって編集された二つのバージョンのファイルなどです。
19 そのような二つのファイルを検査すれば、いくつかの同じような領域と
20 同様に、異なる文字と単語、異なる行、連続したテキストブロックの差分など、くつかの違いを見つけることができます。
21 しかし、二つのファイル間のすべての差異を、お気に入りのエディターで調べることは、
23 WinMergeの様な、比較/マージに特化したツールは、
25 行えるように設計されています。</para>
27 <para>多くの人が使っている、スペルチェッカーのような、シンプルな差分ユーティリティは、
28 体系的な手段で文書の最後まで、辞書と異なる単語をハイライトし、
30 しかしながら、文字と単語のみで見ることは、複数ファイル間の差異を理解するために
32 この理由で、多くの差分ユーティリティは比較の基本単位として、
35 <para>WinMergeも、比較の基本単位として、行を使用します。
36 単語と文字は、比較とマージ操作の中では、個別には扱われません。
37 例証するために、一行を除いて同一の二つのファイルを考えてください。
38 一行が、異なる4単語を含む二つのバージョンで、一方のバージョンには、
39 余分なスペースがある時、ファイルには5つではなく、
40 1つの差異があると判断します。</para>
42 <para>単語よりも、行比較の方が速い場合、
43 一度に一行を比較する代わりに、単一の違いとして行全体を扱うことは、さらに有効です。
44 あとで見るように、複数行の差分を見つけることは、
48 <title>単純なファイル操作</title>
50 <para>このセクションは、二つのファイル間の差分を、
51 WinMergeで行比較する方法の単純な例を述べています。</para>
55 <para>テキストエディターを使って、ここに示す内容と名前の二つのファイルを、
56 単語と改行に注意して正確に作成してください。
62 <para><screen>It's slow comparing words
63 and characters. Instead,
64 WinMerge compares lines.
65 Believe it or else.</screen></para>
71 <para><screen>It's slow comparing words.
72 WinMerge compares lines.
73 Believe it or not.</screen></para>
78 <para>WinMergeを起動してください。例えば、デスクトップの<inlinemediaobject>
80 <imagedata contentwidth="32" fileref="screenshots/wm_icon.png" />
84 <phrase>WinMerge desktop shortcut</phrase>
86 </inlinemediaobject>WinMergeへのショートカットをダブルクリックしてください。</para>
90 <para>ファイルとフォルダーの選択ダイアログで、
91 <filename>File1</filename>を<guilabel>1番目</guilabel>に、
92 <filename>File2</filename>を<guilabel>2番目</guilabel>のファイルに指定し、
93 <guibutton>比較</guibutton>をクリックしてください。このように、左と右のファイルペインに二つのファイルが開かれ、
94 ファイル比較ウィンドウが表示されます。</para>
98 <imagedata contentwidth="600"
99 fileref="screenshots/missing_lines.png" />
103 <phrase>Compare Files screenshot</phrase>
107 <para>この要素は、<xref linkend="Compare_files" />で、
109 以下はこの例で注意すべきいくつかの点です。</para>
117 WinMergeウィンドウ下部のステータスバーにあり、
118 2つの差分が見つかったことを説明しています。</para>
126 <para>差分ブロックは異なる背景色でマークされます。
129 <para>行差分は、単語背景色を使用して、
130 差分ブロック中の変更されたテキストをマークすることができます。
131 (デフォルトは、ライトイエロー)</para>
134 これらは、例の3行目のような、白の背景色です。</para>
142 <para>左の比較ペインに注目してください。
144 他方のペインは、同じ場所が灰色の空行になっています。
145 この空行は、<filename>File2</filename>ソースファイルには、存在しません。
146 WinMergeが何をしたのでしょう?</para>
148 <para>WinMergeは、他方のバージョンにより多くの行が存在すると、
149 1行、または、それより多くの灰色の空行を、一方のバージョンに挿入します。
150 これらの灰色の空行は、ソースファイル中の空行を表しているわけではありません。
151 これらは、表示上のプレースホルダーに過ぎません。
152 プレースホルダー行の目的は、左と右のバージョンの差分を垂直に整列させることです。
154 <computeroutput>WinMerge compares lines</computeroutput>のテキストは、
155 たとえソースファイル中では異なる行にあっても、
157 このことが、WinMergeでの差分比較を、
158 従来のエディターより容易にさせています。</para>
161 <para>空行の一つの重要性は、たとえ、ソースファイルではそうでなくても、
162 ファイル比較ウィンドウの両方(または3つすべて)のペインには、
163 いつも同じ総行数が表示されていることです。</para>
169 <para>WinMergeが、どのように差異を検出して、表示するかということを
170 理解しているので、次のステップで示されるように、
171 効率的な比較機能を使用できます。</para>
175 <para>ツールバーにある、<inlinemediaobject>
177 <imagedata contentdepth="15"
178 fileref="screenshots/currentdiff_btn.png" />
182 <phrase>現在の差異ボタン</phrase>
184 </inlinemediaobject> <guibutton>現在の差異</guibutton>をクリック
188 <keycap>Enter</keycap>
189 </keycombo>キーを押下)してください。このボタンが使えない(例えば、カーソルが違う行にある)時は、
190 代わりに、<inlinemediaobject>
192 <imagedata contentdepth="15"
193 fileref="screenshots/firstdiff_btn.png" />
197 <phrase>最初の差異ボタン</phrase>
199 </inlinemediaobject>最初の差異をクリック(または、<keycombo>
202 <keycap>Home</keycap>
203 </keycombo>キーを押下)してください。</para>
205 <para>差異を選択したら、Diffペインに二つのバージョンがロードされます。
206 <!-- FIXME: こっから最後まで、何がいいたいのかわからん -->Diffペインで、どの行に差異が含まれているか確認し、残りのファイルから独立して、それらを調べることができます。
207 この例では、違いの一つは明確で、二つの行を持っています。</para>
211 <imagedata contentwidth="588"
212 fileref="screenshots/filecomp_diffpane1.png" />
216 <phrase>Compare Files Diff Pane</phrase>
223 <para>ツールバーの、<inlinemediaobject>
225 <imagedata contentdepth="15"
226 fileref="screenshots/nextdiff_btn.png" />
230 <phrase><!-- XXX: 訳注 原文では、Current Difference buttonとなっている -->次の差異ボタン</phrase>
232 </inlinemediaobject><guibutton>次の差異</guibutton>をクリック
236 <keycap>Enter</keycap>
237 </keycombo>キーを押下)してください。
238 これは、同じ行(差異ではない)を飛び越し、
241 <para><!-- FIXME: 全部イマイチ。意味不 -->ファイルの最後に到達し、すべての差異を検査するチャンスを得ることができました。
242 これは、つまらない例です。ここに、ただ二つの差異があります。
243 そして、WinMergeで、これらの差異を比較する方法が二つあります。
245 WinMergeナビゲーション・コントロールを使用することの有効性を証明しています。</para>
251 <section id="Intro_diffs_merging">
252 <title>ファイルのマージ<indexterm>
253 <primary>差異のマージ</primary>
255 <secondary>overview and example</secondary>
258 <para>マージの目的は、二つのファイルの変更を一つのファイルへ結合することです。
259 マージは、比較操作で使われる、概念と機能を拡張します。
260 このセクションを始める前に、これまでのセクションを読んでください。
261 さらに、二つのファイルバージョン間の差異を見つけ、差異を解決し、結果を一つの
262 <glossterm>target</glossterm>バージョンに保存します。</para>
264 <para>ファイルのマージは、同時開発を可能にし、それは、チーム環境の中でありふれたタスクです。
266 同時期に同じプログラムファイルにコードを追加したいとします。
267 あなたは、両方ともファイルの同一のコピーからはじめます。
268 しかし、開発中に、同一でない個別のバージョンを作成します。
271 一つにマージされなければなりません。</para>
273 <para>SubversionやGitのようなバージョン管理システムは、マージを
274 促すことができます(または、開始させられます)。
275 例えば、お使いのバージョン管理システムが、マージ・コンフリクトにより、リポジトリへのサブミットを妨害するかもしれません。
276 あなたが自分のバージョンで作業中に、他の誰かが、同じファイルの異なるバージョンをチェックインして、
277 バージョン管理システムが差分を自動マージできなかった場合、競合が発生します。
278 競合が発生した場合、あなたのバージョンを提出する前に、
279 競合しているバージョンをマージする必要があるかもしれません。
280 多くのシステムには、差分とマージツールが統合されています。
281 しかし、あなたは、代わりにWinMergeを使いたいかもしれません。
284 <para><!-- FIXME わからない -->Just as with comparing, you use WinMerge's toolbar controls (or
285 keyboard shortcuts) to systematically step through the differences. Resolve
286 each difference by copying either its left or right
287 <glossterm>candidate</glossterm> to the other side. すべての差異を解決した時、
288 WinMergeは、すべての差異が解決されたことを知らせ、
292 <title>単純なマージ操作</title>
294 <para><!-- TODO: イマイチ -->このちょっとした課題は、
296 先に示したシンプルなファイルを体系的にマージするために、どのように使用するかを示しています。</para>
300 <para>ツールバーの、<inlinemediaobject>
302 <imagedata contentdepth="15"
303 fileref="screenshots/currentdiff_btn.png" />
307 <phrase>Current Difference button</phrase>
309 </inlinemediaobject> <guibutton>現在の差異</guibutton>ボタンをクリックして、
310 最初の差異を選択してください。このボタンが使えない場合、
311 代わりに、<inlinemediaobject>
313 <imagedata contentdepth="15"
314 fileref="screenshots/firstdiff_btn.png" />
318 <phrase>First Difference button</phrase>
320 </inlinemediaobject> <guibutton>最初の差異</guibutton>ボタンを
325 <para><inlinemediaobject>
327 <imagedata contentwidth="17"
328 fileref="screenshots/copyr_button.png" />
332 <phrase>Copy Right button</phrase>
334 </inlinemediaobject> <guibutton>右へコピー</guibutton>をクリックすると、
335 <filename>File1</filename>から、<filename>File2</filename>へ、
337 <filename>File2</filename>の中の差分1行が、
338 <filename>File1</filename>の2行で置き換えられ、
339 灰色の空行が無くなっていることに注意してください。</para>
343 <para><inlinemediaobject>
345 <imagedata contentdepth="15"
346 fileref="screenshots/nextdiff_btn.png" />
350 <phrase>Next Difference button</phrase>
352 </inlinemediaobject> <guibutton>次の差異</guibutton>をクリックすると、
353 2番目の差異を選択します。これは、差異を自分で発見して選択するより簡単です。
354 そして、すべての差異を端から端まで難なく調べたいなら、特に便利です。</para>
358 <para><inlinemediaobject>
360 <imagedata contentwidth="17"
361 fileref="screenshots/copyl_button.png" />
365 <phrase>Copy Left button</phrase>
367 </inlinemediaobject> <guibutton>左へコピー</guibutton>
369 2番目の差異を、<filename>File2</filename>から、
370 <filename>File1</filename>へマージします。</para>
372 <para>マージが完了してファイルが同一になると、メッセージが表示されます。
377 <imagedata contentwidth="600"
378 fileref="screenshots/filemerged1.png" format="PNG" />
385 <para><guibutton>OK</guibutton>をクリックし、メッセージを閉じてください。
387 <computeroutput>差異 1/1</computeroutput>から、
388 <computeroutput>同一</computeroutput>に変わります</para>
393 <keycap>Ctrl</keycap>
396 </keycombo>を押下して変更を保存してください。</para>
400 <para>非常にシンプルであると同時に、
402 ある程度の比較をしたり差異をマージしたりする基本的な手順です。</para>
406 <title>マージしたファイルの保存先を選択<indexterm>
407 <primary>差異のマージ</primary>
409 <secondary>result file</secondary>
410 </indexterm><indexterm>
411 <primary>result file, in merge</primary>
414 <para>マージ結果が保たれるようにコントロールしてください。
415 WinMergeのファイル比較ウィンドウには、幾つかのマージツールがそうであるように、
416 分割された結果ペインがありません。 最も単純な方策は、片方、または、両方(または3つすべて)のソースファイルの変更を保存することです。
418 <keycap>Ctrl</keycap>
421 </keycombo>を押下して、両方のファイルの変更を何度か保存してください。
423 <guimenu>ファイル</guimenu>
425 <!-- TODO: 「保存」->「左側を保存」とネストしているため
426 オリジナルのXMLファイルと構成が違うが大丈夫か?
428 <guimenuitem>保存</guimenuitem>
429 <guimenuitem>左側のファイルを保存</guimenuitem>
430 </menuchoice>、または、<menuchoice>
431 <guimenu>ファイル</guimenu>
433 <guimenuitem>保存</guimenuitem>
434 <guimenuitem>右側のファイルを保存</guimenuitem>
435 </menuchoice>をクリックして、片方のファイルを保存してください。</para>
437 <para>どちらか一方のソースファイルの代わりに、別のファイルに書き込むには、
439 <guimenu>ファイル</guimenu>
441 <guimenuitem>名前を付けて保存</guimenuitem>
442 </menuchoice>を使用してください。例えば、ターゲットファイルが、バージョン管理システムによって作成された、
443 差分ファイル、または、競合ファイルなどの場合です。</para>
445 <para>同様に、WinMergeのコマンドラインで、<xref linkend="Command_line" />で説明されている、
446 任意の<option>outputfile</option>引数を使用して、
447 両方(または3つすべて)のソースファイルが変更されていない状態のままにしておくことができます。</para>