diff 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
line wrap: on
line diff
--- a/hgext/largefiles/__init__.py	Mon Sep 21 09:56:48 2020 -0700
+++ b/hgext/largefiles/__init__.py	Tue Sep 22 23:18:37 2020 -0700
@@ -195,7 +195,9 @@
     for name, module in extensions.extensions():
         if name == b'rebase':
             # TODO: teach exthelper to handle this
-            extensions.wrapfunction(module, b'rebase', overrides.overriderebase)
+            extensions.wrapfunction(
+                module, b'rebase', overrides.overriderebasecmd
+            )
 
 
 revsetpredicate = eh.revsetpredicate