comparison hgext/largefiles/__init__.py @ 45545:e5e1285b6f6f

largefiles: prevent in-memory merge instead of switching to on-disk I enabled in-memory merge by default while testing some changes. I spent quite some time troubleshooting why largefiles was still creating an on-disk mergestate. Then I found out that it ignores the callers `wc` argument to `mergemod._update()` and always uses on-disk merge. This patch changes that so we raise an error if largefiles is used with in-memory merge. That way we'll notice if in-memory merge is used with largefiles instead of silently replacing ignoring the `overlayworkingctx` instance and updating the working copy instead. I felt a little bad that this would break things more for users with both largefiles and in-memory rebase enabled. So I also added a higher-level override to make sure that largefiles disables in-memory rebase. It turns out that that fixes `run-tests.py -k largefiles --extra-config-opt rebase.experimental.inmemory=1`. Differential Revision: https://phab.mercurial-scm.org/D9069
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 22 Sep 2020 23:18:37 -0700
parents 687b865b95ad
children 89a2afe31e82
comparison
equal deleted inserted replaced
45544:2b339c6c6e99 45545:e5e1285b6f6f
193 193
194 # override some extensions' stuff as well 194 # override some extensions' stuff as well
195 for name, module in extensions.extensions(): 195 for name, module in extensions.extensions():
196 if name == b'rebase': 196 if name == b'rebase':
197 # TODO: teach exthelper to handle this 197 # TODO: teach exthelper to handle this
198 extensions.wrapfunction(module, b'rebase', overrides.overriderebase) 198 extensions.wrapfunction(
199 module, b'rebase', overrides.overriderebasecmd
200 )
199 201
200 202
201 revsetpredicate = eh.revsetpredicate 203 revsetpredicate = eh.revsetpredicate