sapling/edenscm/hgext
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
..
absorb codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
amend codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
commitcloud codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
convert codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
extlib watchman: canonicalize repo root before querying watchman 2019-02-04 10:34:08 -08:00
fastannotate codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fastmanifest codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fsmonitor rust: move bindings to a single python extension 2019-02-01 17:53:22 -08:00
hgevents codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
hggit rust: move bindings to a single python extension 2019-02-01 17:53:22 -08:00
hgsubversion codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
highlight codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
infinitepush codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
lfs lfs: include name of file being downloaded in progress bar 2019-02-04 11:44:28 -08:00
p4fastimport codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
perfsuite doc: fix rst format 2019-01-30 14:57:42 -08:00
pushrebase pushrebase: read the manifest before looping through files 2019-02-05 16:05:50 -08:00
remotefilelog remotefilelog: add an option to verify all the hashes 2019-02-05 15:03:24 -08:00
repogenerator codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
treemanifest codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
__init__.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
arcdiff.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
automv.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
blackbox.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
catnotate.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
checkmessagehook.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
chistedit.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
churn.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
cleanobsstore.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
clienttelemetry.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
clindex.pyx codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
clonebundles.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
commitextras.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
conflictinfo.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
copytrace.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
crdump.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
debugcommitmessage.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
debugshell.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
dialect.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
directaccess.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
dirsync.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
drop.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
edrecord.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
eol.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
errorredirect.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
extdiff.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
extorder.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
extutil.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fastlog.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fbconduit.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fbhistedit.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fetch.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
fixcorrupt.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
generic_bisect.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
githelp.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
gitlookup.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
gitrevset.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
globalrevs.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
gpg.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
grepdiff.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
grpcheck.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
hgsql.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
hiddenerror.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
histedit.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
infinitepushbackup.py doc: fix rst format 2019-01-30 14:57:42 -08:00
interactiveui.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
journal.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
linkrevcache.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
logginghelper.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
lz4revlog.py rust: move bindings to a single python extension 2019-02-01 17:53:22 -08:00
mergedriver.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
morecolors.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
morestatus.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
myparent.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
nointerrupt.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
ownercheck.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
patchbomb.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
patchrmdir.pyx codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
phabdiff.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
phabstatus.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
phrevset.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
progressfile.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
pullcreatemarkers.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
purge.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
rage.py doc: fix rst format 2019-01-30 14:57:42 -08:00
rebase.py doc: fix rst format 2019-01-30 14:57:42 -08:00
remotenames.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
reset.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
sampling.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
schemes.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
share.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
shelve.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
sigtrace.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
simplecache.py simplecache: don't use memcache in tests 2019-02-01 19:19:36 -08:00
smartlog.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
sparse.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
sshaskpass.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
stablerev.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
stat.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
strip.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
traceprof.pyx codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
transplant.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
tweakdefaults.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
undo.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
whereami.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
win32mbcs.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
win32text.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00