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.
Anton Shestakov <av6@dwimlabs.net> [Sun, 03 May 2020 15:39:56 +0800] rev 5351
changelog: summarize the last couple of features
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Apr 2020 21:57:59 +0800] rev 5350
obshistory: create _fatemarkers() similar to _originmarkers()
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.
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.
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.
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
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.
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.
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).
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.
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.
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.
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
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.
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.
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.
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.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 May 2020 20:59:34 +0200] rev 5334
changelog: mention the sqlite fix
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.
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.
Anton Shestakov <av6@dwimlabs.net> [Sat, 02 May 2020 23:31:31 +0800] rev 5331
changelog: mention obsorigin template keyword
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Mar 2020 17:18:09 +0700] rev 5330
templatekw: add obsorigin keyword
Anton Shestakov <av6@dwimlabs.net> [Fri, 24 Apr 2020 01:14:34 +0800] rev 5329
obshistory: add predecessorsandmarkers()
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
Anton Shestakov <av6@dwimlabs.net> [Tue, 21 Apr 2020 23:40:44 +0800] rev 5327
obshistory: add _predecessorsverb() similar to _successorsetverb()
Anton Shestakov <av6@dwimlabs.net> [Sat, 25 Apr 2020 18:51:23 +0800] rev 5326
obshistory: add a docstring to patchavailable()
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.
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).
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.
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.
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.
Joerg Sonnenberger <joerg@bec.de> [Thu, 09 Apr 2020 20:02:32 +0200] rev 5320
tests: don't assume that echo will unescape \\
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.
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.
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.
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.
Manuel Jacob <me@manueljacob.de> [Tue, 24 Mar 2020 23:43:28 +0100] rev 5315
evolve: remove unused divergenceflag and splitflag of MultipleSuccessorsError
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.
Joerg Sonnenberger <joerg@bec.de> [Fri, 01 May 2020 21:05:37 +0200] rev 5313
py3: fix debugstablerangecache
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.
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.
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.
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 17:41:48 +0700] rev 5309
obslog: support --all with --no-graph
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 17:21:56 +0700] rev 5308
obslog: support --filternonlocal with --no-graph
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.
Anton Shestakov <av6@dwimlabs.net> [Mon, 16 Mar 2020 19:13:33 +0700] rev 5306
obshistory: prepare data for displaymarkers() in a separate function
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 16:32:25 +0700] rev 5305
obshistory: make patchavailable() handle predecessors too
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.
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 19:05:45 +0700] rev 5303
obshistory: rename precursors to predecessors in displayrevs()
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.
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.
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.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Apr 2020 03:06:30 +0200] rev 5299
branching: merge with 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
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.
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
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
Arthur Lutz <arthur.lutz@logilab.fr> [Thu, 16 Apr 2020 12:51:05 +0200] rev 5294
[debian] package 9.3.1-3 for bionic ubuntu
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Apr 2020 21:52:29 +0800] rev 5293
tests: update output to match 1b8fd4af3318 in core
CORE-TEST-OUTPUT-UPDATE: 1b8fd4af3318
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Apr 2020 10:13:48 +0800] rev 5292
manifest: now that there's only one legacy.py, exclude it
After the last patch, this file is only included because of package_dir in
setup.py (i.e. just once), so we can ignore it with just one clause. But
package_dir starts with "./", so we need to add it to the pattern.
Anton Shestakov <av6@dwimlabs.net> [Thu, 09 Apr 2020 23:41:55 +0800] rev 5291
manifest: don't include .py files from hgext3rd/ twice
They are already included by default because we've given package_dir to
setup().
Anton Shestakov <av6@dwimlabs.net> [Thu, 09 Apr 2020 23:35:20 +0800] rev 5290
manifest: just include all .py .sh and .t files from tests/ recursively
Anton Shestakov <av6@dwimlabs.net> [Thu, 09 Apr 2020 23:10:08 +0800] rev 5289
manifest: make sure exclusions and prunes are last, because order matters
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 08 Apr 2020 16:16:09 +0200] rev 5288
branching: merge 9.3.1 release into default
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 21:09:36 +0800] rev 5287
packaging: mark as developer version
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 21:08:42 +0800] rev 5286
Added tag 9.3.1 for changeset 8d955635cf45
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 21:07:06 +0800] rev 5285
packaging: prepare version 9.3.1
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:17:01 +0800] rev 5284
test-compat: merge mercurial-4.7 into mercurial-4.6
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:59 +0800] rev 5283
test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:57 +0800] rev 5282
test-compat: merge mercurial-4.9 into mercurial-4.8
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:56 +0800] rev 5281
test-compat: merge mercurial-5.0 into mercurial-4.9
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:54 +0800] rev 5280
test-compat: merge mercurial-5.1 into mercurial-5.0
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:53 +0800] rev 5279
test-compat: merge mercurial-5.2 into mercurial-5.1
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:16:51 +0800] rev 5278
test-compat: merge stable into mercurial-5.2
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:02:23 +0800] rev 5277
topic: hg <= 4.8 compatibility for wrapping exchange._checkpublish()
phase-divergent update to 1a81bbc94d45:
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Apr 2020 19:33:40 +0200] rev 5276
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Apr 2020 01:02:23 +0800] rev 5275
topic: check that exchange._checkpublish() exists before wrapping it
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Mar 2020 02:08:39 +0100] rev 5274
head-checking: also test single head enforcement with topic
They are an important part of why we want this.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 07:26:40 +0200] rev 5273
head-checking: ignore obsoleted section when checking head creation locally
Same as for the server side check, these do not need to be taken in account.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Mar 2020 23:56:11 +0100] rev 5272
head-checking: ignore obsolete section when checking for single heads
This overwrite the core code that enforce single heads to ignore obsolete
section. That way older obsolete version of a branch no longer prevent the new
version to be pushed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 05:08:23 +0200] rev 5271
head-checking: update changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 03:06:04 +0200] rev 5270
head-checking: add test variant mixing branch and topics
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 02:56:43 +0200] rev 5269
head-checking: add test variants with topics
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 02:17:43 +0200] rev 5268
head-checking: backport fix from 7d5455b988ec
See 7d5455b988ec for details.
Having a version in the evolve repository allow us to check the behavior when
topic is enabled. It will also become the base of further head checking fix and
topic compatibility.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 04:01:58 +0200] rev 5267
head-checking: filter out obsolete heads when checking for new heads
This does not affect any tests right now, but this will be useful for the next
changeset. This is also the start of a more aggressive removal of obsolete
heads in places where it does not make sense to take them into account.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 06 Apr 2020 05:05:07 +0200] rev 5266
topics: fix auto-publish=abort with servers publishing bare branches
Before this change, servers that automatically publish bare branches were
detected as "non publishing" and the check for automatic publishing on push
assumed nothing was to be published. Now we signal the server-side config to
clients via a new capability so that they can adjust their behavior.
Yohann Rebattu <yohann@rebattu.fr> [Sat, 21 Mar 2020 15:04:18 +0100] rev 5265
evolve: fixed some typos in stablerangecache LONG_MESSAGE (issue6279)
phase-divergent update to bf37ba1c80ee
Yohann Rebattu <yohann@rebattu.fr> [Sat, 21 Mar 2020 15:04:18 +0100] rev 5264
evolve: fixed some typos in stablerangecache LONG_MESSAGE, fix #6279
Yohann Rebattu <yohann@rebattu.fr> [Sat, 21 Mar 2020 15:04:18 +0100] rev 5263
evolve: fixed some typos in stablerangecache LONG_MESSAGE, fix #6279
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Apr 2020 19:10:29 +0200] rev 5262
branching: merge stable in default
Manuel Jacob <me@manueljacob.de> [Thu, 12 Mar 2020 06:18:57 +0100] rev 5261
WIP: fix
Manuel Jacob <me@manueljacob.de> [Thu, 12 Mar 2020 03:13:17 +0100] rev 5260
WIP: rotate loop
Manuel Jacob <me@manueljacob.de> [Thu, 12 Mar 2020 06:18:44 +0100] rev 5259
WIP: test
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Mar 2020 14:35:35 -0800] rev 5258
build: make docs/conf.py compatible with py3
I don't even know what this file does, but it made our Debian build
fail on py3 because it attempted to pass unicode to
`mercurial.ui.setconfig()`.
Anton Shestakov <av6@dwimlabs.net> [Thu, 16 Jan 2020 11:33:53 +0700] rev 5257
obshistory: add _debugobshistorydisplaypredsandmarkers() and test it