Modify ↓
#11971 closed enhancement (fixed)
Improve git repository performance
| Reported by: | Jun Omae | Owned by: | Jun Omae |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.0.6 |
| Component: | plugin/git | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: |
|
||
| API Changes: | |||
| Internal Changes: | |||
Description
We often use log: links with git repository in ticket. The ticket view with the links is too slow. We should improve the performance of git repository.
- The git connector constructs revisions cache for parents, children, branches and tags. The construction is performed each request if
persistent_cacheoption is disabled. We could improve it. - The revisions cache is created each request if repository is not modified. Caching refs using
git for-each-refand detecting the modification could reduce times of the creation. git for-each-refis executed to the number of shown changesets in log view. Caching name and revision of tags could avoid the executions.
Attachments (0)
Change History (4)
comment:1 by , 11 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:2 by , 11 years ago
git for-each-refis executed to the number of shown changesets in log view. Caching name and revision of tags could avoid the executions.
Proposed changes in [bcc519c7c/jomae.git].
Timing of log view with the following repository.
| before | after | |
|---|---|---|
| jomae.git | 2709ms | 1097ms |
| libgit2 | 2755ms | 1248ms |
comment:3 by , 11 years ago
- The revisions cache is created each request if repository is not modified. Caching refs using
git for-each-refand detecting the modification could reduce times of the creation.
In [03c1d875c/jomae.git], detects that git repository is modified using git show-ref and creates revisions cache only when it is modified.
Note:
See TracTickets
for help on using tickets.



Especially, that's pretty slow if a repository has many branches.
Proposed changes in [4c265be70/jomae.git].