= Trac 設定ファイル = #TheTracConfigurationFile

[[TracGuideToc]]
[[PageOutline]]

Trac の設定は `<projectenv>/conf/` にある '''`trac.ini`''' というファイルを編集して行います。変更した内容は通常、即座に反映されますが、 `[components]` セクションや `[logging]` セクションへの変更では Web サーバを再起動する必要があります。また、グローバルな設定ファイルを新しく作成した直後も Web サーバを再起動しなければなりません。

`trac.ini` 設定ファイルとそのファイルのあるディレクトリは Web サーバから書き込み可能でなければなりません。 Trac は現在のところ、キャッシュを破棄するために完全に Environment を再読み込みするトリガーとして利用しています。

== グローバルな設定 == #GlobalConfiguration

0.11 より前のバージョンでは、グローバルな設定ファイルは `$prefix/share/trac/conf/trac.ini` や `/etc/trac/trac.ini` などディストリビューションに依存した特定の位置に配置されていました。アップグレードする場合は、設定を継承するファイルを明示しなければなりません。以前のバージョンから 0.11 にアップグレードした場合、プロジェクトの `trac.ini` ファイルに `[inherit]` セクションを追加しなければなりません。カスタマイズしたテンプレートや画像のファイルは `$prefix/share/trac/...` から他の場所に移動することもできます。

グローバルな設定は Environment 固有の設定とマージされます。ローカルの設定はグローバルの設定を上書きます。グローバルな設定ファイルは以下のように指定します:
{{{
[inherit]
file = /path/to/global/trac.ini
}}}
カンマ区切りにすることで、複数のファイルを指定することができます。

