Changes between Version 3 and Version 4 of RevtreePlugin/LogEnhancer


Ignore:
Timestamp:
May 1, 2008 12:24:01 AM (6 years ago)
Author:
eblot
Comment:

Update the keyword list and add info about the plugin activation

Legend:

Unmodified
Added
Removed
Modified
  • RevtreePlugin/LogEnhancer

    v3 v4  
    1414Nevertheless, the plugin can be used as a code base to write your own enhancer 
    1515plugins and it demonstrates how to interface your own plugin with the  
    16 RevtreePlugin.[[BR]] 
     16RevtreePlugin.[[br]] 
    1717You can also refer to the '!SimpleEnhancer' plugin that comes 
    1818with the RevtreePlugin code (see  
     
    2323We are using a log message format convention to work with our repository: 
    2424any change made to the repository (''copy'', ''move'', ''commit'',  
    25 ''delete'') should be documented within the log message.[[BR]] 
     25''delete'') should be documented within the log message.[[br]] 
    2626Using the log message to document any change allows the developer to use his 
    2727SVN client of choice (TortoiseSVN, svn CLI, ...) with no trouble. 
     
    3838    (and the mandatory options if any) 
    3939     
    40 To the initially contributed keywords: 
    41  * '''refs #t''': used when a changeset is tied to an open ticket `t` 
    42  * '''closes #t''': used when a changeset implements a feature that is tied to 
    43    an open ticket `t` 
    44  * '''fixes #t''': used when a changeset fixes a bug that is described in a 
    45    open ticket `t` 
    46 we have added a bunch of new keywords: 
    47  * '''creates''': used when a developer creates a new development branch or  
    48    creates a ''tag'' branch. 
    49  * '''terminates''': used when a developer deletes an existing branch 
    50  * '''imports''': used when a developer imports files from an external source 
    51    (a Clearcase server in our team) 
    52  * '''delivers [x]:[y]''': used when a developer delivers a development branch 
    53    to another branch - usually to the trunk. `[x]:[y]` represents the first  
    54    (`x`) and last (`y`) changeset on the source branch that are actually  
    55    delivered.[[BR]]  
    56    If a single changeset is delivered, the log message can be simplified as  
    57    '''delivers [x]''' 
    58  * '''admins''' allows the repository administrator(s) to force any kind of  
    59    operations which would normally be rejected by the hook scripts 
     40=== Initially contributed keywords === 
     41 '''refs #t''':: 
     42  used when a changeset is tied to an open ticket `t` 
    6043 
    61 The !LogEnhancer recognizes and uses the following keywords: 
    62  * '''creates''': the !LogEnhancer uses this keyword to create a ''branch''  
    63    operation (from the source branch to the new branch). !LogEnhancer uses the 
    64    repository path information to locate the source and the origin  
    65    changeset.[[BR]] 
    66    The operation is rendered as an arrow-headed spline that runs from  
    67    the source changeset to the destination changeset.[[BR]] 
    68    Moreover, the appearance of the destination changeset (''i.e.'' the first 
    69    changeset of the newly created branch) is tweaked to signal that it is the 
    70    initial branch changeset: stroke and fill color are swapped  
    71  * '''delivers [x]:[y]''': the !LogEnhancer uses this keyword to create a 
    72    ''merge'' operation. As the SVN repository is not able to track merge  
    73    operations, the !LogEnhancer needs the `x` and `y` changeset numbers to 
    74    retrieve the source of the merge operation (and the source branch)[[BR]] 
    75    The operation is rendered as an arrow-headed spline that runs from the 
    76    youngest changeset (`y`) of the source to the destination changeset.[[BR]] 
    77    The original changesets are also outlined with a rounded rectangle that 
    78    represents the span of the source changesets. 
    79  * '''imports''': the !LogEnhancer uses this keyword to change the appearance 
    80    of the changeset (two short lines are added to the changeset circle) 
    81  * '''terminates''': the !LogEnhancer uses this keyword to change the  
    82    appearance of the changeset: it is filled with a black background, and the 
    83    text is rendered in white color. 
     44 '''closes #t'''::  
     45  used when a changeset implements a feature that is tied to an open ticket `t` 
     46 
     47 '''fixes #t'''::  
     48  used when a changeset fixes a bug that is described in a open ticket `t` 
     49 
     50=== New keywords === 
     51 
     52 '''creates'''::  
     53  used when a developer creates a new development branch or creates a ''tag''  
     54  branch.[[br]] 
     55  The !LogEnhancer uses this keyword to create a ''branch'' operation (from the 
     56  source branch to the new branch). !LogEnhancer uses the repository path  
     57  information to locate the source and the origin changeset.[[br]] 
     58  The operation is rendered as an arrow-headed spline that runs from the source 
     59  changeset to the destination changeset.[[br]] 
     60  Moreover, the appearance of the destination changeset (''i.e.'' the first 
     61  changeset of the newly created branch) is tweaked to signal that it is the 
     62  initial branch changeset: stroke and fill color are swapped  
     63 
     64 '''terminates''':: 
     65  used when a developer deletes an existing branch[[br]] 
     66  The !LogEnhancer uses this keyword to change the appearance of the changeset: 
     67  it is filled with a black background, and the text is rendered in white color. 
     68 
     69 '''delivers [x]:[y]''':: used when a developer delivers a development branch 
     70  to another branch - usually to the trunk. `[x]:[y]` represents the first  
     71  (`x`) and last (`y`) changeset on the source branch that are actually  
     72  delivered.[[br]]  
     73  If a single changeset is delivered, the log message can be simplified as  
     74  `delivers [x]`[[br]] 
     75  The !LogEnhancer uses this keyword to create a ''merge'' operation. As the  
     76  SVN repository (< 1.5) is not able to track merge operations, the  
     77  !LogEnhancer needs the `x` and `y` changeset numbers to retrieve the source 
     78  of the merge operation (and the source branch)[[br]] 
     79  The operation is rendered as an arrow-headed spline that runs from the 
     80  youngest changeset (`y`) of the source to the destination changeset.[[br]] 
     81  The original changesets are also outlined with a rounded rectangle that 
     82  represents the span of the source changesets. 
     83 
     84 '''brings [x]:[y]''':: 
     85  used when a developer brings the code from a branch to another branch.  
     86  `[x]:[y]` represents the first (`x`) and last (`y`) changeset on the source 
     87  branch that are actually delivered.[[br]]  
     88  If a single changeset is brought, the log message can be simplified as  
     89  `brings [x]`[[br]] 
     90  The !LogEnhancer uses this keyword to render the operation in a very similar  
     91  way as it does the ''delivers'' operation, however the arrow-headed spline is 
     92  rendered with the orange color to differentiate ''bring'' operations 
     93  for ''deliver'' ones. 
     94 
     95 '''admins''':: 
     96  allows the repository administrator(s) to force any kind of operations which 
     97  would normally be rejected by the hook scripts 
    8498    
    85 The !LogEnhancer uses additional information from the SVN repository: 
    86 it looks for revision properties that our team use to mark some changesets 
    87 with meta information: 
    88  * `st:export` indicates a (trunk) changeset that has been replicated onto the 
    89    external repository. The !LogEnhancer uses this property to modify the  
    90    appearance of the changeset: its shape is changed from a circle to a 
    91    hexagonal shape. 
    92  
    9399== Installation == 
    94100 
     
    111117 
    112118From the [t:wiki:WebAdmin WebAdmin] plugin interface or from your `trac.ini` 
    113 file, enable the !LogEnhancer plugin.[[BR]] 
    114 The !LogEnhancer plugin appears as `revtree.logenhancer` in the plugin list. 
     119file, enable the !LogEnhancer plugin.[[br]] 
     120The !LogEnhancer plugin appears as `logenhancer.enhancer` in the plugin list. 
    115121 
    116 As you have probably enabled all the revtree features with 
    117 {{{ 
    118 [components] 
    119 revtree.* = enabled 
    120 }}} 
    121 when you installed the RevtreePlugin, the !LogEnhancer plugin will be loaded 
    122 along with the RevtreePlugin. 
    123  
    124 Nevertheless, the !LogEnhancer plugin supersedes the default !SimpleEnhancer 
     122The !LogEnhancer plugin supersedes the default !SimpleEnhancer 
    125123plugin that is self-contained in the RevtreePlugin. To avoid duplicating  
    126124''creation'' operation rendering, you want to disable the default plugin: 
     
    130128revtree.enhancer = disabled 
    131129revtree.enhancer.simpleenhancer = disabled 
     130logenhancer.enhancer.logenhancer = enabled 
    132131}}} 
    133132 
     
    135134interface. 
    136135 
     136=== Plugin activation === 
     137 
     138Please note that the plugin needs some special SVN revision properties to  
     139fully operate. These properties are set by the SVN hook scripts, which are  
     140triggered when a user commits a new revision to the repository. This means 
     141that revisions that have been created before the installation of the special 
     142hook scripts do not contain the required keywords, and are therefore not  
     143candidates for a enhanced representation in the revtree graph.  
     144 
     145Please test this plugin with revisions that are created after the installation 
     146of the hook scripts before reporting any issue. 
     147 
    137148== Author/Contributors == 
    138149 * '''Author''' [wiki:eblot] 
     150