= Trac チェンジセットモジュール = #TracChangeseModule
[[TracGuideToc]]

Trac には "diffs" - ファイルの変更箇所を画面表示する機能があります。

''チェンジセット'' といってもいろいろな種類があります。
あるリビジョンにおけるファイルの変更だったり、
異なるリビジョン間における変更を累積したものもありますが、
結局のところどんな変更箇所でも表示することができます。

チェンジセットビューは ''ヘッダ'' と
''diff ビュー'' の 2 つで構成されています。

== チェンジセットヘッダ == #ChangesetHeader

ヘッダは、チェンジセット全体の概要を表示します。
以下のような情報を得ることができます :

 * コミット日時 (英語版では Timestamp) -- チェンジセットがコミットされた日時
 * 更新者 (英語版では Author) -- チェンジセットをコミットした人
 * ログメッセージ (英語版では Message) -- 更新者による簡単な説明 (コミットログ)
 * 場所 (英語版では Location) -- チェンジセットによって更新などの影響を受けた全てのファイルの親ディレクトリ
 * ファイル (英語版では Files) -- チェンジセットによって更新などの影響を受けたファイルのリスト

複数のリビジョンのチェンジセットが含まれる場合、
''コミット日時'' (英語版では ''Timestamp''), ''更新者'' (英語版では ''Author''), ''ログメッセージ'' (英語版では ''Message'') フィールドは
表示されません。

リストされているファイル名の前に、色のついた四角が見えるでしょう。
それぞれの色は、チェンジセットによってファイルがどのような影響を受けたかを示しています。

 [[span(style=background:#bfb;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] 緑: 追加 \\
 [[span(style=background:#f88;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] 赤: 削除 \\
 [[span(style=background:#fd8;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] 黄色: 更新 \\
 [[span(style=background:#88f;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] 青: コピー \\
 [[span(style=background:#ccc;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] グレー: 移動 \\
色の凡例はヘッダの下に備忘録として載っています。

== diff ビュー == #DiffViews

ヘッダの下がチェンジセットの主な部分となる diff ビューです。それぞれのファイルがセクションで区切って表示されています。そして、各セクションには、チェンジセットによって該当のファイルが影響を受けた部分のみが含まれています。 diff の表示には 2 種類あります: ''インラインで表示'' (英語版では ''inline'') と ''並べて表示'' (英語版では ''side-by-side'') 形式です。 (設定フォームで、 2 つのスタイルを切り替えることができます):

 * ''インラインで表示'' スタイルはファイルの変更部分を一列で表示します。ファイルから削除された部分は、赤くマーキングされ、追加された部分は緑色にマーキングされます。更新された場合は、古いバージョンは新しいバージョンの上に表示されます。左側の行番号は古いバージョンと新しいバージョンのファイルのそれぞれ変更があった行番号を示しています
 * ''並べて表示'' スタイルは古いバージョンを左側に、新しいバージョンは右側に表示されます (インラインスタイルよりも横幅が長い画面が必要となるでしょう。) 追加または削除された部分はインラインスタイルと同様に色づけ (それぞれ緑、赤で) されます。更新された部分は黄色の背景で表示されます

加えて、設定フォームで diff の表示方法を調整するためのいろいろなオプションを利用可能となっています:
 * 差分の発生行の前後に何行表示するかを設定することができます
   (''all'' を使用するとファイル全体が表示されます)
 * 空白行、大文字/小文字、空白文字の変更を無視リストに追加することができます。これらを設定することによって、より素早く機能上の変更を見ることが可能になります


== diff を見る他の方法 == #TheDifferentWaysToGetaDiff

=== チェンジセットを見る === #ExaminingaChangeset

リポジトリへのチェックインを見る (チェンジセットの [wiki:TracLinks リンク] や
[wiki:TracTimeline タイムライン] のチェンジセットイベントを辿るなどの操作を行う)
と、 Trac はチェックインによって発生した変更箇所を
表示します。

そのとき、ナビゲーションリンクに ''前のチェンジセット'' (英語版では ''Previous Changeset'')
と ''次のチェンジセット'' (英語版では ''Next Changeset'') も表示されます。

=== リビジョン間の diff を見る === #ExaminingDifferencesBetweenRevisions

しばしばファイルやディレクトリの複数のリビジョンをまたがった変更を見たい
ことがあるでしょう。
もっとも簡単な方法は TracRevisionLog から取得することです。
そして、 ファイルやディレクトリの '''旧''' リビジョンと '''新''' リビジョンを選択し、
''更新を見る'' (英語版では ''View changes'') ボタンをクリックします。

=== ブランチ間の diff を見る === #ExaminingDifferenceBetweenBranches

バージョン管理システムの主となる特徴の一つとして、
一般的に "ブランチ" と呼ばれる ''開発系統'' が同時に 2 つ以上走る可能性があるということです。
Trac はこのような ブランチ間の diff を
をみることを可能にしています。

TracBrowser の '''差分を表示''' (英語版では '''View changes...''') ボタンをクリックすることにより、任意の
パスとリビジョンの ''Base (From)'' と ''Target (To)'' を選択するフォームを表示します。
diff の一覧は ''To:'' の内容に合わせるために ''From:'' の内容に適用するべき
変更点でできています。

チェンジセットのページの ''Diff を反転'' (英語版では ''Reverse Diff'') リンクをクリックすることによって、
'''旧''' と '''新''' のパス/リビジョンの役割を反転させることが可能です。

=== 最終更新をみる === #CheckingtheLastChange

最後に残った操作として、
TracBrowser が提供する ''最終更新'' (英語版では ''Last Change'') リンクがあります。

このリンクはそのパスで起こった最後の変更を表示します。
そこから、 ''前の更新'' (英語版では ''Previous Change'') と ''次の更新'' (英語版では ''Next Change'') リンクを使用
することで、そのファイルやディレクトリの変更履歴を横断的に見ることができます。

----
See also: TracGuide, TracBrowser