| 1 |
= InterTrac Links = |
|---|
| 2 |
|
|---|
| 3 |
Trac supports a convenient way to refer to resources of other Trac servers, from within the Wiki markup, since version 0.10. |
|---|
| 4 |
|
|---|
| 5 |
== Definitions == |
|---|
| 6 |
|
|---|
| 7 |
An InterTrac link can be seen as a scoped TracLinks. |
|---|
| 8 |
It is used for referring to a Trac resource |
|---|
| 9 |
(Wiki page, changeset, ticket, ...) located in another |
|---|
| 10 |
Trac environment. |
|---|
| 11 |
|
|---|
| 12 |
== List of Active InterTrac Prefixes == |
|---|
| 13 |
|
|---|
| 14 |
[[InterTrac]] |
|---|
| 15 |
|
|---|
| 16 |
== Link Syntax == |
|---|
| 17 |
|
|---|
| 18 |
Simply use the name of the other Trac environment as a prefix, |
|---|
| 19 |
followed by a colon, ending with the resource located in the other environment. |
|---|
| 20 |
|
|---|
| 21 |
{{{ |
|---|
| 22 |
<target_environment>:<TracLinks> |
|---|
| 23 |
}}} |
|---|
| 24 |
|
|---|
| 25 |
The other resource is specified using a regular TracLinks, of any flavor. |
|---|
| 26 |
|
|---|
| 27 |
That target environment name is either the real name of the |
|---|
| 28 |
environment, or an alias for it. |
|---|
| 29 |
The aliases are defined in `trac.ini` (see below). |
|---|
| 30 |
The prefix is case insensitive. |
|---|
| 31 |
|
|---|
| 32 |
For convenience, there's also some alternative short-hand form, |
|---|
| 33 |
where one can use an alias as an immediate prefix |
|---|
| 34 |
for the identifier of a ticket, changeset or report: |
|---|
| 35 |
(e.g. `#T234`, `[T1508]`, `[trac 1508]`, ...) |
|---|
| 36 |
|
|---|
| 37 |
== Examples == |
|---|
| 38 |
|
|---|
| 39 |
{{{ |
|---|
| 40 |
#!comment |
|---|
| 41 |
Besides the other environments run by the same server process |
|---|
| 42 |
(called ''sibling'' environments), which are automatically detected, |
|---|
| 43 |
Support for sibling environments has been disabled. |
|---|
| 44 |
See http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/157 |
|---|
| 45 |
}}} |
|---|
| 46 |
|
|---|
| 47 |
It is necessary to setup a configuration for the InterTrac facility. |
|---|
| 48 |
This configuration has to be done in the TracIni file, `[intertrac]` section. |
|---|
| 49 |
|
|---|
| 50 |
Example configuration: |
|---|
| 51 |
{{{ |
|---|
| 52 |
... |
|---|
| 53 |
[intertrac] |
|---|
| 54 |
# -- Example of setting up an alias: |
|---|
| 55 |
t = trac |
|---|
| 56 |
|
|---|
| 57 |
# -- Link to an external Trac: |
|---|
| 58 |
trac.title = Edgewall's Trac for Trac |
|---|
| 59 |
trac.url = http://projects.edgewall.com/trac |
|---|
| 60 |
trac.compat = false |
|---|
| 61 |
}}} |
|---|
| 62 |
|
|---|
| 63 |
The `.url` is mandatory and is used for locating the other Trac. |
|---|
| 64 |
This can be a relative URL in case that Trac environment is located |
|---|
| 65 |
on the same server. |
|---|
| 66 |
|
|---|
| 67 |
The `.title` information will be used for providing an useful tooltip |
|---|
| 68 |
when moving the cursor over an InterTrac links. |
|---|
| 69 |
|
|---|
| 70 |
Finally, the `.compat` option can be used to activate or disable |
|---|
| 71 |
a ''compatbility'' mode: |
|---|
| 72 |
* If the targeted Trac is running a version below milestone:0.10 |
|---|
| 73 |
(r3526 to be precise), then it doesn't know how to dispatch an InterTrac |
|---|
| 74 |
link, and it's up to the local Trac to prepare the correct link. |
|---|
| 75 |
Not all links will work that way, but the most common do. |
|---|
| 76 |
This is called the compatibility mode, and is `true` by default. |
|---|
| 77 |
* If you know that the remote Trac knows how to dispatch InterTrac links, |
|---|
| 78 |
you can explicitely disable this compatibility mode and then ''any'' |
|---|
| 79 |
TracLinks can become an InterTrac link. |
|---|
| 80 |
|
|---|
| 81 |
Now, given the above configuration, one could create the following links: |
|---|
| 82 |
* to this InterTrac page: |
|---|
| 83 |
* `trac:wiki:InterTrac` trac:wiki:InterTrac |
|---|
| 84 |
* `t:wiki:InterTrac` t:wiki:InterTrac |
|---|
| 85 |
* Keys are case insensitive: `T:wiki:InterTrac` T:wiki:InterTrac |
|---|
| 86 |
* to the ticket #234: |
|---|
| 87 |
* `trac:ticket:234` trac:ticket:234 |
|---|
| 88 |
* `trac:#234` trac:#234 |
|---|
| 89 |
* `#T234` #T234 |
|---|
| 90 |
* to the changeset [1912]: |
|---|
| 91 |
* `trac:changeset:1912` trac:changeset:1912 |
|---|
| 92 |
* `[T1912]` [T1912] |
|---|
| 93 |
* to the log range [3300:3330]: '''(Note: the following ones need `trac.compat=false`)''' |
|---|
| 94 |
* `trac:log:@3300:3330` trac:log:@3300:3330 |
|---|
| 95 |
* `[trac 3300:3330]` [trac 3300:3330] |
|---|
| 96 |
|
|---|
| 97 |
The generic form `intertrac_prefix:module:id` is translated |
|---|
| 98 |
to the corresponding URL `<remote>/module/id`, shorthand links |
|---|
| 99 |
are specific to some modules (e.g. !#T234 is processed by the |
|---|
| 100 |
ticket module) and for the rest (`intertrac_prefix:something`), |
|---|
| 101 |
we rely on the TracSearch#quickjump facility of the remote Trac. |
|---|
| 102 |
|
|---|
| 103 |
---- |
|---|
| 104 |
=== Discussion === |
|---|
| 105 |
|
|---|
| 106 |
I think that the `trac` prefix could even be set as a default in the `[intertrac]` TracIni section. --CB |
|---|
| 107 |
|
|---|
| 108 |
---- |
|---|
| 109 |
See also: TracLinks, InterWiki |
|---|