view tests/test-revisions.t @ 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 d916ed3ca951
children 95c4cca641f6
line wrap: on
line source

  $ hg init repo
  $ cd repo

  $ echo 0 > a
  $ hg ci -qAm 0
  $ for i in 5 8 14 43 167; do
  >   hg up -q 0
  >   echo $i > a
  >   hg ci -qm $i
  > done
  $ cat <<EOF >> .hg/hgrc
  > [alias]
  > l = log -T '{rev}:{shortest(node,1)}\n'
  > EOF

  $ hg l
  5:00f
  4:7ba5d
  3:7ba57
  2:72
  1:9
  0:b
  $ cat <<EOF >> .hg/hgrc
  > [experimental]
  > revisions.disambiguatewithin=not 4
  > EOF
  $ hg l
  5:00
  4:7ba5d
  3:7b
  2:72
  1:9
  0:b
9 was unambiguous and still is
  $ hg l -r 9
  1:9
7 was ambiguous and still is
  $ hg l -r 7
  abort: 00changelog.i@7: ambiguous identifier!
  [255]
7b is no longer ambiguous
  $ hg l -r 7b
  3:7b

  $ cd ..