Thu, 07 May 2020 07:57:14 -0700 evolve: mark new hash-salting extras keys as uninteresting for effect flag
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 May 2020 07:57:14 -0700] rev 5344
evolve: mark new hash-salting extras keys as uninteresting for effect flag The user doesn't care if the `evolve_source_local`/`evolve_source_other` values in the extras changed, so this patch adds them to the blacklist that already exists for that purpose. This should also fix the flakiness we've seen in some tests. The flakiness seemed to stem from `mercurial.obsutil.geteffectflag()` not sorting extras keys. That means we ran into it relatively often for the `evolve_source_local`/`evolve_source_other` keys because there were two of them. That sorting bug should be fixed upstream.
Mon, 09 Dec 2019 11:09:11 -0800 evolve: handle relocation during divergence resolution producing no changes
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 11:09:11 -0800] rev 5343
evolve: handle relocation during divergence resolution producing no changes When resolving divergence and the two divergent commits have different parents, we start by rebasing one of them to have the same parent as the other. That step can result in no changes to commit. When it does, we would crash with a TypeError before this patch. This patch fixes it by instead creating an empty commit in that scenario. The existing code then continues to attempt to merge it, which produces no changes, and no commit is created on top. The other side of the divergence is marked as successor as usual, so orphans from the side that became empty will be evolved to the right place (see test).
Mon, 09 Dec 2019 10:05:24 -0800 tests: show crash from divergence resolution resulting in empty commit
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:05:24 -0800] rev 5342
tests: show crash from divergence resolution resulting in empty commit When relocating a commit results in an empty commit (because the changes are already in the destination), we get a TypeError from evolve.
Thu, 30 Apr 2020 10:05:14 -0700 evolve: always create commit when resolving divergence
Martin von Zweigbergk <martinvonz@google.com> [Thu, 30 Apr 2020 10:05:14 -0700] rev 5341
evolve: always create commit when resolving divergence When resolving content-divergence, the final commit we create may end up empty (which means that Mercurial won't even create it). We've had code for handling that in evolve ever since 41bf6c27a122 (evolve: stabilize now handle conflicting changeset, 2012-08-23). However, that resolved the issue by marking on the divergent commits as successor. As Pierre-Yves has pointed out (in other code reviews), we should instead be creating a new successor. So that's what this patch does. It does that by setting `ui.allowemptycommit` while creating the final commit. However, that is not enough, because we may end up creating the same nodeid as already existed (we'd then end up trying to mark the "new" commit a successor of itself). To solve that, we add some salt to the commit extras. That salt affects lots of tests.
Tue, 05 May 2020 16:29:52 +0800 tests: replace an X+X revset with something meaningful
Anton Shestakov <av6@dwimlabs.net> [Tue, 05 May 2020 16:29:52 +0800] rev 5340
tests: replace an X+X revset with something meaningful The change in aab2afc2bd82 seem to have been make too hastily.
Tue, 05 May 2020 16:54:24 +0800 tests: update section headers and comments in obslog-related tests
Anton Shestakov <av6@dwimlabs.net> [Tue, 05 May 2020 16:54:24 +0800] rev 5339
tests: update section headers and comments in obslog-related tests
Tue, 05 May 2020 16:52:59 +0800 tests: use common obshistory_setup.sh script instead of manual setup
Anton Shestakov <av6@dwimlabs.net> [Tue, 05 May 2020 16:52:59 +0800] rev 5338
tests: use common obshistory_setup.sh script instead of manual setup This is now consistent with other test-evolve-obshistory*.t tests.
Tue, 05 May 2020 16:27:02 +0800 tests: remove "second diverged revision" from a phase divergence test
Anton Shestakov <av6@dwimlabs.net> [Tue, 05 May 2020 16:27:02 +0800] rev 5337
tests: remove "second diverged revision" from a phase divergence test It was basically testing the same thing twice with a different comment.
Tue, 05 May 2020 15:43:43 +0800 obshistory: omit duplicate notes of obsolescence operations
Anton Shestakov <av6@dwimlabs.net> [Tue, 05 May 2020 15:43:43 +0800] rev 5336
obshistory: omit duplicate notes of obsolescence operations When folding changesets, it's possible to provide a --note flag to e.g. fold or prune, which will store a note for that operation. But since there would be more than one marker for the fold operation and the provided note would be stored in all of them, _markersnotes() previously would return the same text message many times. We don't really want to see the same thing over and over, so let's make notes a set(). This will also make unrelated operations with the same note show the message only once, which is probably an improvement too.
Tue, 05 May 2020 20:25:33 +0200 changelog: adjust
Joerg Sonnenberger <joerg@bec.de> [Tue, 05 May 2020 20:25:33 +0200] rev 5335
changelog: adjust The changes only apply to newly created sqlite database. There are code pathes that drop existing ones, but that's a more complicated condition.
(0) -3000 -1000 -300 -100 -10 +10 tip