Changes between Version 3 and Version 4 of RevtreePlugin/LogEnhancer


Ignore:
Timestamp:
May 1, 2008, 12:24:01 AM (7 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