h1.InterTrac Links

Trac supports a convenient way to refer to resources of other Trac servers, from within the Wiki markup, since version 0.10.

Definitions

AnInterTrac link can be seen as a scopedTracLinks.
It is used for referring to a Trac resource
(Wiki page, changeset, ticket, ...) located in another
Trac environment.

List of ActiveInterTrac Prefixes

[InterTrac]]

Link Syntax

Simply use the name of the other Trac environment as a prefix,
followed by a colon, ending with the resource located in the other environment.

<target_environment>:TracLinks>

The other resource is specified using a regularTracLinks, of any flavor.

That target environment name is either the real name of the
environment, or an alias for it.
The aliases are defined in trac.ini (see below).
The prefix is case insensitive.

For convenience, there's also some alternative short-hand form,
where one can use an alias as an immediate prefix
for the identifier of a ticket, changeset or report:
(e.g. #T234, [T1508], [trac 1508], ...)

Examples

#!comment
 Besides the other environments run by the same server process
 (called _sibling_ environments), which are automatically detected,
Support for sibling environments has been disabled.
See http://thread.gmane.org/gmane.comp.version-control.subversion.trac.devel/157

It is necessary to setup a configuration for theInterTrac facility.
This configuration has to be done in theTracIni file, [intertrac] section.

Example configuration:
...
[intertrac]
# -- Example of setting up an alias:
t = trac

# -- Link to an external Trac:
trac.title = Edgewall's Trac for Trac
trac.url = http://projects.edgewall.com/trac
trac.compat = false

The .url is mandatory and is used for locating the other Trac.
This can be a relative URL in case that Trac environment is located
on the same server.

The .title information will be used for providing an useful tooltip
when moving the cursor over anInterTrac links.

Finally, the .compat option can be used to activate or disable
a compatbility mode:
  • If the targeted Trac is running a version below milestone:0.10
    (r3526 to be precise), then it doesn't know how to dispatch anInterTrac
    link, and it's up to the local Trac to prepare the correct link.
    Not all links will work that way, but the most common do.
    This is called the compatibility mode, and is true by default.
  • If you know that the remote Trac knows how to dispatchInterTrac links,
    you can explicitely disable this compatibility mode and then any
    TracLinks can become anInterTrac link.
Now, given the above configuration, one could create the following links:
  • to thisInterTrac page:
  • to the ticket #234:
    • trac:ticket:234 trac:ticket:234
    • trac:#234 trac:#234
    • #T234 #T234
  • to the changeset r1912:
    • trac:changeset:1912 trac:changeset:1912
    • [T1912] [T1912]
  • to the log range [3300:3330]: (Note: the following ones need trac.compat=false)
    • trac:log:@3300:3330 trac:log:@3300:3330
    • [trac 3300:3330] [trac 3300:3330]

The generic form intertrac_prefix:module:id is translated
to the corresponding URL &lt;remote&gt;/module/id, shorthand links
are specific to some modules (e.g. !#T234 is processed by the
ticket module) and for the rest (intertrac_prefix:something),
we rely on theTracSearch#quickjump facility of the remote Trac.


Discussion

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

----
See also:TracLinks,InterWiki

Also available in: HTML TXT