Opened 6 years ago
Closed 5 years ago
#13243 closed defect (fixed)
GitCachedRepository.sync() is slow due to executing 1 git process to retrieve changes from each changeset
| Reported by: | Jun Omae | Owned by: | Jun Omae |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.5.2 |
| Component: | plugin/git | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | Branch: | ||
| Release Notes: |
Fixed slow |
||
| API Changes: | |||
| Internal Changes: | |||
Description
I noticed repository sync command for cached git repository with many commits is very slow on especially Windows while porting to Python 3. The command invokes GitChangeset.get_changes() to retrieve changes to create node_change records. The method executes git diff-tree -z -r -M <tree1> <tree2> each time.
We could use git diff-tree --stdin ... and reuse the process rather than executing each time. See [0b691b30d/jomae.git] for trunk with Python 3.
I'll post proposed changes for 1.0-stable and results of the improvement.
Attachments (0)
Change History (3)
comment:1 by , 5 years ago
| Milestone: | 1.0.20 → next-dev-1.5.x |
|---|
comment:2 by , 5 years ago
| Milestone: | next-dev-1.5.x → 1.5.2 |
|---|
Assigning to 1.5.2 since the change in is the py3 branch.
comment:3 by , 5 years ago
| Release Notes: | modified (diff) |
|---|---|
| Resolution: | → fixed |
| Status: | assigned → closed |
Changes committed to trunk in r17483.



Re-targeting to 1.5dev because proposed changes are not small for stable branches.