Edgewall Software

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.

Change History (0)

Note: See TracTickets for help on using tickets.