For SmartSVN we are optionally displaying merge arrows in the Revision
Graph. Here is a sample image, how this looks like:

http://imgur.com/MzrLq00

>From the JavaHL sources I understand that there is currently only one
method to retrieve server-side mergeinfo and this one works on a single
revision only:

Map<String, Mergeinfo> getMergeinfo(Iterable<String> paths,
                                    long revision,
                                    Mergeinfo.Inheritance inherit,
                                    boolean includeDescendants)

This makes the Merge Arrow feature practically unusable for larger graphs.

To improve performance, in earlier versions we were using a client-side
mergeinfo cache (similar as the main log-cache, which TSVN is using as
well). However, populating this cache (i.e. querying for mergeinfo for
*every* revision of the repository) often resulted in bringing the
entire Apache server down, especially if many users were building their
log cache at the same time.

To address these problems, it would be great to have a more powerful
API, which allows either to retrieve all mergeinfo for a *revision
range* or for a *set of revisions*.

Querying a set of revisions would be more flexible and would allow to
generate merge arrows on the fly. On the other hand, to alleviate the
server, it's desirable to cache retrieved mergeinfo on the client-side
anyway, hence a range query would be fine as well.

-Marc

Reply via email to