Opened 4 years ago
Last modified 3 years ago
#13243 closed defect
GitCachedRepository.sync() is slow due to executing 1 git process to retrieve changes from each changeset — at Initial Version
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: | |||
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.