Note: 新しいプロジェクトを作る時に [TracAdmin#initenv trac-admin] の `initenv` コマンドに `--inherit=/path/to/global/trac.ini` オプションを追加することで、グローバル設定ファイルを指定することができます。オプションを追加せずにプロジェクトを作成した場合でも、新しく作成された `conf/trac.ini` ファイルを編集して、グローバルファイルの設定で上書きしたいエントリを削除すれば、新しい Environment でグローバル設定ファイルを使用することができます。

[#inherit-section| [inherit]] セクションには、共有するテンプレートの配置先を指す `templates_dir` と、共有するプラグインを指す `plugins_dir` という二つのエントリもあります。これらがグローバル設定ファイルに指定することができます。この場合、他の `[inherit] file` が指定されていれば、設定ファイルは順次読み込まれます。

Note: TracEnvironment の `templates/` ディレクトリ内のテンプレートは、 `[inherit] templates_dir` で見つかるテンプレートより優先されます。次に、`[inherit] templates_dir` のテンプレートはインストールされているテンプレートより優先されます。これらを設定するには注意が必要です。特に、デフォルトのテンプレートをオーバーライドする場合、 Trac を新しいバージョンにアップデートする際には必ず変更点を再読み込みして下さい。 ( TracInterfaceCustomization を行うために推奨する方法は、適切に `ITemplateStreamFilter` の変更が行えるカスタムプラグインを作成することです。)

== リファレンス == #Referenceforsettings

現在利用できる設定項目のリファレンスとデフォルトの設定です。(訳注: 0.12 ではデフォルトの値は表示されません。)

[[TracIni]]

== 特殊なセクションのリファレンス == #Referenceforspecialsections
[[PageOutline(3,,inline)]]

=== [components] === #components-section
このセクションは Trac 本体も含めて、プラグインによって提供されるコンポーネントの有効/無効を設定するために使います。有効/無効を設定するコンポーネントは、オプションの名前 (`name`) を使って特定します。コンポーネントが有効かどうかはオプションの値 (`value`) によって決定されます; コンポーネントを有効にするには、値を `enabled` または `on` に設定します。他の値 (一般的には `disabled` または `off`) の場合、コンポーネントは無効になります。

オプションの名前はコンポーネントの完全修飾名、もしくは、コンポーネントのモジュール/パッケージ プレフィックスとなっています。前者は 特定のコンポーネントの有効/無効を設定し、後者は特定のパッケージ/モジュール内のコンポーネントの有効/無効を設定します。

以下の設定ファイルの抜粋を見てください:
{{{
[components]
trac.ticket.report.ReportModule = disabled
webadmin.* = enabled
}}}

最初のオプションは [wiki:TracReports レポートモジュール] を使用しないように Trac を設定しています。二つ目のオプションは `webadmin` パッケージのすべてのコンポーネントを使用できるように設定しています。末尾のワイルドカードはモジュール/パッケージのマッチを行う場合、必須です。

アクティブなコンポーネントの一覧を取得するには、 ''Trac について'' (訳注: 英語版では ''About Trac'') の ''Plugins'' ページを参照してください。 (`CONFIG_VIEW` [wiki:TracPermissions パーミッション] が必要となります。)

See also: TracPlugins

=== [extra-permissions] === #extra-permissions-section
''(since 0.12)''

権限追加のカスタマイズは [wiki:ExtraPermissionsProvider] を有効にして、このセクションで定義することで可能となります。

=== [milestone-groups] === #milestone-groups-section
''(0.11 以降)''

今やチケットのワークフローは変更可能です。チケットステータスを数多く持つことができます。
単に解決した (closed) チケットと、その他のチケットを対比して表示することが、すべてのケースで
適切とは言えなくなりました。このセクションでは、簡単にステータスの ''グループ'' を作成ができます。
グループはマイルストーンのプログレスバーで異なった色で表示させることができます。

設定の例 (closed と active しか持たない場合):
{{{
closed = closed
# sequence number in the progress bar
closed.order = 0
# optional extra param for the query (two additional columns: created and modified and sort on created)
closed.query_args = group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime
# indicates groups that count for overall completion percentage
closed.overall_completion = true

new = new
new.order = 1
new.css_class = new
new.label = new

# one catch-all group is allowed
active = *
active.order = 2
# CSS class for this interval
active.css_class = open
# Displayed label for this group
active.label = in progress
}}}

グループの定義は、含めるステータスをカンマ区切りのリストにして構成します。
また、 '*' はあらゆるステータスを意味し、残りのすべてのステータスをキャッチオールグループに
関連付けます。

CSS クラスは次のいずれかを設定します: new (黄色), open (無色), closed (緑色)。
新しくスタイルを追加するには、以下のセレクタを使用します:
`table.progress td.<class>`

=== [repositories] === #repositories-section

(''0.12 以降'' のマルチリポジトリ)

trac.ini の `[repositories]` セクションに設定できることは、新しいリポジトリを登録すること以外にもあります。

使い勝手を増すエイリアスや、一時的なリポジトリ、インストール時の初期状態などを設定することができます。

このセクションとその他諸々の書き方についての詳細は [TracRepositoryAdmin#Intrac.ini TracRepositoryAdmin] を参照してください。

=== [svn:externals] === #svn:externals-section
''(0.11 以降)''

Subversion 向けの TracBrowser は、フォルダの `svn:externals` 属性を解釈できます。
デフォルトでは URL をリンクとして処理できるだけであり、 Trac 自身はリモートとなるリポジトリをブラウズすることはできません。

しかしながら、別の Trac インスタンス (または [http://www.viewvc.org/ ViewVC] のような別のリポジトリブラウザ) がリンク先のリポジトリをブラウズできるように設定されていれば、別のリポジトリブラウザを指す外部の URL を Trac に設定しておくことができます。

このマッピングは TracIni の `[svn:externals]` セクションで設定します。

例:
{{{
[svn:externals]
1 = svn://server/repos1                       http://trac/proj1/browser/$path?rev=$rev
2 = svn://server/repos2                       http://trac/proj2/browser/$path?rev=$rev
3 = http://theirserver.org/svn/eng-soft       http://ourserver/viewvc/svn/$path/?pathrev=25914
4 = svn://anotherserver.com/tools_repository  http://ourserver/tracs/tools/browser/$path?rev=$rev
}}}
上記では、 `svn://anotherserver.com/tools_repository/tags/1.1/tools` という external は `http://ourserver/tracs/tools/browser/tags/1.1/tools?rev=` にマップされます (`rev` は external にリビジョンが指定された場合、適切なリビジョン番号に設定されます。詳細は [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book の externals] を参照してください)。

Note: 番号はセクション内でのキー項目としてだけ使用されます。 URL 自身はキー項目として扱うことが出来ないという、設定ファイルのパーサの制限事項を回避するためです。

最後に [http://subversion.tigris.org/svn_1.5_releasenotes.html#externals Subversion 1.5] で導入された相対 URL は、現在のところサポートしていません。

=== [ticket-custom] === #ticket-custom-section

このセクションでは、チケットに追加フィールドを定義することができます。詳しくは TracTicketsCustomFields を参照してください。

=== [ticket-workflow] === #ticket-workflow-section
''(0.11 以降)''

チケットのワークフローはプラグインで制御します。
デフォルトでは `ConfigurableTicketWorkflow` コンポーネントが制御を行います。
このコンポーネントでは、 trac.ini ファイルのこのセクションでワークフローを設定することが可能です。
詳細は TracWorkflow を参照してください。

----
See also: TracGuide, TracAdmin, TracEnvironment
