Fri, 08 May 2020 18:45:17 +0800 changelog: update for evolve 10.0.0 draft stable
Anton Shestakov <av6@dwimlabs.net> [Fri, 08 May 2020 18:45:17 +0800] rev 5354
changelog: update for evolve 10.0.0
Fri, 08 May 2020 18:22:26 +0800 branching: merge into stable in preparation for release draft stable
Anton Shestakov <av6@dwimlabs.net> [Fri, 08 May 2020 18:22:26 +0800] rev 5353
branching: merge into stable in preparation for release
Thu, 07 May 2020 19:47:59 -0700 utility: deal with having multiple draft default
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 07 May 2020 19:47:59 -0700] rev 5352
utility: deal with having multiple When a revision has multiple prune obsolescence markers, it's thought to be a split, and the way we try to deal with splits currently crashes.
Sun, 03 May 2020 15:39:56 +0800 changelog: summarize the last couple of features
Anton Shestakov <av6@dwimlabs.net> [Sun, 03 May 2020 15:39:56 +0800] rev 5351
changelog: summarize the last couple of features
Wed, 29 Apr 2020 21:57:59 +0800 obshistory: create _fatemarkers() similar to _originmarkers()
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Apr 2020 21:57:59 +0800] rev 5350
obshistory: create _fatemarkers() similar to _originmarkers()
Thu, 07 May 2020 01:29:48 +0200 obslog: makes --origin flag the default
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 May 2020 01:29:48 +0200] rev 5349
obslog: makes --origin flag the default Test change have been carefully validated.
Thu, 07 May 2020 01:29:24 +0200 obslog: add a --origin flag to show predecessors instead of successors
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 May 2020 01:29:24 +0200] rev 5348
obslog: add a --origin flag to show predecessors instead of successors This flag will be turned on by default in the next changeset.
Tue, 21 Apr 2020 23:45:11 +0800 obslog: add preliminary support for showing predecessors
Anton Shestakov <av6@dwimlabs.net> [Tue, 21 Apr 2020 23:45:11 +0800] rev 5347
obslog: add preliminary support for showing predecessors This functionality is not yet used right now, but will be in the next patch.
Fri, 24 Apr 2020 01:15:38 +0800 obshistory: add _originmarkers() function to be used for obslog --origin
Anton Shestakov <av6@dwimlabs.net> [Fri, 24 Apr 2020 01:15:38 +0800] rev 5346
obshistory: add _originmarkers() function to be used for obslog --origin
Fri, 08 May 2020 04:02:22 +0200 evolve: rename `evolve_source_*` to `divergence_source_*`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 May 2020 04:02:22 +0200] rev 5345
evolve: rename `evolve_source_*` to `divergence_source_*` This makes it clearer that this comes from divergence resolution.
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.
Sun, 03 May 2020 20:59:34 +0200 changelog: mention the sqlite fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 May 2020 20:59:34 +0200] rev 5334
changelog: mention the sqlite fix
Wed, 01 Apr 2020 09:21:29 -0700 evolve: extract function for relocating divergent commit
Martin von Zweigbergk <martinvonz@google.com> [Wed, 01 Apr 2020 09:21:29 -0700] rev 5333
evolve: extract function for relocating divergent commit There was some duplication here, so let's extract to a function. I'm going to add a little bit more shared code next.
Sun, 03 May 2020 01:01:19 +0200 caches: preserve permissions of top-level .hg
Joerg Sonnenberger <joerg@bec.de> [Sun, 03 May 2020 01:01:19 +0200] rev 5332
caches: preserve permissions of top-level .hg When using hg on a shared filesystem on UNIX, cache files normally inherit the permissions of the .hg directory. This is most commonly used to ensure everything is writable by all users. The sqlite3 cache files don't have a way to directly set the permission, so check if a special mode is necessary and try to apply them to newly created database files.
Sat, 02 May 2020 23:31:31 +0800 changelog: mention obsorigin template keyword
Anton Shestakov <av6@dwimlabs.net> [Sat, 02 May 2020 23:31:31 +0800] rev 5331
changelog: mention obsorigin template keyword
Tue, 10 Mar 2020 17:18:09 +0700 templatekw: add obsorigin keyword
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Mar 2020 17:18:09 +0700] rev 5330
templatekw: add obsorigin keyword
Fri, 24 Apr 2020 01:14:34 +0800 obshistory: add predecessorsandmarkers()
Anton Shestakov <av6@dwimlabs.net> [Fri, 24 Apr 2020 01:14:34 +0800] rev 5329
obshistory: add predecessorsandmarkers()
Fri, 24 Apr 2020 01:09:30 +0800 obshistory: add a function to group predsets by fold-id
Anton Shestakov <av6@dwimlabs.net> [Fri, 24 Apr 2020 01:09:30 +0800] rev 5328
obshistory: add a function to group predsets by fold-id
Tue, 21 Apr 2020 23:40:44 +0800 obshistory: add _predecessorsverb() similar to _successorsetverb()
Anton Shestakov <av6@dwimlabs.net> [Tue, 21 Apr 2020 23:40:44 +0800] rev 5327
obshistory: add _predecessorsverb() similar to _successorsetverb()
Sat, 25 Apr 2020 18:51:23 +0800 obshistory: add a docstring to patchavailable()
Anton Shestakov <av6@dwimlabs.net> [Sat, 25 Apr 2020 18:51:23 +0800] rev 5326
obshistory: add a docstring to patchavailable()
Fri, 01 May 2020 07:44:01 -0700 tests: avoid referring to commits by hash in a few places
Martin von Zweigbergk <martinvonz@google.com> [Fri, 01 May 2020 07:44:01 -0700] rev 5325
tests: avoid referring to commits by hash in a few places This patch means that the next patch can be written without manual editing of the test cases.
Fri, 01 May 2020 07:43:15 -0700 tests: add more verification of output to divergence tests
Martin von Zweigbergk <martinvonz@google.com> [Fri, 01 May 2020 07:43:15 -0700] rev 5324
tests: add more verification of output to divergence tests It's not obvious what the obsmarkers should look like in these tests and adding them highlights a bug that happens when commit we create to resolve the divergence doesn't get created because it would be empty. I also added a few graphlog calls to check that the divergence-resolution commit is in the right place (has right parentage).
Mon, 16 Dec 2019 11:14:39 -0800 tests: add debugobsolete calls before many obslog calls
Martin von Zweigbergk <martinvonz@google.com> [Mon, 16 Dec 2019 11:14:39 -0800] rev 5323
tests: add debugobsolete calls before many obslog calls As requested by Pierre-Yves. The main reason is to catch superfluous creation of obsmarkers, as well as any future changes to how the obsmarkers get created.
Sun, 03 May 2020 01:45:04 +0200 stablerangecache: sanity check subranges
Joerg Sonnenberger <joerg@bec.de> [Sun, 03 May 2020 01:45:04 +0200] rev 5322
stablerangecache: sanity check subranges Try to detect invalid conditions on insert as would result in deep recursions and final aborts much later. This has been observed on two different machines and the check makes it hopefully possible to find the origin of the problem.
Sun, 03 May 2020 20:11:37 +0800 obslog: use unfiltered repo for --no-graph implementation too
Anton Shestakov <av6@dwimlabs.net> [Sun, 03 May 2020 20:11:37 +0800] rev 5321
obslog: use unfiltered repo for --no-graph implementation too repo.unfiltered() is used for graph version of obslog, because if we want to filter non-local changesets, we only have to provide --filternonlocal flag on the command line and _nodesandmarkers() will handle filtering. But that means for obslog without -f to work correctly we need to provide unfiltered repo to that function. With this patch both implementations of obslog (--graph and --no-graph) see the same repo.
Thu, 09 Apr 2020 20:02:32 +0200 tests: don't assume that echo will unescape \\
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 20:02:32 +0200] rev 5320
tests: don't assume that echo will unescape \\
Thu, 09 Apr 2020 19:52:30 +0200 tests: avoid non-portable sed command
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 19:52:30 +0200] rev 5319
tests: avoid non-portable sed command sed -i is a GNU extension and the i command without newline as well. Just create the file from scratch with printf to side-step the issue.
Thu, 09 Apr 2020 19:51:03 +0200 tests: check for file existance in a portable way
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 19:51:03 +0200] rev 5318
tests: check for file existance in a portable way The precise output of ls is highly OS specific, so just use the simpler test command.
Thu, 09 Apr 2020 19:50:03 +0200 tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 19:50:03 +0200] rev 5317
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems ls on 2BSD derived systems historically defaults to -A for root, so use it unconditionally for consistent results.
Thu, 09 Apr 2020 14:49:31 +0200 tests: silence potential warnings about uname -o
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 14:49:31 +0200] rev 5316
tests: silence potential warnings about uname -o The option is not supported on the BSDs, but also not relevant as it is only used to detect msys.
Tue, 24 Mar 2020 23:43:28 +0100 evolve: remove unused divergenceflag and splitflag of MultipleSuccessorsError draft
Manuel Jacob <me@manueljacob.de> [Tue, 24 Mar 2020 23:43:28 +0100] rev 5315
evolve: remove unused divergenceflag and splitflag of MultipleSuccessorsError
Sat, 21 Mar 2020 20:36:41 +0100 evolve: consider all obsolete ancestors when finding new parent for orphan draft
Manuel Jacob <me@manueljacob.de> [Sat, 21 Mar 2020 20:36:41 +0100] rev 5314
evolve: consider all obsolete ancestors when finding new parent for orphan Both the old and the new logic have in common that the orphan changeset is moved to the tipmost successor of one or more ancestors of the orphan changeset. The previous logic considered only the first non-pruned ancestor of the orphan changeset. The new logic considers all obsolete ancestors of the orphan changeset. The logic in _possibledestination() had to be changed to be consistent with the new logic.
Fri, 01 May 2020 21:05:37 +0200 py3: fix debugstablerangecache
Joerg Sonnenberger <joerg@bec.de> [Fri, 01 May 2020 21:05:37 +0200] rev 5313
py3: fix debugstablerangecache
Wed, 29 Apr 2020 00:44:14 +0800 topic: provide cache to successorssets() in _singlesuccessor()
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Apr 2020 00:44:14 +0800] rev 5312
topic: provide cache to successorssets() in _singlesuccessor() Since we're using obsutil.successorssets() in a loop, it may help performance to have cache.
Wed, 29 Apr 2020 00:43:13 +0800 evolve: provide cache to successorssets() in _singlesuccessor()
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Apr 2020 00:43:13 +0800] rev 5311
evolve: provide cache to successorssets() in _singlesuccessor() Since we're using obsutil.successorssets() in a loop, it may help performance to have cache.
Wed, 29 Apr 2020 00:28:15 +0800 evolve: provide cache to successorssets() in _possibledestination()
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Apr 2020 00:28:15 +0800] rev 5310
evolve: provide cache to successorssets() in _possibledestination() Since we're using obsutil.successorssets() in a loop, it may help performance to have cache.
Sun, 29 Mar 2020 17:41:48 +0700 obslog: support --all with --no-graph
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 17:41:48 +0700] rev 5309
obslog: support --all with --no-graph
Sun, 29 Mar 2020 17:21:56 +0700 obslog: support --filternonlocal with --no-graph
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 17:21:56 +0700] rev 5308
obslog: support --filternonlocal with --no-graph
Wed, 18 Mar 2020 19:20:17 +0700 obshistory: restructure templates a bit, drop default verb ("pruned")
Anton Shestakov <av6@dwimlabs.net> [Wed, 18 Mar 2020 19:20:17 +0700] rev 5307
obshistory: restructure templates a bit, drop default verb ("pruned") We always have a verb provided to the templates now, this should be fine.
Mon, 16 Mar 2020 19:13:33 +0700 obshistory: prepare data for displaymarkers() in a separate function
Anton Shestakov <av6@dwimlabs.net> [Mon, 16 Mar 2020 19:13:33 +0700] rev 5306
obshistory: prepare data for displaymarkers() in a separate function
Mon, 13 Jan 2020 16:32:25 +0700 obshistory: make patchavailable() handle predecessors too
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 16:32:25 +0700] rev 5305
obshistory: make patchavailable() handle predecessors too
Tue, 17 Mar 2020 19:37:08 +0700 tests: make sure not to test the same thing twice
Anton Shestakov <av6@dwimlabs.net> [Tue, 17 Mar 2020 19:37:08 +0700] rev 5304
tests: make sure not to test the same thing twice A block under this one already tests obslog --no-graph with -f. Right now there's no difference in output, but maybe some day obslog --no-graph will actually support --filternonlocal.
Wed, 11 Mar 2020 19:05:45 +0700 obshistory: rename precursors to predecessors in displayrevs()
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 19:05:45 +0700] rev 5303
obshistory: rename precursors to predecessors in displayrevs()
Wed, 11 Mar 2020 18:09:11 +0700 obshistory: rename _debugobshistorydisplaymarker() to displaymarkers()
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 18:09:11 +0700] rev 5302
obshistory: rename _debugobshistorydisplaymarker() to displaymarkers() Apart from the obvious change, the function now can show multiple markers, not just one.
Wed, 11 Mar 2020 18:06:30 +0700 obshistory: rename graph/revs-displaying functions
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 18:06:30 +0700] rev 5301
obshistory: rename graph/revs-displaying functions Same idea as the previous patch, but with a "display" prefix.
Wed, 11 Mar 2020 18:03:52 +0700 obshistory: rename node/ctx-displaying functions
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 18:03:52 +0700] rev 5300
obshistory: rename node/ctx-displaying functions Not just for debug, and yes we know it's obshistory-related.
Thu, 23 Apr 2020 03:06:30 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Apr 2020 03:06:30 +0200] rev 5299
branching: merge with stable
Mon, 20 Apr 2020 00:05:05 +0800 topic: use generationssubrel less directly, because it was recently renamed stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 20 Apr 2020 00:05:05 +0800] rev 5298
topic: use generationssubrel less directly, because it was recently renamed
Tue, 07 Apr 2020 15:39:23 +0200 auto-publish: issue the capabilities in all cases stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Apr 2020 15:39:23 +0200] rev 5297
auto-publish: issue the capabilities in all cases It seems better to message client that we support the capabilities in all cases.
Thu, 16 Apr 2020 18:32:14 +0800 packaging: add an entry to debian/changelog mentioning the previous change stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 16 Apr 2020 18:32:14 +0800] rev 5296
packaging: add an entry to debian/changelog mentioning the previous change
Thu, 16 Apr 2020 01:10:22 +0800 packaging: bump minimum required version of mercurial in debian/control stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 16 Apr 2020 01:10:22 +0800] rev 5295
packaging: bump minimum required version of mercurial in debian/control
(0) -3000 -1000 -300 -100 -60 tip