Version 4 (modified by 17 years ago) (diff) | ,
---|
Revision Graph for the Version Control Browser
Description
This plugin renders a graphical representation of the repository.
Overview
This plugin creates a graph that show the changesets of the project repository.
Filters
The user may select which changesets are to be rendered, based on the several filters:
- The main filters are mutually exclusive:
- changeset range: this filter selects a range of changesets to be rendered
- time range: this filters selects the latest changesets of the
repository, with the following predefined time ranges:
- day, 2 days, 3 days, week, fortnight, month, 2 months, 3 months, year
- Any of the following filters can be combined to the main filter to refine
the selection:
- branch name: this filter selects a single branch, along with all branches declared as 'trunks'
- author: this filter selects all the branches for which the selected author has be a participant (i.e. has committed at least one changeset)
- terminated branches: this filter allows to discard all branches that have been 'terminated', i.e. deleted
Two kinds of views can be selected:
- compact: in this mode, the revtree graph is kept as compact as possible, as an attempt to make all the changeset visible in the web browser page and thereby minimize the scrolling actions. Changesets are placed along on their branche, irrespectively of the nearby branches.
- timeline: in this mode, the revtree graph maintains a time view of the repository: each changeset can be seen relatively to the other changesets, whichever the changeset branch.
User preference persistence
The plugin stores the user settings (filters) in the user session, so the latest configuration is used whenever the user selects the 'revtree' page.
In some cases, the chosen filters select no changeset hence no revtree graph cannot be rendered. In such an event, a Trac error is displayed with the following message:
Selected filters cannot render a revision tree
User settings are not saved if the filter does not permit to generate a valid revtree graph.
Limitations
There are a lot of limitations, so read them carefully.
- the RevtreePlugin generates inlined SVG.
- SVG is only supported on modern browsers
- inlined SVG means that the plugin generates XHTML+SVG data, which are only supported by few browsers. Many browsers that support SVG do not accept inlined SVG.
- the RevtreePlugin only works with SVN repositories
- it does not support SVN authz
- it has not been thought with multiple projects per repository in mind, so its support for this kind of configuration is probably weak
- filters do not support multiple selections: one can only select all or one branch, all or one author
See RevtreePlugin/Limitations for a technical 'discussion' about the current limitations.
Supported browsers
All browsers that supports inlined SVG should work. However, as it seems that only few browsers are able to cope w/ this data format, the following table tries to sum up what you can expect from your browser:
OS | Browser | Version | Support | Issues |
---|---|---|---|---|
Windows | Firefox | 1.5, 2.0 | OK | |
IE + Adobe | 7.0 + 3.03 | Joke | Does not even understand the XHTML+XML MIME type | |
Opera | 9.02 | Partial | Info tips are not shown | |
OS X | Firefox | 1.5, 2.0 | Buggy | Changeset text is not show |
3.0a1 | Buggy | Issues with fonts | ||
Camino | 1.0.3 | Buggy | Changeset text is not shown | |
OmniWeb | 5.5.1 | Weak | Changeset text sometimes disappears Info tips are not shown | |
Safari | 2.0.4 | No | Does not support SVG | |
Webkit | r18244 | Partial | Info tips are not shown | |
Opera | 9.02 | Partial | Info tips are not shown | |
Linux | Not tested - yet |
Additional notes
When info tips are not shown, links to the source browser are likely to be broken.
Bugs/Feature Requests
Existing bugs and feature requests for RevtreePlugin are here.
If you have any issues, create a new ticket.
Installation
Get the plugin source code
Download
Download the zipped source from [download:revtreeplugin here].
Source
You can check out RevtreePlugin from here using Subversion, or browse the source with Trac.
Build the plugin
As with any other plugin:
python setup.py bdist_egg
Installation of the plugin
Copy the generated egg file (from the dist/
directory) to your project
plugin directory, or in the global plugin directory if you want to use it for
several Trac projects
Configuration
Revtree plugin can be configured with the help of the following settings:
- Mandatory parameters defined in the Trac section
[trac] # SVN repositories only repository_type = svn # Base URL is a required parameter: it should be defined base_url = none
- Optional parameters defined in the
revtree
section[revtree] # regular expression for branch recognition # (always define 2 named groups: 'branch' and 'path') branch_re = ^(?P<branch>branches/[^/]+|trunk|data)(?:/(?P<path>.*))?$ # space-separated list of branches that should be considered as 'trunks' trunks = trunk # SVG rendering scale (real number) scale = 1 # oldest revision to consider (default to the latest revision in the repos) revbase = 1 # whether time filters are related to the youngest revision or # based on absolute time reltime = True # default appearance (either 'compact' or 'timeline') style = compact
Some settings deserve additional information:
- the
style
option defines the default revtree graph style. Each user overwrites the default style the first time he updates the revtree style. - the
reltime
option cannot be customized by the users. The admin choses whether the time filters are based on the absolute time or the youngest changeset in the repository. Let's say the youngest revision in the repository has been committed three days ago:- if
reltime
is set, the revtree time starts three days ago as well: if the user selects the last 2 days as a filter, the last 5 days (3+2) would be shown - if
reltime
is not set, the revtree time starts now: if the user selects the last 2 days, no changeset would be shown.
- if
Permissions
The RevtreePlugin defines a new permission REVTREE_VIEW
. This permission
should be defined for the 'revtree' link to appear in the main navigation bar,
and to give access to the revtree feature.
Example
Recent Changes
- 15470 by rjollos on 2016-04-14 00:17:26
-
Remove
tag_svn_revsion
attribute
The attribute isn't supported in setuptools >= 10.
- 13844 by eblot on 2014-04-09 13:50:23
-
Creates a new directory for Revtree dedicated to Trac 1.1+ installations
- 13716 by eblot on 2014-03-03 08:59:13
-
Closes #7608. Remove seed initializer, keep random color generation in case a branch is not named (which should never happen)
(more)
How is this plugin related to the previous plugin?
It superseeds the SvnCcHelpersScript/RevTree plugin:
- it does not rely on any Clearcase external scripts nor on any SVN custom properties.
- it does not use the GraphvizPlugin nor the Graphviz (dot) tool - it is a pure Python implementation
- it uses the Trac repository cache, which dramatically speeds up the creation of the graph
The older plugin code has been removed from the TracHacks.org repository.
Author/Contributors
Author
Contributors
Libraries
The RevtreePlugin uses the following libraries:
- Jquery a lightweight, yet powerful Javascript library
- SVGdraw is a Python library that enables SVG generation
Attachments (10)
-
userprefs.png (16.0 KB) - added by 17 years ago.
User preferences (filters)
-
changeset-tip.png (47.2 KB) - added by 17 years ago.
Changeset info tip
-
revtree.png (92.5 KB) - added by 17 years ago.
Revtree view (compact mode)
-
revtree-stresstest.png (214.8 KB) - added by 17 years ago.
Revtree stresstest (timeline mode, reduced to 40%)
-
changeset-tip.2.png (79 bytes) - added by 17 years ago.
(empty image, attachment deletion is not allowed)
-
revtree2.png (79 bytes) - added by 17 years ago.
(empty image, attachment deletion is not allowed)
-
MainMenuItem.png (12.8 KB) - added by 16 years ago.
Revtree as a main menu item
-
ContextualMenuItem.png (12.5 KB) - added by 16 years ago.
Revtree as a contextual menu item
-
compatmatrix.txt (5.9 KB) - added by 16 years ago.
Compatibility matrix RST source (RST renderer is unavailable for now)
-
revtree.2.png (173.1 KB) - added by 16 years ago.
Revtree sample image (v0.6.0), w/ Firefox 3.0.1
Download all attachments as: .zip