This instance will be upgraded to Heptapod 0.19.0rc2 on 2021-01-18 at 11:00 UTC+1 (a few minutes of downtime)

evolvecmd: don't update working copy when using in-memory merge

This patch removes the update of the working copy after each in-memory
merge and only does it for the last evolved commit. That means that
there is little benefit in using in-memory for the last commit, so we
use the on-disk merge for the last commit.

There's still no significant speedup in the hg repo. It seems that the
cost of updating the working copy is not large enough to make much
difference, and the cost of reading and updating obsmarkers is
relatively high in that repo. A significant part of the time (~35%) is
spent in `repoview.computehidden()` because it is recalculated for
every commit (seems like potential for improvement).

I made similar changes in the mozilla-unified repo (which has a
significantly larger working copy), by adding 10 commits each changing
one line of a file. There, evolving 9 of those commits took 34s before
this patch and 20s after. I measured similar speedups in an internal
repo (9.0s -> 5.2s).
8 jobs for topic/default/in-memory in 3 minutes and 44 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Test
passed #119830
checks-py2

00:01:01

passed #119831
checks-py3

00:01:20

passed #119836
doc

00:00:21

manual #119829
allowed to fail manual
pytype
failed #119832
tests-py2-cext

00:03:08

failed #119833
tests-py2-pure

00:02:31

failed #119834
tests-py3-cext

00:03:43

failed #119835
tests-py3-pure

00:03:32

 
Name Stage Failure
failed
tests-py3-cext Test
Failed test-topic-stack.t: output changed
Failed test-topic-tutorial.t: output changed
Failed test-topic.t: output changed
Failed test-unstability-resolution-result.t: output changed
# Ran 195 tests, 6 skipped, 74 failed.
python hash seed: 3033162523
Running after_script
Uploading artifacts for failed job
ERROR: Job failed: exit code 1
failed
tests-py3-pure Test
Failed test-topic-stack.t: output changed
Failed test-topic-tutorial.t: output changed
Failed test-topic.t: output changed
Failed test-unstability-resolution-result.t: output changed
# Ran 195 tests, 6 skipped, 74 failed.
python hash seed: 1331714611
Running after_script
Uploading artifacts for failed job
ERROR: Job failed: exit code 1
failed
tests-py2-cext Test
Failed test-topic-stack.t: output changed
Failed test-topic-tutorial.t: output changed
Failed test-topic.t: output changed
Failed test-unstability-resolution-result.t: output changed
# Ran 195 tests, 6 skipped, 74 failed.
python hash seed: 3850481735
Running after_script
Uploading artifacts for failed job
ERROR: Job failed: exit code 1
failed
tests-py2-pure Test
Failed test-topic-stack-complex.t: output changed
Failed test-topic-stack-data.t: output changed
Failed test-topic-stack.t: output changed
Failed test-topic-tutorial.t: output changed
Failed test-topic.t: output changed
Failed test-unstability-resolution-result.t: output changed
# Ran 195 tests, 6 skipped, 74 failed.
python hash seed: 2512987843
ERROR: Job failed: exit code 1