Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 18:23:37 +0200] rev 4853
stable-doc: add multiples example for the simple cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Sep 2019 10:00:51 +0200] rev 4852
test-output: oops
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 03:17:46 +0200] rev 4851
test: update part count in tests
An off by one error got fixed upstream.
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Sep 2019 09:28:47 +0700] rev 4850
evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Oct 2018 19:32:04 +0200] rev 4849
tests: demonstrate content divergence causing "relocate node on top of itself"
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:44:38 -0700] rev 4848
cmdstate: introduce a "saver" contextmanager and use it in place of save()
Previously, the state was only saved in some paths out of these functions. This
can be problematic, if the user ctrl-c's (or `kill -9`'s) the process, or we
exit out of `relocate` for anything besides the "expected" reason, we won't
record that we were in the middle of an evolve.
One of our users has discovered that this leaves hg in a weird state; the user
did something like this:
```
$ hg evolve
<something goes wrong with the merge tool, hits ctrl-c>
<deals with the merge conflicts>
$ hg evolve --continue
abort: no interrupted evolve to continue
$ hg evolve
abort: uncommitted changes
# Note: commands.status.verbose=True is set.
$ hg status
M foo
# The repository is in an unfinished *update* state.
# No unresolved merge conflicts
# To continue: hg update
```
The user did an `hg update`, but it didn't actually do anything besides take it
out of the unfinished update state (the files were still dirty in the working
directory).
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:42:50 -0700] rev 4847
cmdstate: avoid setting a default argument to a mutable object (`{}`)
If there's ever more than one cmdstate for the lifetime of the process, this can
cause surprising behavior where the later cmdstates pick up options from the
earlier ones.
I've not seen any evidence this is actually causing any issues, but it's subtle
enough that it should probably be fixed to help save significant debugging time
later.