sapling/edenscm/hgext/pushrebase
Durham Goode 3309a8090a pushrebase: read the manifest before looping through files
Summary:
pushrebase has logic that loops through all the files and builds a list
of what has changed. Unfortunately, Mercurial has some optimizations where if
the manifest isn't loaded already, it tries to only load the manifest delta, and
checks if this might be a good idea by first checking if the file is in the
commit metadata file list. The commit metadata is a list, which makes it a O(n)
scan to check containment. Since we do this for every file, it becomes O(n^2).

To avoid this, let's just make sure the actual manifest is loaded.

Once every repo is a tree repo, we can get rid of the manifest delta
optimization and get rid of the need to prefetch here.

Reviewed By: singhsrb

Differential Revision: D13944829

fbshipit-source-id: c0f33ca650b7956a1f39e961c94678a6f7f380b6
2019-02-05 16:05:50 -08:00
..
__init__.py pushrebase: move selecting commit date in a separate file 2019-02-01 09:42:57 -08:00
common.py pushrebase: move selecting commit date in a separate file 2019-02-01 09:42:57 -08:00
errors.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
recording.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
stackpush.py pushrebase: read the manifest before looping through files 2019-02-05 16:05:50 -08:00