= Technical details about the plugin limitations = Several requests have been made to enhance the plugin. This page sums up the technical limitations, and the design choices. == Could the plugin support ... ? == === Images === The plugin could be enhanced to generate PNG revtree images for browsers that do not support SVG. It could, but it won't. SVG is a W3c standard, and is becoming popular.[[BR]] I want to keep the plugin simple, not universal. Upgrade your web browser if it does not support SVG. '''User Comment''' : However, is it possible to be able to draw the graph using [http://www.graphviz.org/ GraphViz] ? The idea I have in my mind is to refactor the code and introduce an interface to support multiple renderers. That way you could write a default renderer using [http://www2.sfk.nl/svg SVGdraw] but others could write a renderer based on '''!GraphViz''' and thus be able to use different formats. === Version control backend === The plugin could be enhanced to support other version control backends, such as Hg ([http://www.selenic.com/mercurial/ Mercurial]). I do not plan to support other backends for now. Support for Hg might be possible, as the plugin uses the VC-independent layer of Trac. Some issues need to be addressed, though: * changesets need to be ordered. The plugin uses one of the SVN changeset properties: each successive commit increases the revision number by one. It does not use the revision date for ordering changesets. This would need to be changed for Hg. Would it make sense that the Trac VC abstraction layer provide a sort method for ordering changesets? - '''User comment''' : Isn't [t:browser:trunk/trac/versioncontrol/api.py?rev=7890&marks=289-295#L289 trac.versioncontrol.api.Repository.rev_older_than] enough ? You could also use [t:browser:trunk/trac/versioncontrol/api.py?rev=7890&marks=222-230#L222 trac.versioncontrol.api.Repository.get_quickjump_entries] to detect interesting entries (e.g. ''branches'' and ''tags''). This works for both `svn` and `hg` ''';o)'''. * SVN changesets are integers. The changeset graphic elements are easily rendered as the integers have a short representation (a few characters). Hg uses wider changeset identifiers, which make them unsuitable for display in the existing changeset graphic elements of the revtree graph. Suggestions are welcome! [[BR]] See ([t:ticket:3533 #3533]) for a related ticket.