|  | 1 | = Trac Links = | 
          
            |  | 2 | As you might have guessed, TracLinks are a very fundamental feature of Trac. | 
          
            |  | 3 |  | 
          
            |  | 4 | They allow hyperlinking between Trac entities (tickets, reports, changesets, Wiki | 
          
            |  | 5 | pages, milestones and source files) from anywhere WikiFormatting is used. | 
          
            |  | 6 |  | 
          
            |  | 7 | TracLinks are generally of the form '''type:id''' (where ''id'' represents the | 
          
            |  | 8 | number, name or path of the item) though some frequently used kinds of items | 
          
            |  | 9 | also have short-hand notations. | 
          
            |  | 10 |  | 
          
            |  | 11 | Some examples: | 
          
            |  | 12 | * Tickets: '''!#1''' or '''!ticket:1''' | 
          
            |  | 13 | * Reports: '''!{1}''' or '''!report:1''' | 
          
            |  | 14 | * Changesets: '''!r1''', '''![1]''' or '''!changeset:1''' | 
          
            |  | 15 | * Revision log: '''!r1:3''', '''![1:3]''' or '''!log:#1:3''' | 
          
            |  | 16 | * Wiki pages: '''CamelCase''' or '''!wiki:CamelCase''' | 
          
            |  | 17 | * Milestones: '''!milestone:1.0''' | 
          
            |  | 18 | * Attachment: '''!attachment:ticket:944:attachment.1073.diff''' | 
          
            |  | 19 | * Files: '''!source:trunk/COPYING''' | 
          
            |  | 20 | * A specific file revision: '''!source:/trunk/COPYING#200''' | 
          
            |  | 21 | Display: | 
          
            |  | 22 | * Tickets: #1 or ticket:1 | 
          
            |  | 23 | * Reports: {1} or report:1 | 
          
            |  | 24 | * Changesets: r1, [1] or changeset:1 | 
          
            |  | 25 | * Differences: r1:3, [1:3] or log:#1:3 | 
          
            |  | 26 | * Wiki pages: CamelCase or wiki:CamelCase | 
          
            |  | 27 | * Milestones: milestone:1.0 | 
          
            |  | 28 | * Files: source:trunk/COPYING | 
          
            |  | 29 | * Attachment: attachment:ticket:944:attachment.1073.diff | 
          
            |  | 30 | * A specific file revision: source:/trunk/COPYING#200 | 
          
            |  | 31 |  | 
          
            |  | 32 | '''Note:''' The wiki:CamelCase form is rarely used, but it can be convenient to refer to | 
          
            |  | 33 | pages whose names do not follow WikiPageNames rules, i.e., single words, | 
          
            |  | 34 | non-alphabetic characters, etc. | 
          
            |  | 35 |  | 
          
            |  | 36 | Trac links using the full (non-shorthand) notation can also be given a custom | 
          
            |  | 37 | link title like this: | 
          
            |  | 38 |  | 
          
            |  | 39 | {{{ | 
          
            |  | 40 | [ticket:1 This is a link to ticket number one]. | 
          
            |  | 41 | }}} | 
          
            |  | 42 |  | 
          
            |  | 43 | Display: [ticket:1 This is a link to ticket number one]. | 
          
            |  | 44 |  | 
          
            |  | 45 | If the title is be omitted, only the id (the part after the colon) is displayed: | 
          
            |  | 46 |  | 
          
            |  | 47 | {{{ | 
          
            |  | 48 | [ticket:1] | 
          
            |  | 49 | }}} | 
          
            |  | 50 |  | 
          
            |  | 51 | Display: [ticket:1] | 
          
            |  | 52 |  | 
          
            |  | 53 | It might seem a simple enough concept at a glance, but actually allows quite a complex network of information. In practice, it's very intuitive and simple to use, and we've found the "link trail" extremely helpful to better understand what's happening in a project or why a particular change was made. | 
          
            |  | 54 |  | 
          
            |  | 55 | == attachement: links == | 
          
            |  | 56 |  | 
          
            |  | 57 | The link syntax for attachments is as follows: | 
          
            |  | 58 | * !attachment:the_file.txt creates a link to the attachment the_file.txt of the current object | 
          
            |  | 59 | * !attachment:wiki:MyPage:the_file.txt creates a link to the attachment the_file.txt of the !MyPage wiki page | 
          
            |  | 60 | * !attachment:ticket:753:the_file.txt creates a link to the attachment the_file.txt of the ticket 753 !attachment:wiki:MyPage:the_file.txt | 
          
            |  | 61 |  | 
          
            |  | 62 | == source: links == | 
          
            |  | 63 |  | 
          
            |  | 64 | The default behavior for a source:/some/path link is to open the directory browser | 
          
            |  | 65 | if the path points to a directory and otherwise open the log view. | 
          
            |  | 66 | It's also possible to link directly to a specific revision of a file like this: source:/some/file@123 | 
          
            |  | 67 | or like this to link to the latest revision: source:/some/file@latest. | 
          
            |  | 68 | If the revision is specified, one can even link to a specific line number: !source:/some/file@123#L10 | 
          
            |  | 69 | [[comment(TODO: remove the ! when Edgewall Trac is upgraded with the support for the line syntax)]] | 
          
            |  | 70 |  | 
          
            |  | 71 | == Quoting space in TracLinks == | 
          
            |  | 72 |  | 
          
            |  | 73 | The usual syntax for quoting space is: | 
          
            |  | 74 |  | 
          
            |  | 75 | * !attachment:'the file.txt' or | 
          
            |  | 76 | * !attachment:"the file.txt" | 
          
            |  | 77 |  | 
          
            |  | 78 | == Where to use TracLinks == | 
          
            |  | 79 | You can use TracLinks in: | 
          
            |  | 80 |  | 
          
            |  | 81 | * Source code (Subversion) commit messages | 
          
            |  | 82 | * Wiki pages | 
          
            |  | 83 | * Full descriptions for tickets, reports and milestones | 
          
            |  | 84 |  | 
          
            |  | 85 | and any other text fields explicitly marked as supporting WikiFormatting. | 
          
            |  | 86 |  | 
          
            |  | 87 | == Escaping Links == | 
          
            |  | 88 |  | 
          
            |  | 89 | To prevent parsing of a !TracLink, you can escape it by preceding it with a '!' (exclamation mark). | 
          
            |  | 90 | {{{ | 
          
            |  | 91 | !NoLinkHere. | 
          
            |  | 92 | ![42] is not a link either. | 
          
            |  | 93 | }}} | 
          
            |  | 94 |  | 
          
            |  | 95 | Display: | 
          
            |  | 96 | !NoLinkHere. | 
          
            |  | 97 | ![42] is not a link either. | 
          
            |  | 98 |  | 
          
            |  | 99 | ---- | 
          
            |  | 100 | See also: WikiFormatting, TracWiki | 
          
            |  | 101 |  |