Opened 11 years ago
Last modified 10 years ago
#11219 closed defect
SubversionMergePropertyDiffRenderer is slow — at Initial Version
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | 0.12.6 |
Component: | version control/changeset view | Version: | |
Severity: | major | Keywords: | performance svn mergeinfo |
Cc: | Jun Omae, mpotter@… | Branch: | |
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
The repository has around 40000 revisions, and a lot of mergeinfo on the trunk.
When viewing a changeset that affects mergeinfo on the trunk, it takes 20 seconds to render the changes. render_property_diff()
loops on every revision contained in the new mergeinfo property and makes one or more database requests for each (_get_node_revs()
), which makes thousands in this case. The displayed information as a result is something like (with links):
trunk Property svn:mergeinfo changed /sandboxes/t6823 (added) merged: 38954-38956
Note that svn returns the same information in 0.1 second
$ svn diff -c 38957 svn://svn.xxx.yyy/sdk/ (...) Property changes on: trunk ___________________________________________________________________ Modified: svn:mergeinfo Merged /sandboxes/t6823:r38954-38956
Sadly, it seams that the versioncontrol API does not allow to fetch property diffs, only file diffs.
This is with Trac 1.1.2dev and Postgres 9.1