GitCachedRepository.sync() is slow due to executing 1 git process to retrieve changes from each changeset
|Reported by:||Jun Omae||Owned by:||Jun Omae|
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.