= InterTrac リンク =

バージョン 0.10 以降で、 Trac は Wiki マークアップの中から、他の Trac サーバのリソースを簡単に参照できるようになりました。

== 定義 ==

InterTrac リンクはスコープ付きの TracLinks とみなすことができます。
他の Trac Environment で管理されている Trac のリソース
(Wiki ページ, チェンジセット, チケット, ...) を指定し、
参照するために使用します。

== 現在使用できる InterTrac プレフィックスのリスト ==

[[InterTrac]]

== リンクのシンタックス ==

他の Trac Environment の名前をプレフィックスとして使用し、
コロンに続けて他の Environment にあるリソースを記述します。

{{{
<対象の Environment>:<TracLinks>
}}}

リソースは通常の TracLinks で使用できるどのようなものでも指定できます。

対象の Environment には、 Environment の本当の名前か、
エイリアスを指定します。
エイリアスは `trac.ini` に定義します (下記参照)。
プレフィックスでは大文字 / 小文字は区別されません。

簡易な方法として、他にも省略形があります。
チケット、チェンジセット、レポートの識別子に直接プレフィックスとして、
エイリアスを使うことができます。
(例 `#T234`, `[T1508]`, `[trac 1508]`, ...)

== 例 ==

{{{
#!comment
 同じサーバプロセス上で起動している、他の Environment
 (''兄弟'' Environment と呼びます) は自動検出されます。
現在、兄弟 Environment のサポートは無効化されています。
See http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/157
}}}

InterTrac を使用するためには、設定をする必要があります。
この設定は、 TracIni ファイルの `[intertrac]` セクションに行います。

設定の例:
{{{
...
[intertrac]
# -- エイリアスの設定例:
t = trac

# -- 外部の Trac へのリンク:
trac.title = Edgewall's Trac for Trac
trac.url = http://projects.edgewall.com/trac
trac.compat = false
}}}

`.url` は必須オプションで、他の Trac の場所を指定するのに使用されます。
同じサーバ上の Trac Environment であれば、相対 URL でも
かまいません。

`.title` に設定した内容は InterTrac リンクをマウスオーバしたときに、
ツールティップとして表示されます。

最後に、 `.compat` オプションは ''互換性'' モードを
有効にするか、無効にするかに使用されます。:
 * リンク対象の Trac が [http://trac.edgewall.org/milestone/0.10 milestone:0.10]
   (正確には [http://trac.edgewall.org/changeset/3526 r3526]) 以前のバージョンで動作している場合、 InterTrac リンクを
   ディスパッチできないので、ローカルの Trac が適切なリンクを準備する必要があります。
   すべてのリンクが動作するわけではないですが、たいていの場合は動きます。
   これは、互換性モードと呼ばれていて、 `true` がデフォルトです。
 * リモートサイトにある Trac が InterTrac リンクをディスパッチできると分かっているならば、
   明示的にこの互換性モードを無効にすることで、''全ての''
   TracLinks が InterTrac リンクとして動作するようになります。

上記の例を設定すると、以下のようなリンクを使用することができます:
 * この (訳注: 本家サイトの) InterTrac ページ:
   * `trac:wiki:InterTrac` trac:wiki:InterTrac
   * `t:wiki:InterTrac` t:wiki:InterTrac
   * キーでは大文字/小文字は区別されません: `T:wiki:InterTrac` T:wiki:InterTrac
 * チケット #234 へのリンク:
   * `trac:ticket:234` trac:ticket:234
   * `trac:#234` trac:#234 
   * `#T234` #T234
 * チェンジセット [1912] へのリンク:
   * `trac:changeset:1912` trac:changeset:1912
   * `[T1912]` [T1912]
 * リビジョンログの範囲指定 [3300:3330]: '''(Note: `trac.compat=false` を設定する必要があります。)'''
   * `trac:log:@3300:3330` trac:log:@3300:3330  
   * `[trac 3300:3330]` [trac 3300:3330] 

通常の形式 `<InterTrac のプレフィックス>:モジュール:識別子` は
正しい URL `<リンク先の Environment>/モジュール/識別子` と解釈されます。省略形のリンクは
モジュールごとに固有となっています (例 !#T234 は
チケットモジュールによって解釈されます)。残りの形 (`<InterTrac のプレフィックス>:任意の文字列`)
については、 リモートの Trac の TracSearch#クイックジャンプ に沿った動作をします。

----
=== Discussion ===

I think that the `trac` prefix could even be set as a default in the `[intertrac]` TracIni section. --CB

----
See also: TracLinks, InterWiki
