Opened 5 years ago
Closed 4 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 , 4 years ago
Milestone: | 1.0.20 → next-dev-1.5.x |
---|
comment:2 by , 4 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 , 4 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.