| | 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 |