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
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 16:32:25 +0700] rev 5256
obshistory: make patchavailable() handle predecessors too
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Jan 2020 16:28:35 +0700] rev 5255
templatekw: add obsorigin keyword
Anton Shestakov <av6@dwimlabs.net> [Tue, 14 Jan 2020 20:58:26 +0700] rev 5254
obshistory: implement predecessorsandmarkers() for obsorigin
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 11:06:21 +0100] rev 5253
fold: proposal for output improvement
Listing other changeset we got folded with seems like a good idea.
We need to think about the case where changesets we got folded with is filtered.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 27 Dec 2019 20:40:13 -0800] rev 5252
obslog: add display of precursor information to the default template
This will still only be output when the user passes --precursors to the command
(otherwise the data just won't be there).
This addresses a common user request, where they actually would find more
intuitive to use --precursors --no-successors.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 27 Dec 2019 20:38:10 -0800] rev 5251
obslog: add flags to control the output of precursors and successors
With just this change, precursors are only shown in structured output.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Sat, 01 Feb 2020 10:54:20 +0100] rev 5250
obslog: extract display of a markers to its own function
Anton Shestakov <av6@dwimlabs.net> [Mon, 27 Jan 2020 14:55:35 +0700] rev 5249
tests: allow an empty merge commit to have tests pass without too many changes
Not the greatest fix, but this allows us to have the same test case for all
versions of Mercurial.
Hash of 29 changes because instead of both parents only one is set in hg 5.3.
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jan 2020 20:52:25 +0700] rev 5248
uncommit: use repo.setparents() instead of repo.dirstate.setparents()
setparents() was added to localrepository class in 2012, and now we finally
have some differences between calling repo.setparents() vs
repo.dirstate.setparents(): _quick_access_* things, introduced in hg 5.3.
This patch fixes potential quick-access desync problems where repo[b'.'] would
be different from repo.dirstate.p1().
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jan 2020 20:57:20 +0700] rev 5247
touch: use repo.setparents() instead of repo.dirstate.setparents()
setparents() was added to localrepository class in 2012, and now we finally
have some differences between calling repo.setparents() vs
repo.dirstate.setparents(): _quick_access_* things, introduced in hg 5.3.
This patch fixes potential quick-access desync problems where repo[b'.'] would
be different from repo.dirstate.p1().
Anton Shestakov <av6@dwimlabs.net> [Sun, 26 Jan 2020 20:57:39 +0700] rev 5246
evolve: use repo.setparents() instead of repo.dirstate.setparents()
setparents() was added to localrepository class in 2012, and now we finally
have some differences between calling repo.setparents() vs
repo.dirstate.setparents(): _quick_access_* things, introduced in hg 5.3.
This patch fixes an actual quick-access desync problem where repo[b'.'] would
be different from repo.dirstate.p1(), as demonstrated by
test-evolve-phase-divergence.t when ran on hg 5.3rc0 and later.
Modified _uncommitdirstate() too, because it is used in dirstatedance(), which
sometimes follows repo.setparents() calls.
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Sep 2019 20:09:05 +0700] rev 5245
tests: demonstrate that evolve swaps parents of merge commits
Tests currently pass, don't forget to change FIXME items.
Anton Shestakov <av6@dwimlabs.net> [Wed, 22 Jan 2020 21:41:25 +0700] rev 5244
ci: cache pytype-related files between runs
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 10 Nov 2019 16:32:34 +0530] rev 5243
evolve: add pre-check logic for creation of phase divergence locally
Changes in tests reflect the added behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 10 Nov 2019 18:08:57 +0530] rev 5242
evolve: add test to show that user can create phase-divergence locally
After resolution of phase-divergence, user can locally create phase-divergence
by rewriting the old bumped (obsolete now) changeset.
Next patch will be adding the pre-check logic for creation of this
phase-divergence.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 30 Dec 2019 00:24:09 +0530] rev 5241
evolve: remove unnecessary code since it's been covered already
We don't need this logic any more since the case of "two divergent
csets where one is the parent of other" has been handled correctly
by the logic present in method _prepcontentdivresolution()
This is how things works in method _prepcontentdivresolution()
for our case i.e "content-divergence with parent-child relation":
cset_b (content-divergent)
|
cset_a (content-divergent)
|
~
Acc. to revision selection criteria:
"divergent" = min_revision(cset_a, cset_b)
So always "divergent" will be cset_a and "other" will be "cset_b"
and resolution parent will be the successor of parent of cset_a
Both the csets will be merged and resolution cset will be based on
correct revision.
The result could be wrong only in the case when "divergent" is cset_b
which is not possible acc. to the current logic.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 30 Dec 2019 00:43:17 +0530] rev 5240
test: no need to look at full log
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 29 Dec 2019 23:59:41 +0530] rev 5239
evolve: refactor content-divergence resolution logic
> What is the case we are looking at?
This is about refactoring the part of content-div resolution logic where it
decides which cset should be relocated and where.
> What is a "topologicial common ancestors" vs a "greatest common ancestors"?
`tca` is an ancestor which we can decide/find by looking at the at graph
visually for e.g
```
c3(*) c4(*)
| |
c2(x) c1(x)
c5 | /
\ | /
c0
```
(c5 is the successor of c2 and c1)
now here,
`tca` of c3 and c4 is: c0
`gca` of c3 and c4 is: c5
> What is the new top-level logic/behavior that makes it better?
The old code had some unnecessary edge cases just because we were using `gca`,
since it can point to a revision that is not a topological ancestor.
For e.g see b779b40f996e
Eventually, the code around this was getting messy unnecessarily. So I looked
into it and found a simple and more robust approach.
And in new code, it is simple and straightforward (and easy to understand),
where we handle the following 4 cases when solving content-div:
1) when both are on the same parent
=> (no need to do anything special, and simply proceed)
2) both are on the different parent but a) `tca` is the parent of one of them
or b) there is no non-obsolete revision between `tca` and one of the
divergent cset.
=> (relocate one to the other side and proceed)
3) both are on different parents and `tca` is not the parent of any of them and
there is at least one non-obsolete cset between tca and both the divergent
cset i.e (tca::div1) and (tca::div2) both the ranges have at least one non-obs
revision.
=> (this is the case which we don't handle yet, but the solution would be to
prompt the user to choose an evolve destination.)
4) both are in the parent-child relation
=> (both are merged and new cset will be based on the successor of `tca`)
Changes in test-evolve-issue5958.t demonstrate that new code also covered case4
because in a resolution of "two divergent csets with parent-child relation"
there should be one cset as a result and no orphan revs (as you can see there
was an orphan before this patch).
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 30 Dec 2019 00:11:00 +0530] rev 5238
evolve: remove duplicated code
See at line 500.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 25 Nov 2019 02:41:16 +0530] rev 5237
evolve: make necessary changes in a test to reflect a fix in next patch
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 23 Dec 2019 01:03:45 +0530] rev 5236
evolve: add quotes around the action in msg of pre-checking
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 04 Dec 2019 21:06:39 +0530] rev 5235
metaedit: use pre-checking before rewriting csets
Changes in test file demonstrate the changed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 14 Dec 2019 13:31:45 +0530] rev 5234
evolve: update the pre-check message for risk of orphans
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 10 Nov 2019 16:32:34 +0530] rev 5233
evolve: add pre-check logic for creation of phase divergence locally
Changes in tests reflect the added behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 10 Nov 2019 18:08:57 +0530] rev 5232
evolve: add test to show that user can create phase-divergence locally
After resolution of phase-divergence, user can locally create phase-divergence
by rewriting the old bumped (obsolete now) changeset.
Next patch will be adding the pre-check logic for creation of this
phase-divergence.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Nov 2019 00:18:55 +0530] rev 5231
evolve: remove a check which is already done by rewriteutil.precheck()
We have tests to check if fold is being performed on public cset.
There is no changes in test files because testing that never touched
the part this patch removes, and already caught in rewriteutil.precheck()
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Nov 2019 01:30:50 +0530] rev 5230
evolve: add pre-check logic for content-divergence in rewriteutil.precheck()
For now, pre-check will abort if rewriting a rev create divergence (and
config experimental.evolution.allowdivergence is not set to True).
But this behaviour can be improved where instead of abort maybe we
can confirm the user to either proceed with divergence or some other
options depends on what command user is running.
Changes in test file are used to overrides the pre-check for testing
purpose (using experimental.evolution.allowdivergence=yes).
Martin von Zweigbergk <martinvonz@google.com> [Thu, 26 Dec 2019 10:21:31 -0800] rev 5229
topic: make in-memory rebase preserve topic
The override code thought that `__init__` would return the runtime
instance, but it's actually the first argument to the function (the
`self` argument), so the code had no effect at all before this
patch.
I think the bug only affected in-memory rebase because the
in-working-copy rebase used the current topic, which was set correctly
since 5156a67f66a6 (topics: update current topic to the topic of newly
rebased commit (issue5551), 2017-06-29).
Boris Feld <boris.feld@octobus.net> [Wed, 18 Dec 2019 14:10:56 +0100] rev 5228
Temporary commit for time measurement of test file + pandoc
Boris Feld <boris.feld@octobus.net> [Wed, 18 Dec 2019 14:10:49 +0100] rev 5227
ci: Add CI job for building the documentation
Boris Feld <boris.feld@octobus.net> [Fri, 22 Nov 2019 18:56:42 +0100] rev 5226
tutorial: compile the tutorial in rst so it can be included
Boris Feld <boris.feld@octobus.net> [Fri, 22 Nov 2019 18:29:27 +0100] rev 5225
tutorial: run the tutorial test file to update to latests ui messages
Boris Feld <boris.feld@octobus.net> [Fri, 22 Nov 2019 18:28:01 +0100] rev 5224
ignore: fix hgignore to point to the correct folder
Files might have been imported initially as docs/training but were moved to
docs/tutorial and the hgignore was likely forgotten.
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Sep 2019 15:38:11 +0700] rev 5223
stack: rename stack.revs into stack.indexedrevs
They are accessible by an index, and are sorted. But they don't include all
revisions for show in showstack().
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Sep 2019 15:22:50 +0700] rev 5222
stack: return from behindcount() early
Reduces indentation.
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Sep 2019 14:44:19 +0700] rev 5221
stack: use self._revs in stack.behindcount()
This code also doesn't care about the order of revisions, it just wants all
revs except stack base, and that's what self._revs is.
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Sep 2019 14:42:38 +0700] rev 5220
stack: use self._revs in stack.heads()
No code cares about the ordering of the heads anyway, so let's use the
unordered property that doesn't need to be sliced (because it doesn't include
base).
Boris Feld <boris.feld@octobus.net> [Tue, 04 Sep 2018 19:53:08 +0200] rev 5219
pick: Add a test to check that pick pick the right content
Boris Feld <boris.feld@octobus.net> [Thu, 01 Feb 2018 18:26:56 +0100] rev 5218
WIP on handling stacks
Boris Feld <boris.feld@octobus.net> [Mon, 15 Jan 2018 17:46:40 +0100] rev 5217
test: add a test for current behavior of precursors revset
The precursors revset currently returns the closest predecessors of a revset.
If these predecessors are not known locally, it returns an empty list.
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 16:00:57 +0700] rev 5216
obshistory: give a more correct name to a variable
This variable holds a list of predecessors, which obslog presents to graphmod
as parents so the latter could understand the data without the need to
introduce another graph edge type specifically for predecessors.
Also remove debug comments.
Anton Shestakov <av6@dwimlabs.net> [Sun, 29 Mar 2020 16:08:43 +0700] rev 5215
tests: unindent lines that only have one leading space
One space is not even defined in our .t files syntax.
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Mar 2020 17:37:34 +0700] rev 5214
rewind: make __rewind-hash__ extra field be bytes
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Mar 2020 17:37:03 +0700] rev 5213
touch: make __touch-noise__ extra field be bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Mar 2020 04:30:22 +0100] rev 5212
branching: merge with stable
Eric Spishak-Thomas <emspishak@gmail.com> [Wed, 25 Mar 2020 17:44:08 -0400] rev 5211
evolve: fix some documentation grammar/typos
Eric Spishak-Thomas <emspishak@gmail.com> [Wed, 25 Mar 2020 17:44:08 -0400] rev 5210
evolve: fix some documentation grammar/typos
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Mar 2020 21:48:32 +0100] rev 5209
changelog: mention the recent evolve improvements
Manuel Jacob <me@manueljacob.de> [Sat, 21 Mar 2020 00:46:37 +0100] rev 5208
tests: merge two tests about split changesets
Because the removed test case is essentially already included in the
succeeding one, the tests are merged by removing the first.
Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 16:05:53 +0100] rev 5207
evolve: support successors of ancestor of orphan with multiple roots
The previous code checked that the set of successors has a single root.
However, there’s no reason to require that in general.
Example:
o 6
|
o 5
|\
| o 4
| |
o | 3
|/
| * 2
| |
| x 1
|/
o 0
1 is obsoleted by 3, 4 and 6. We are considering the case when 2 gets evolved.
The roots are [3, 4] and the heads are [6]. Before the change, the user was
asked which destination to choose, but there was only one choice (6). After the
change, 6 is chosen as the destination.
Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 16:04:06 +0100] rev 5206
evolve: support ancestor of orphan split with unrelated changeset in between
This is done by searching for roots and heads within the range delimited on
both sides by the target revs instead of just within the target revs.
Example:
o 5
|
o 4
|
o 3
|
| * 2
| |
| x 1
|/
o 0
1 is obsoleted by 3 and 5. We are considering the case when 2 gets evolved.
Before the change, both roots and heads were [3, 5]. The user was offered a
choice between 3 and 5 as the destination.
After the change, roots are [3] and heads are [5]. 5 is chosen as the
destination.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Mar 2020 18:50:39 +0100] rev 5205
exchange: deal with empty obscommon
The case can happen, we better support it.
Anton Shestakov <av6@dwimlabs.net> [Fri, 20 Mar 2020 12:37:44 +0700] rev 5204
topic: compat with tr.changes[b'phases'], it's now a list
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 19 Mar 2020 20:09:18 +0530] rev 5203
topic: fix compatibility issues caused because of change in transaction API
In 36f08ae87ef687be53a59bd87376bcfbe4479205 in core mercurial, `_validator`
attribute to transaction class was removed and a dict was introduced. It added a
`addvalidator()` function to transaction class which can be used to register
multiple validator callbacks.
This updates the code to use `addvalidator()` when `_validator` attribute is not
present.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 02:42:03 +0100] rev 5202
obsexchange: fallback to simpler request for dumb http server
If the http server cannot accept many arguments, avoid sending too large
requests (at the cost of more data exchanged).
A better solution would be to aggregate contiguous range, but this is a question
for later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 02:46:51 +0100] rev 5201
obsexchange: swap the 'common' and 'missing' clause
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 02:41:53 +0100] rev 5200
obsdiscovery: avoid considering locally hidden changeset
This looks like a dubious optimisation
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Mar 2020 18:29:46 +0100] rev 5199
obsdiscovery: add a test where some common node are hidden
This is useful to prevent regression.
Anton Shestakov <av6@dwimlabs.net> [Fri, 13 Mar 2020 19:11:43 +0700] rev 5198
tests: use appropriate Python (2 or 3) for dummyssh
Manuel Jacob <me@manueljacob.de> [Wed, 11 Mar 2020 18:28:26 +0100] rev 5197
evolve: add missing 'of' in message
The message refers to the changeset that is currently evolved. Therefore the
message needs an additional 'of' to be correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Mar 2020 18:39:40 +0100] rev 5196
test: fix graph label in test-push-checkheads-pruned-B5.t
They were wrong.
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 16:11:04 +0700] rev 5195
readme: mention compat string format
Anton Shestakov <av6@dwimlabs.net> [Wed, 11 Mar 2020 15:55:36 +0700] rev 5194
readme: copywrite the section about branch policy, wrap long lines
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Mar 2020 19:05:08 +0700] rev 5193
compat: update hg-X.Y compat comments and test them
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Mar 2020 19:04:33 +0700] rev 5192
contrib: add a script to check release in compat comments that have node hash
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Mar 2020 11:50:40 +0100] rev 5191
changelog: add an entry about the cleanup
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Mar 2020 18:47:18 +0700] rev 5190
evolve: drop compat for pre-4.5 context.memfilectx()
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Mar 2020 18:36:10 +0700] rev 5189
compat: update a couple of obviously outdated version comments
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 23:16:31 +0700] rev 5188
evolve: drop pre 4.0 compat for dirstate.parentchange()
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 22:38:14 +0700] rev 5187
evolve: drop 4.5 compat for scmutil.resolvehexnodeidprefix()
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 02:26:49 +0700] rev 5186
evolve: drop 4.5 compatibility for patch in tryimportone()
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 02:03:28 +0700] rev 5185
evolve: drop 4.5 compatibility with `patch.extract` API
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 01:43:40 +0700] rev 5184
evolve: drop 4.5 compatibility for template keywords
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Mar 2020 01:36:33 +0700] rev 5183
topic: drop 4.5 compatibility for template keywords
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 16:30:38 +0100] rev 5182
compat: drop 4.5 compatibility for strdiff
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 16:30:19 +0100] rev 5181
compat: drop 4.5 compatibility layer for log utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Mar 2020 11:07:06 +0100] rev 5180
compat: drop 4.5 related compatibility around wireprotocol module
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Mar 2020 11:06:37 +0100] rev 5179
compat: directly use status attribute instead of the compat layer
With 4.5 dropped, this compat layer is no longer needed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Mar 2020 11:07:34 +0100] rev 5178
compat: directly use function from dateutil
Since support for 4.5 have been dropped we no longer needs this indirection.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 16:14:03 +0100] rev 5177
compat: drop 4.5 compatibility for `_filterederror`
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 16:03:23 +0100] rev 5176
compat: drop import compatibility <= 4.5 for `forcebytestr`
We no longer support 4.5
Martin von Zweigbergk <martinvonz@google.com> [Wed, 04 Mar 2020 15:21:32 -0800] rev 5175
tests: adapt now that Mercurial clears the merge state for empty wdir
`hg evolve` forgot to clear the merge state when its attempt to commit
resulted in no commit because the working copy had no changes. That
resulted in test-evolve-issue5967.t showing a conflict state that
shouldn't be there. The responsibility for clearing the merge state
was moved into Mercurial in Mercurial in 6a34e438461b (commit: clear
resolved mergestate even if working copy is clean, 2020-02-28), so the
bug is now fixed in `hg evolve`, which impacts that test case.
CORE-TEST-OUTPUT-UPDATE: 6a34e438461b
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Mar 2020 21:37:28 +0700] rev 5174
tests: add more involved tests for obslog -T now that everything is a property
Anton Shestakov <av6@dwimlabs.net> [Tue, 25 Feb 2020 18:07:30 +0700] rev 5173
obslog: remove the separate "obslog -f" implementation and use the common one
Anton Shestakov <av6@dwimlabs.net> [Tue, 25 Feb 2020 17:47:54 +0700] rev 5172
obslog: provide successors and multiple markers to marker-displaying function
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 18:16:11 +0800] rev 5171
obslog: make date template property into dates
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 18:10:58 +0800] rev 5170
obslog: make note template property into notes
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 18:07:11 +0800] rev 5169
obslog: make operation template property into operations
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 17:58:22 +0800] rev 5168
obslog: make user template property into users
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 17:31:41 +0800] rev 5167
obslog: have at least one test that shows multiple dates with -f flag
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Feb 2020 15:21:14 +0800] rev 5166
obslog: use fm.data() instead of fm.write() because it's all templates now
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Mar 2020 22:06:05 +0700] rev 5165
tests: add checkheads-related cap
CORE-TEST-OUTPUT-UPDATE: edc8504bc26b
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 17:49:58 +0100] rev 5164
branching: merge stable back into default
evolve 9.3.0 have been released.
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 15:18:00 +0700] rev 5163
test-compat: merge mercurial-4.7 into mercurial-4.6
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 15:17:31 +0700] rev 5162
test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 15:17:13 +0700] rev 5161
test-compat: merge mercurial-4.9 into mercurial-4.8
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 23:23:02 +0700] rev 5160
test-compat: merge mercurial-5.0 into mercurial-4.9
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 23:18:48 +0700] rev 5159
test-compat: merge mercurial-5.1 into mercurial-5.0
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 23:10:48 +0700] rev 5158
test-compat: merge mercurial-5.2 into mercurial-5.1
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 22:48:46 +0700] rev 5157
test-compat: back out changeset 2371d40f0878
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 21:44:36 +0700] rev 5156
test-compat: back out changeset bb2042ff6444
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 21:09:51 +0700] rev 5155
test-compat: merge stable into mercurial-5.2
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 14:59:23 +0700] rev 5154
packaging: mark as developer version
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 14:55:37 +0700] rev 5153
packaging: add tag 9.3.0 for changeset 583dc6ef3eb2
Anton Shestakov <av6@dwimlabs.net> [Wed, 04 Mar 2020 16:53:48 +0100] rev 5152
packaging: prepare version 9.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 15:47:08 +0100] rev 5151
branching: preserve test change on stable
CORE-TEST-OUTPUT-UPDATE: baf3fe2977cc
CORE-TEST-OUTPUT-UPDATE: 14d0e89520a2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 17:08:05 +0100] rev 5150
topic: extend topic gating to descendant
If a changeset with topic as descendant without topic, we need to exclude them
too when using: topic.server-gate-topic-changesets.
Anton Shestakov <av6@dwimlabs.net> [Wed, 04 Mar 2020 16:53:32 +0100] rev 5149
changelog: more entries for 9.3.0, sorting
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 16:36:32 +0100] rev 5148
compat: fix subsettable import for mercurial <= 4.8
Anton Shestakov <av6@dwimlabs.net> [Wed, 04 Mar 2020 16:05:28 +0100] rev 5147
compat: officialy drop compatibility with mercurial 4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 15:45:33 +0100] rev 5146
test-compat: back out changeset 591a0afd2ef3
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 20:19:16 +0700] rev 5145
test-compat: back out changeset 51e38bf936cf
Anton Shestakov <av6@dwimlabs.net> [Fri, 28 Feb 2020 20:18:42 +0700] rev 5144
branching: merge into stable in preparation for release
Anton Shestakov <av6@dwimlabs.net> [Sat, 29 Feb 2020 14:26:50 +0700] rev 5143
branching: closing test-compat branch for mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 15:17:29 +0100] rev 5142
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 15:09:22 +0100] rev 5141
tests: update graph output after core change
CORE-TEST-OUTPUT-UPDATE: 14d0e89520a2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Mar 2020 13:17:00 +0100] rev 5140
fix: reinstall import from the right location
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Feb 2020 01:35:23 +0100] rev 5139
topic: option to hide topic changesets to plain client
This is the first version of an option that make topic changeset hidden to
client without the extension. It might become the default in the future.
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Mar 2020 17:20:05 +0700] rev 5138
readme: update heptapod link
willstott101@gmail.com [Mon, 02 Mar 2020 17:12:09 +0000] rev 5137
py3-exceptions: wrap more Exceptions in forcebytestr before formatting
Martin von Zweigbergk <martinvonz@google.com> [Tue, 04 Feb 2020 16:22:40 -0800] rev 5136
touch: allow divergence with -A even if allowdivergence=no
This is a phase-divergent update to 731b5a89a784.
1f92a6aa40d6 (evolve: add pre-check logic for content-divergence in
rewriteutil.precheck(), 2019-11-04) taught `rewriteutil.precheck()` to
check for divergence. It also set allowdivergence=yes in test-touch.t
to silence the error. However, if one does *not* have that set, it is
no longer possible to allow divergence with `hg touch -A`. This patch
fixes that.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 04 Feb 2020 16:22:40 -0800] rev 5135
touch: allow divergence with -A even if allowdivergence=no
1f92a6aa40d6 (evolve: add pre-check logic for content-divergence in
rewriteutil.precheck(), 2019-11-04) taught `rewriteutil.precheck()` to
check for divergence. It also set allowdivergence=yes in test-touch.t
to silence the error. However, if one does *not* have that set, it is
no longer possible to allow divergence with `hg touch -A`. This patch
fixes that.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 04 Feb 2020 13:43:16 -0800] rev 5134
tests: add test of `hg touch -A`
There didn't seem to be any before. It currently passes because the
test case incorrectly (IMO) sets `evolution.allowdivergence = True`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Feb 2020 18:36:32 +0100] rev 5133
release-checklist: do not forget to move the '@' bookmark
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 19 Feb 2020 13:13:09 +0530] rev 5132
topic: use `%d` for integers instead of `%s` on py3
I have system mercurial using py3 which lead me to the traceback pointing to
this.
Anton Shestakov <av6@dwimlabs.net> [Sat, 15 Feb 2020 16:52:56 +0800] rev 5131
prune: actually track folds using fold-* metadata in obsmarkers
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Feb 2020 19:13:36 +0800] rev 5130
packaging: handle docs in a separate block in MANIFEST.in
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Feb 2020 19:08:31 +0800] rev 5129
packaging: simplify inclusion of docs in MANIFEST.in
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Feb 2020 19:04:00 +0800] rev 5128
packaging: simply prune some directories in MANIFEST.in in a dedicated block
exclude+recursive-exclude is basically prune.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 04 Feb 2020 13:00:05 -0800] rev 5127
metaedit: replace a compat condition with a less specific proxy
Same reasoning as for the previous patch. In this case, the closest
commit I could find was 36 commits later (3d35304bd09b).
Martin von Zweigbergk <martinvonz@google.com> [Tue, 04 Feb 2020 12:46:55 -0800] rev 5126
fold: replace a compat condition with a less specific proxy
If `scmutil.cleanupnodes()` is overridden, the check in
`scmutil.cleanupnodes.__code__.co_varnames` will fail. Let's use a
less specific proxy for that condition so extensions are safely
override `scmutil.cleanupnodes()`. I picked `util.safehasattr(scmutil,
'nullrev')` as the proxy. That basically checks for Mercurial commit
d739f423bf06, which is two commits later than the commit we actually
care about.
Anton Shestakov <av6@dwimlabs.net> [Tue, 11 Feb 2020 17:21:43 +0800] rev 5125
tests: drop useless "(glob)" for timezone offsets
Anton Shestakov <av6@dwimlabs.net> [Tue, 04 Feb 2020 14:07:29 +0700] rev 5124
changelog: obslog shows folds now
Anton Shestakov <av6@dwimlabs.net> [Tue, 14 Jan 2020 20:20:13 +0700] rev 5123
obslog: use _successorsetverb() in regular obslog too
It was already used for obslog --filternonlocal.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 16:18:18 +0100] rev 5122
release: do not forget to tweet about it
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 15:49:31 +0100] rev 5121
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 13:40:13 +0100] rev 5120
release: fix a silly typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 13:28:47 +0100] rev 5119
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Feb 2020 13:25:23 +0100] rev 5118
release: add missing checklist items
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 01 Feb 2020 11:24:46 +0100] rev 5117
heptapod: add an issue template for new version
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Jan 2020 18:14:14 +0100] rev 5116
packaging: create a release check list
This should help other to release version of evolve.
Anton Shestakov <av6@dwimlabs.net> [Tue, 14 Jan 2020 19:42:06 +0700] rev 5115
obshistory: add 'folded' to the list of precise verbs
It's used for templates and for obslog --filternonlocal, but not for regular
obslog.
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 19:53:11 +0700] rev 5114
metaedit: actually track folds using fold-* metadata in obsmarkers
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 19:52:56 +0700] rev 5113
fold: actually track folds using fold-* metadata in obsmarkers
Anton Shestakov <av6@dwimlabs.net> [Sun, 02 Feb 2020 15:51:10 +0700] rev 5112
tests: adjust test output for an early return in mergecopies()
CORE-TEST-OUTPUT-UPDATE: baf3fe2977cc
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 01 Feb 2020 12:50:10 +0100] rev 5111
branching
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Jan 2020 14:50:37 +0100] rev 5110
packaging: mark as developer version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Jan 2020 15:03:59 +0100] rev 5109
Added tag 9.2.2 for changeset ef41094c34e1
Anton Shestakov <av6@dwimlabs.net> [Fri, 31 Jan 2020 14:44:45 +0100] rev 5108
packaging: prepare version 9.2.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Jan 2020 14:52:38 +0100] rev 5107
packaging: update tested with version
We have tested this with 5.3rc so let mark 5.3 as tested too.
Anton Shestakov <av6@dwimlabs.net> [Fri, 31 Jan 2020 14:44:39 +0100] rev 5106
packaging: update changelog for version 9.2.2
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:11 +0700] rev 5105
test-compat: merge mercurial-4.6 into mercurial-4.5
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:10 +0700] rev 5104
test-compat: merge mercurial-4.7 into mercurial-4.6
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:09 +0700] rev 5103
test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:08 +0700] rev 5102
test-compat: merge mercurial-4.9 into mercurial-4.8
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:06 +0700] rev 5101
test-compat: merge mercurial-5.0 into mercurial-4.9
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:05 +0700] rev 5100
test-compat: merge mercurial-5.1 into mercurial-5.0
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:04 +0700] rev 5099
test-compat: merge mercurial-5.2 into mercurial-5.1
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Jan 2020 14:32:03 +0700] rev 5098
test-compat: merge stable into mercurial-5.2
Anton Shestakov <av6@dwimlabs.net> [Mon, 27 Jan 2020 14:55:35 +0700] rev 5097
tests: allow an empty merge commit to have tests pass without too many changes
Not the greatest fix, but this allows us to have the same test case for all
versions of Mercurial.
Hash of 29 changes because instead of both parents only one is set in hg 5.3.
Anton Shestakov <av6@dwimlabs.net> [Tue, 28 Jan 2020 20:12:04 +0700] rev 5096
compat: add a context manager that calls _quick_access_changeid_invalidate()
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 Jan 2020 20:40:24 +0700] rev 5095
evolve: provide branch argument to overlayworkingctx.tomemctx()
This is related to upstream 2ecbc4ec87d8 and fixes test-evolve.t.
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 19:33:40 +0700] rev 5094
evolve: compatibility with copies.graftcopies() from hg 5.3
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Nov 2019 08:14:06 -0800] rev 5093
cmdrewrite: avoid accessing scmutil.status fields by index
Support for indexed access is going away in Mercurial. Accessing the
fields by name is clearer anyway.
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:41:00 +0700] rev 5092
test-compat: merge mercurial-4.6 into mercurial-4.5
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:59 +0700] rev 5091
test-compat: merge mercurial-4.7 into mercurial-4.6
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:57 +0700] rev 5090
test-compat: merge mercurial-4.8 into mercurial-4.7
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:56 +0700] rev 5089
test-compat: merge mercurial-4.9 into mercurial-4.8
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:54 +0700] rev 5088
test-compat: merge mercurial-5.0 into mercurial-4.9
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:52 +0700] rev 5087
test-compat: merge mercurial-5.1 into mercurial-5.0
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 17:40:51 +0700] rev 5086
test-compat: merge mercurial-5.2 into mercurial-5.1
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 18:22:47 +0700] rev 5085
test-compat: merge stable into mercurial-5.2
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 18:19:36 +0700] rev 5084
tests: use --tool flag instead of --config ui.merge
Makes this test not fail on older hg versions.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Nov 2019 00:18:55 +0530] rev 5083
evolve: remove a check which is already done by rewriteutil.precheck()
We have tests to check if fold is being performed on public cset.
There is no changes in test files because testing that never touched
the part this patch removes, and already caught in rewriteutil.precheck()
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Jan 2020 11:05:38 +0100] rev 5082
test-compat: create a compatibility branch for Mercurial 5.2
Mercurial 5.3rc have been released, so the stable branch is no longer about 5.2.
Anton Shestakov <av6@dwimlabs.net> [Thu, 23 Jan 2020 11:01:46 +0100] rev 5081
contrib: make merge-test-compat.sh more topic-friendly
Anton Shestakov <av6@dwimlabs.net> [Mon, 20 Jan 2020 22:43:11 +0700] rev 5080
contrib: shellcheck merge-test-compat.sh
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Nov 2019 01:30:50 +0530] rev 5079
evolve: add pre-check logic for content-divergence in rewriteutil.precheck()
For now, pre-check will abort if rewriting a rev create divergence (and
config experimental.evolution.allowdivergence is not set to True).
But this behaviour can be improved where instead of abort maybe we
can confirm the user to either proceed with divergence or some other
options depends on what command user is running.
Changes in test file are used to overrides the pre-check for testing
purpose (using experimental.evolution.allowdivergence=yes).
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 01 Jan 2020 21:36:21 +0530] rev 5078
evolve: rename a function to make it explicit
Anton Shestakov <av6@dwimlabs.net> [Tue, 21 Jan 2020 23:48:41 +0700] rev 5077
obsdiscovery: compatibility when importing forcebytestr()
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Dec 2019 14:56:25 +0700] rev 5076
heptapod-ci: add pytype job, allow it to fail for now
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 08 Dec 2019 02:17:11 +0530] rev 5075
evolve: add a new method picksplitsuccessor() in utility.py
This patch adds the logic to return a single successor of a rev which was
split. If split revisions are on a single topological branch then we return
highest one; otherwise prompt user to choose an evolve destination.
Anton Shestakov <av6@dwimlabs.net> [Mon, 20 Jan 2020 22:52:05 +0700] rev 5074
changelog: add missing entries
Anton Shestakov <av6@dwimlabs.net> [Wed, 15 Jan 2020 15:28:44 +0700] rev 5073
compat: also import datestr from dateutil
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 15:36:24 +0700] rev 5072
obshistory: remove unused ismetablacklisted()
Code that used this function was removed in 461b9a91b662.
But we still need to add one item currently missing from METABLACKLIST in core:
touch noise.
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 15:05:34 +0700] rev 5071
obshistory: remove unused successorsetallmarkers()
This function was used in code that was removed in 901186e1fe05.
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 15:04:02 +0700] rev 5070
obshistory: remove unused _successorsetdates() and _successorsetusers()
They were used by preparesuccessorset() that was removed in the previous patch.
Anton Shestakov <av6@dwimlabs.net> [Mon, 13 Jan 2020 14:59:08 +0700] rev 5069
obshistory: remove unused preparesuccessorset()
It was used in code that was removed in 901186e1fe05.
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 20:10:06 +0700] rev 5068
obshistory: use effect flags from obsutil
They were added there in 51aadc0d0da2::187bc224554a (hg 4.4).
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 20:06:26 +0700] rev 5067
obshistory: make a {flag value: description} dict for _markerseffects()
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 19:49:45 +0700] rev 5066
obshistory: factor out _markerseffects()
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 Jan 2020 19:24:21 +0700] rev 5065
obshistory: factor out _markerspreciseverb()
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 Jan 2020 20:40:24 +0700] rev 5064
evolve: provide branch argument to overlayworkingctx.tomemctx()
This is related to upstream 2ecbc4ec87d8 and fixes test-evolve.t.
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Jan 2020 18:44:18 +0700] rev 5063
changelog: mention all the cleanups as one item
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 Jan 2020 15:34:34 +0700] rev 5062
templatekw: drop obsfatedata and related code
AFAIU, this function exists so that people could hack together a replacement
template for {obsfate} if they weren't satisfied with the default, but only on
older versions. It seems that 3d0f8918351b::d0f1e3d3ef4d was the series
introducing obsfate* functions that can show specific obsmarker properties, and
that was included in hg 4.4.
obsfatedata was already claimed to be removed in 35ffd7a4b339 and then more of
its usage was removed in 9882fed37ea9. There are no users in evolve and in core
hg, no tests and nothing else mentions obsfatedata.
Anton Shestakov <av6@dwimlabs.net> [Tue, 07 Jan 2020 16:33:37 +0700] rev 5061
templatekw: drop obsfateprinter() and obsfatelineprinter()
They were unused (probably because their versions were already pushed to hg
4.4).
Anton Shestakov <av6@dwimlabs.net> [Tue, 07 Jan 2020 16:30:18 +0700] rev 5060
compat: drop isobsnotesupported() that checks if storing notes is supported
The check is identical to checking if core has e27f1f04c2cf (hg 4.4).
Anton Shestakov <av6@dwimlabs.net> [Tue, 07 Jan 2020 16:05:44 +0700] rev 5059
templatekw: use literal set syntax
According to https://www.mercurial-scm.org/wiki/SupportedPythonVersions, we
don't support Python 2.6 since 4.3.
Anton Shestakov <av6@dwimlabs.net> [Sat, 04 Jan 2020 21:07:38 +0700] rev 5058
obshistory: remove obsfateverb/obsfateprinter patching compatibility
obsutil.obsfateverb() was introduced in 3d0f8918351b (hg 4.4) and renamed in
b81ad5b78a81 (hg 4.5). Considering the supported evolve versions, the first
check is unnecessary (the condition is always True)
obsutil.obsfateprinter() was introduced in e27f1f04c2cf (hg 4.4).
Anton Shestakov <av6@dwimlabs.net> [Fri, 03 Jan 2020 23:32:48 +0700] rev 5057
obshistory: drop unused keyword argument to _getobsfateandsuccs()
Anton Shestakov <av6@dwimlabs.net> [Thu, 02 Jan 2020 01:16:18 +0700] rev 5056
obshistory: use successorsandmarkers() from obsutil, drop local variant
It's been in core since 4.4 and is identical to the version removed by this
patch, except it returns None if ctx is not obsolete.
Anton Shestakov <av6@dwimlabs.net> [Tue, 31 Dec 2019 21:41:22 +0700] rev 5055
compat: drop code from 35b2d201eb71 (compatibility with hg 4.3)
Anton Shestakov <av6@dwimlabs.net> [Thu, 26 Dec 2019 22:32:44 +0700] rev 5054
tests: rename precursors to predecessors in test-evolve-templates.t
Anton Shestakov <av6@dwimlabs.net> [Thu, 28 Nov 2019 11:41:17 +0700] rev 5053
evolve: correct spelling of superseded everywhere else
Anton Shestakov <av6@dwimlabs.net> [Thu, 28 Nov 2019 11:37:56 +0700] rev 5052
evolve: use obsutil._getobsfate() directly
It's been there since 4.5 (265cd9e19d26), we can safely rely on it.
It's necessary though to use the correct spelling of superseded.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 28 Dec 2019 23:20:05 +0530] rev 5051
evolve: remove dead code
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 07 Dec 2019 23:13:40 +0530] rev 5050
evolve: use utility._singlesuccessor() in _solveunstable()
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 18 Dec 2019 16:21:37 +0100] rev 5049
evolve: preliminary indentation
The whole code will end up in a try/except clause. We pre-indent the code to
clarify the next patch.
Anton Shestakov <av6@dwimlabs.net> [Fri, 03 Jan 2020 23:12:19 +0700] rev 5048
evolve: provide cache argument to obsutil.successorssets() correctly
After 68f3e819d41d (4.3) the 3rd argument to that function is `closest`.
Anton Shestakov <av6@dwimlabs.net> [Fri, 20 Dec 2019 14:08:37 +0700] rev 5047
pullbundle: random.sample() chokes on a spanset, turn it into a list instead
On Python 3.
Anton Shestakov <av6@dwimlabs.net> [Fri, 20 Dec 2019 13:50:31 +0700] rev 5046
pullbundle: use % instead of .format() because % exists for bytes
Anton Shestakov <av6@dwimlabs.net> [Thu, 19 Dec 2019 18:16:18 +0700] rev 5045
tests: test that debugpullbundlecacheoverlap command works
Anton Shestakov <av6@dwimlabs.net> [Thu, 19 Dec 2019 18:02:31 +0700] rev 5044
pullbundle: compatibility for progress in hg <= 4.6
Anton Shestakov <av6@dwimlabs.net> [Thu, 19 Dec 2019 18:01:15 +0700] rev 5043
compat: add hg version to progress compatibility code
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Dec 2019 19:59:51 +0700] rev 5042
serverminitopic: ask pytype to disable import-error on a block handling hg 4.5
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Dec 2019 19:58:58 +0700] rev 5041
topic: ask pytype to disable import-error on a block handling hg 4.5
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Dec 2019 16:40:53 +0700] rev 5040
evolve: remove unused struct import
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Dec 2019 19:44:10 +0700] rev 5039
compat: ask pytype to ignore some warnings
It's expected to have a bunch of import and attribute errors in this module
because it's for compatibility with different versions of hg and Python.
Although it doesn't explain why a function wouldn't have __code__ attribute? So
far I think it's a quirk of pytype.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 06 Nov 2019 18:15:00 +0530] rev 5038
evolve: extract logic of pre-checking divergence risk to its own function
Extracting the logic (which is used to check if rewriting an obsolete
revision will create divergence) to a function. This function will be used
in upcoming patches of pre-checking.
This is how we check if rewriting an obsolete revision will create
divergence. We need to check two cases:
If there is any
1) non-obsolete successor.
-> easily done by `obsutil.successorssets()`
2) precursor with non-obsolete successor.
-> using `evolvecmd.divergentsets()`
Anton Shestakov <av6@dwimlabs.net> [Tue, 24 Dec 2019 23:31:42 +0700] rev 5037
heptapod-ci: skip test-evolve.t in tests-py2-pure job
It seems pure mode on Mercurial 4.5 was broken in case of this test. The error
was:
Traceback (most recent call last):
File "/tmp/hgtests.YoK65c/install/bin/hg", line 41, in <module>
dispatch.run()
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 88, in run
status = (dispatch(req) or 0) & 255
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 183, in dispatch
ret = _runcatch(req)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 324, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 332, in _callcatch
return scmutil.callcatch(ui, func)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/scmutil.py", line 154, in callcatch
return func()
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 314, in _runcatchfunc
return _dispatch(req)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 918, in _dispatch
cmdpats, cmdoptions)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 673, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 926, in _runcommand
return cmdfunc()
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/dispatch.py", line 915, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/tmp/hgtests.YoK65c/install/lib/python/mercurial/util.py", line 1195, in check
return func(*args, **kwargs)
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 1603, in evolve
return _performevolve(ui, repo, **opts)
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 1726, in _performevolve
targetcat, lastsolved)
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 1752, in _solveonerev
lastsolved=lastsolved, stacktmplt=stacktmplt)
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 80, in _solveone
lastsolved=lastsolved)
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 183, in _solveunstable
keepbranch, b'orphan')
File "/builds/mercurial/evolve/hgext3rd/evolve/evolvecmd.py", line 952, in relocate
fullnode = unfi.changelog.index.partialmatch(sha1)
AttributeError: 'InlinedIndexObject' object has no attribute 'partialmatch'
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 00:05:23 +0100] rev 5036
heptapod-ci: test python 4.5 with the pure version of Mercurial
the evolve extension is currently broken on 4.5-pure. So we get it in its own
commit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Dec 2019 21:23:30 +0100] rev 5035
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Thu, 26 Dec 2019 12:22:49 +0700] rev 5034
pullbundle: kwarg to changegroup.makestream() is called matcher
Caught by pytype.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 01 Dec 2019 12:41:20 +0530] rev 5033
evolve: extract pre merging content-div csets logic to its own function
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Dec 2019 20:28:21 +0100] rev 5032
evolve: further simplify a conditional
The case is simple enough to be handled on its own.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Dec 2019 20:23:27 +0100] rev 5031
evolve: simplify some conditional
extracted from a changeset of Sushil khanchi <sushilkhanchi97@gmail.com>
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Dec 2019 20:17:01 +0100] rev 5030
evolve: rename some variable ahead of time
A refactoring of the content divergence resolution in on its way. use a
distinctive name for some variable early to make the change easier to read
later.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Nov 2019 19:01:28 +0530] rev 5029
evolve: add logic to cover --stop when "divergent" relocation in play
Changes in test file reflect the added behaviour. The intermediate changeset has
been properly cleaned up by the `hg evolve --stop` call.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Nov 2019 17:58:45 +0530] rev 5028
evolve: test to show that --stop is not working when "divergent" relocated
Right now, --stop leave the intermediate changeset (relocating the divergent
changeset to its new location behind). This this is an incomplete step it should
be removed by `hg --stop`.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Nov 2019 22:52:08 +0530] rev 5027
evolve: add test to show that --abort is working fine
When resolving content-divergence where relocation of "divergent"
changeset is also required, this test file make sure that --abort
option is working fine.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 20 Dec 2019 17:39:44 +0530] rev 5026
evolve: fix a bug in logic to choose destination when no active topic
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 20 Dec 2019 17:32:07 +0530] rev 5025
evolve: add test to demonstrate a bug when no active topic
Added test shows that the logic to find the destination for
`hg up` in the case when "working directory parent has a topic
but wdir has no active topic" is buggy.
This will be fixed in next patch.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 20 Dec 2019 17:31:57 +0530] rev 5024
evolve: fix a bug in logic of choosing destination for hg update
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 20 Dec 2019 17:17:30 +0530] rev 5023
evolve: add test to demonstrate a bug when active topic is empty
Added test shows that when current active topic is empty and we try
to run `hg up`, it fails with an error. It's because this case is not
correctly handled when we find a destination to update (when topics
are in play)
Next patch will fix this.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 19 Dec 2019 21:36:59 -0800] rev 5022
evolvecmd: fix a typo node->None
Martin von Zweigbergk <martinvonz@google.com> [Thu, 19 Dec 2019 21:15:31 -0800] rev 5021
evolvecmd: avoid a ctx->node->ctx conversion
Martin von Zweigbergk <martinvonz@google.com> [Thu, 19 Dec 2019 13:06:29 -0800] rev 5020
evolvecmd: mark relocate() private
Martin von Zweigbergk <martinvonz@google.com> [Thu, 19 Dec 2019 22:31:13 -0800] rev 5019
cleanup: replace .parents()[0] by .p1()
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Nov 2019 20:54:48 +0530] rev 5018
evolve: add more tests for --continue case when relocating "divergent"
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Nov 2019 19:50:33 +0530] rev 5017
evolve: use meaningful variable names for a return value
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Nov 2019 12:34:19 +0530] rev 5016
evolve: add logic to cover --continue case when relocating "divergent"
Changes in test file demonstrate the added behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 25 Nov 2019 21:28:52 +0530] rev 5015
evolve: add test for `--continue` case when relocating "divergent"
This test shows that for now we don't handle the continue case when
relocating "divergent" cset hit merge conflict while resolving
content-divergence.
Next patch will be adding the support for --continue case.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 25 Nov 2019 19:12:51 +0530] rev 5014
evolve: use more specific key name to store in evolvestate
Now, as we also relocate divergent cset if required, so let's use
more specific key to track the relocation of "divergent" and "other".
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 13 Dec 2019 01:29:27 +0530] rev 5013
evolve: move a test where it makes more sense
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Dec 2019 17:22:18 +0530] rev 5012
evolve: remove the unnecessary condition to check empty successors set
I annotated the history of this "newer == [()]" condition and found
that it was added in the initial stages of evolution project (more than
8 years ago) and there is no test where we get [()] as a successor set.
So looks like "if not newer" is enough to check if it is empty.
I also looked into obsutil.successorssets() implementation and
I don't think it would give us [()] in any case.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Nov 2019 14:54:13 -0800] rev 5011
evolve: delete redundant and incorrect code for updating dirstate
In relocate() when we notice conflicts, we will try to fix up the
dirstate by calling copies.duplicatecopies() and
dirstatedance(). However, we had called _evolvemerge() just before
that point and that has already fixed up the dirstate, so there's no
need to do it again. Also, we did it incorrectly as the test case
shows.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Nov 2019 14:24:31 -0800] rev 5010
tests: demonstrate how evolve loses transitive copies when interrupted
Let's say `b` has been renamed to `c` in commit A and then renamed
to `d` in commit B. We now modify A in a way that will cause a
conflict when we evolve B. `hg evolve` will now stop and let the user
resolve the conflicts, but it will have lost the copy information in
the working copy (should still be c->d).
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:36:11 -0800] rev 5009
evolve: use ui.configoverride() instead of ui.backupconfig()
ui.configoverride() was added in hg 4.1. util.nullcontextmanager() was
added in hg 4.4.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:31:34 -0800] rev 5008
topic: use ui.configoverride() instead of ui.backupconfig()
ui.configoverride() was added in hg 4.1. util.nullcontextmanager() was
added in hg 4.4.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:28:58 -0800] rev 5007
topic: use ui.configoverride() instead of ui.backupconfig()
ui.configoverride() was added in hg 4.1. util.nullcontextmanager() was
added in hg 4.4.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:33:48 -0800] rev 5006
evolve: use ui.configoverride() instead of ui.backupconfig()
ui.configoverride() was added in hg 4.1.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:43:04 -0800] rev 5005
evolve: remove obsolete backup of allowemptycommit config
We stopped setting the config in 88601e1cd5d8 (evolve: create new
commit while resolving content-divergence, 2018-04-23), so there's no
need to back it up.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 09 Dec 2019 10:44:42 -0800] rev 5004
evolve: remove dead initilization of "newnode" variable
It's been dead since f9dad99a90d5 (evolve: create a new commit instead
of amending one of the divergents, 2018-06-13).
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Dec 2019 17:16:02 +0530] rev 5003
evolve: fix a typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 21:03:51 +0100] rev 5002
changelog: mention the python 3 fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 21:03:23 +0100] rev 5001
changelog: mention the date fix for content divergence
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 20:47:13 +0100] rev 5000
branching: merge with stable
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 10 Dec 2019 20:35:56 +0100] rev 4999
py3: fix several TypeError formatting bytes with an exception object
Manuel Jacob <me@manueljacob.de> [Fri, 11 Oct 2019 21:32:27 +0200] rev 4998
evolve: preserve date when resolving content-divergence (issue6202)
This patch changes the implementation to do a 3 way merge. In case of actual
conflict, it take the newest date from both sides of the content-divergence.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 19:58:51 +0100] rev 4997
test: add test for content divergence involving a date update
In this case, each side update the date.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 19:55:37 +0100] rev 4996
test: add test for content divergence involving a date update
In this case, one side update to an earlier date.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 19:27:55 +0100] rev 4995
test: add test for content divergence involving a date update
In this case, one side update to an older date.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Dec 2019 19:13:06 +0100] rev 4994
test: highlight data handling when solving divergence
The current handling of date is lacking, we add test to highlight this.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 07 Dec 2019 03:27:50 +0530] rev 4993
evolve: add tests for the case when resolution parent is ambiguous
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 06 Dec 2019 23:43:00 +0530] rev 4992
evolve: abort if deciding resolution parent is ambiguous
While solving content-divergence, it could be hard to decide
which cset should be treated as a resolution parent if there
are multiple successors of divergent cset. i.e split case.
But we are planning to make some update in handling this split
case:
1) consider highest one if all splitted csets are in a single
topological branch
2) still need to decide if 1) doesn't apply
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Nov 2019 16:17:04 +0530] rev 4991
evolve: make sure divergence resolution doesn't undo changes (issue6203)
Before this patch, in content-divergence resolution logic if resolution
parent is not the parent of any of the two divergent changesets then
it could undo some changes introduced by previous revs (while resolving
stack of content-divergent changesets) as demonstrated by the test added in
previous patch.
To solve this, what this patch doing is: if divergent cset has obsolete
parent with a successor then first resolve the "orphan" instability of
divergent cset by relocating, then perform the content-divergence resolution.
After this change in logic, I found that it's kind of more correct as
reflected by the changes in tests/test-evolve-content-divergent-corner-cases.t
where it prevented creating conflicts while merging.
Changes in tests/test-evolve-content-divergent-stack.t demonstrate the fixed
behaviour.
Next patches will be covering the `evolve --continue` case for the relocation
of "divergent" cset.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Nov 2019 20:25:16 +0530] rev 4990
evolve: add test to demonstrate issue6203
Current logic of content-divergence resolution contains a bug that
if resolution parent is not the parent of any of the two divergent
changesets, it could undo some changes.
I think a good solution for this is to first relocate the divergent cset
to it's obsolete parent's successor if applicable and then perform
the content-divergence resolution.
Next patch will fix the issue.
Anton Shestakov <av6@dwimlabs.net> [Mon, 09 Dec 2019 16:01:56 +0700] rev 4989
state: there's no _unpack in struct
Caught by pytype.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 29 Sep 2019 11:47:18 +0530] rev 4988
amend: abort if both --patch and --extract are used
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 09 Dec 2019 23:54:50 +0100] rev 4987
test-compat: merge mercurial-4.6 into mercurial-4.5
Boris Feld <boris.feld@octobus.net> [Fri, 06 Dec 2019 17:18:49 +0100] rev 4986
ci: add job to build and archive the documentation
Martin von Zweigbergk <martinvonz@google.com> [Thu, 05 Dec 2019 10:04:52 -0800] rev 4985
tests: update now that merge.graft() doesn't set two equal parents
This is a consequence of https://phab.mercurial-scm.org/D7549.
CORE-TEST-OUTPUT-UPDATE: 32d11a23c9cf
Manuel Jacob <me@manueljacob.de> [Fri, 06 Dec 2019 14:01:29 +0100] rev 4984
evolve: fix content-divergence resolution when p1 is null (issue6201)
Before this fix, in cases like in the added test, the revision number -1 of the
parent was misinterpreted to mean the tipmost revision instead of the null
revision, causing the content-divergence resolution to fail.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 04 Dec 2019 10:57:29 -0800] rev 4983
obslog: make {node} the full node and leave shortening to template
It should be up to the user to shorten the nodeid as much or as little
as they like.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 04 Dec 2019 11:00:00 +0100] rev 4982
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 03 Dec 2019 09:43:10 -0800] rev 4981
compat: accept "success" argument to lock._afterlock callback
The callback gets a new "success" argument since Mercurial commit
888bd39ed555 (lock: pass "success" boolean to _afterlock callbacks,
2019-11-19).
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Dec 2019 20:59:04 +0700] rev 4980
test-compat: merge mercurial-4.7 into mercurial-4.6
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Dec 2019 20:56:47 +0700] rev 4979
test-compat: run tests with -j more than 1
In 4.7 and below run-tests.py defaults to -j1. We want more speed, so we use
the same mechanism to detect the available number of CPU threads as the newer
versions of run-tests.py.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 02 Dec 2019 14:44:31 +0100] rev 4978
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 02 Dec 2019 14:44:00 +0100] rev 4977
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 02 Dec 2019 14:43:25 +0100] rev 4976
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 02 Dec 2019 14:42:32 +0100] rev 4975
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 02 Dec 2019 14:41:09 +0100] rev 4974
test-compat: don't run the py3 test on the older branches
Anton Shestakov <av6@dwimlabs.net> [Fri, 22 Nov 2019 17:13:46 +0700] rev 4973
docs: add missing Figure 10 to sharing.rst
The .svg file itself has been already added earlier.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:54:04 +0100] rev 4972
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:53:25 +0100] rev 4971
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:52:04 +0100] rev 4970
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:50:55 +0100] rev 4969
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:49:29 +0100] rev 4968
test-compat: merge mercurial-5.1 into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Nov 2019 10:48:44 +0100] rev 4967
test-compat: merge stable into mercurial-5.1
Anton Shestakov <av6@dwimlabs.net> [Thu, 21 Nov 2019 14:18:35 +0700] rev 4966
heptapod-ci: add a script to map evolve branch to mercurial revision for tests
map-hg-rev.sh can be tested using this command:
```sh
for i in $(hg log -T '{branch}\n' | sort -u); do
echo $i $(testlib/map-hg-rev.sh $i)
done
```
Anton Shestakov <av6@dwimlabs.net> [Mon, 18 Nov 2019 14:33:59 +0700] rev 4965
pytype: ignore abc.ABCMeta metaclasses that don't work on py3
See 70d42e2ad9b4 in hg:
We can remove this when we're Python 3-only, but for now it's just too
awkward to deal with and it's harmless.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Nov 2019 16:04:35 -0800] rev 4964
tests: remove extra whitespace before patch in obslog output
The indent() template function was fixed in
https://phab.mercurial-scm.org/D7432 so now we have less trailing
whitespace in obslog output.
CORE-TEST-OUTPUT-UPDATE: fa246ada356b
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Nov 2019 13:04:56 +0100] rev 4963
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Nov 2019 13:01:38 +0100] rev 4962
changelog: add a couple of missing entry about the next feature release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Nov 2019 12:58:02 +0100] rev 4961
changelog: fix entry in the wrong location
That change was made on default, not stable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Nov 2019 12:55:44 +0100] rev 4960
changelog: add a wheelbarrow of missing entries
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Nov 2019 11:46:59 +0100] rev 4959
heptapod-ci: simpler CI
We have a mercurial clone available in the docker image now. This will same some
time to avoid a full Mercurial clone for each run.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Nov 2019 01:23:48 +0100] rev 4958
heptapod-ci: run the test with color
This make the result easier to read.
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Nov 2019 13:47:55 +0700] rev 4957
compat: compatibility for cl.nodemap.get vs cl.index.get_rev
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Nov 2019 13:43:46 +0700] rev 4956
compat: compatibility for pathuril.dirs vs util.dirs
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Nov 2019 01:45:40 +0100] rev 4955
obslog: phase divergence fix for 5c41bb482867
I forgot to pull the latest version before publishing the topic :-(
Martin von Zweigbergk <martinvonz@google.com> [Sat, 16 Nov 2019 01:44:31 +0100] rev 4954
obslog: phase divergence fix for b135591bec1a
I forgot to pull the latest version before publishing the topic :-(
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Nov 2019 10:25:46 -0800] rev 4953
obslog: make {descdiff} not be indented and leave that to the template
Same idea as the previous patch and same explanation for changes to
the test case.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Nov 2019 09:53:42 -0800] rev 4952
obslog: make {patch} not be indented and leave that to the template
This removes some unwanted indentation from the tests. In the first
case, it's because indent() doesn't indent a blank line. In the second
case, it's because we used templating with {patch} and had not
requested indentation (but we still got it before this patch).
Note that tests will only pass with a very recent Mercurial (one with
https://phab.mercurial-scm.org/D7432 applied).
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 13:40:53 -0800] rev 4951
obslog: make {succnodes} be full hex nodes
It should be up to the user to shorten the nodeid as much or as little
as they like.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Nov 2019 07:19:18 -0800] rev 4950
obslog: remove now-unused code for plain styling
We now always use a non-plain formatter for the non-local-filtering
code paths, so we can remove the code for plain styling.
I couldn't figure out how to replace the fm.formatlist() by something
less about formatting, so I've only removed the irrelevant arguments
from those calls.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 23:17:34 -0800] rev 4949
obslog: redefine default output as a template, unless -f was given
This was easier than I expected to do without affecting any test
output at all.
`hg obslog -f` is pretty broken with templating. For example, it
inserts a single "date" field, but it provides two values for it if
the dates are different. That results in a traceback when running
e.g. `hg obslog -f -Tfoo` with non-local obsmarkers with different
dates. We need to figure out what we want to put in the template for
the filtered case. I've just left it out for now.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 23:15:29 -0800] rev 4948
obslog: add newline after all markers in non-graphlog to match graphlog
I'd also be fine with doing the reverse if that's preferred, but I
really want them to be the same so they can use the same template.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 22:24:50 -0800] rev 4947
obslog: make reason for unavailable patch part of template
We need the reason to be in the template in order to be able to
templatize the whole output.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 16:34:01 -0800] rev 4946
obslog: make content and description patches available to templater
The code was repeatedly calling fm.write() with the same field
("patch" and "descdiff"). I think that led to the value constantly
getting replaced, so when it was used in a template (as {patch} or
{descdiff}), it would only get the last value, which was always an
empty string.
This patch fixes it by writing the full patch to a temporary buffer
and then assigning the whole patch to the formatter field.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 17:22:44 -0800] rev 4945
obslog: rename {desc-diff} to {descdiff} since the former is invalid
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 17:22:16 -0800] rev 4944
tests: demonstrate broken {patch} and {desc-diff} template keywords
Anton Shestakov <av6@dwimlabs.net> [Fri, 15 Nov 2019 11:48:17 +0700] rev 4943
topic: drop compat.successorssets(), it's not used
The only place in topics that uses successorssets function is in evolvebits.py,
and it's using that function from obsutil directly.
Anton Shestakov <av6@dwimlabs.net> [Fri, 15 Nov 2019 11:37:34 +0700] rev 4942
topic: drop compat.getmarkers() and use obsutil.getmarkers() directly
The function in question was moved from obsolete to obsutil in a14e2e7f7d1f (hg
4.3).
See also 6aff4bb3970d for hgext3rd/evolve.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 15 Nov 2019 08:14:06 -0800] rev 4941
cmdrewrite: avoid accessing scmutil.status fields by index
Support for indexed access is going away in Mercurial. Accessing the
fields by name is clearer anyway.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 23:10:26 -0800] rev 4940
obslog: avoid using a formatter after calling end() on it
I don't know if makes a difference, but it feels wrong to use it after
calling end(). We can simply use the parent formatter in this case.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 15:00:57 -0800] rev 4939
obslog: use plural name "effects" for list of all effects
Same reasoning as the previous patch, but here the singular was used
for the list instead.
This patch also renames the variable that represents the list of
effects to plural "effects" to reduce confusion.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Nov 2019 13:21:20 -0800] rev 4938
obslog: use singular name "succnode" for each element of {succnodes}
The name that we pass for formatlist() is the name of each
element. After this patch, you'll write '{succnodes % "{succnode}"}'
instead of the confusing '{succnodes % "{succnodes}"}' (where the two
"succnodes" refer to different things.
Users can write templates that are compatible across this change by
using e.g. '{succnodes % "{if(succnode, succnode, succnodes)}"}'.
Anton Shestakov <av6@dwimlabs.net> [Mon, 11 Nov 2019 03:40:20 +0700] rev 4937
docs: add SVG figures for sharing.rst
Generated by graphviz loosely based on .dot files produced by dotgraph
extension.
Anton Shestakov <av6@dwimlabs.net> [Mon, 11 Nov 2019 03:22:09 +0700] rev 4936
docs: add some up-to-date output from push/pull commands
Hopefully it's going to be helpful for users to better understand how evolve
works.
Anton Shestakov <av6@dwimlabs.net> [Mon, 11 Nov 2019 02:42:37 +0700] rev 4935
docs: add two more amend commits to simulate temporary amend commits
sharing.rst made reference to temporary amend commits and used them to
demonstrate that hidden commits are not exchanged. Nowadays, evolve doesn't
create such commits, but it still makes sense to show how they are handled
during the exchange process. So let's add two more amend commits, one for each
repo. This way the guide doesn't have to be updated too much, but doesn't lose
this important detail of working with evolve.
Unfortunately, this means that tons of hashes change, but it's better than to
have figure 4 demonstrate absolutely nothing.
Temporary amend commits were removed from test-sharing.t in 06844693bb21,
but sharing.rst continued using them for demonstration purposes. It might've
been better to replace at least some of the temporary amend commits by extra
amends back then, but oh well.
Anton Shestakov <av6@dwimlabs.net> [Mon, 11 Nov 2019 02:33:54 +0700] rev 4934
docs: revision numbers are technically stable
From `hg help glossary`: "Note that the revision number may be different in
each clone of a repository." But cloning the same repo multiple times yields
the same result, and that shows that revision numbers are stable.
Anton Shestakov <av6@dwimlabs.net> [Sun, 10 Nov 2019 05:14:53 +0700] rev 4933
tests: remove a repeated statement
We looked at the review repo just 6 lines above.
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Oct 2019 13:33:05 +0700] rev 4932
docs: correct node hashes in sharing.rst based on test-sharing.t
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Oct 2019 13:30:21 +0700] rev 4931
tests: add shortlog of other repos to test-sharing.t
The figures require showing multiple repos, so let's show them all, even if
they look trivial.
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Oct 2019 13:06:49 +0700] rev 4930
tests: use |shortest in test-sharing.t because sharing.rst uses it
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Nov 2019 13:47:55 +0700] rev 4929
compat: compatibility for cl.nodemap.get vs cl.index.get_rev
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Nov 2019 13:43:46 +0700] rev 4928
compat: compatibility for pathuril.dirs vs util.dirs
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Nov 2019 10:59:47 +0100] rev 4927
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Nov 2019 10:08:36 +0100] rev 4926
heptapod-ci: test with python3 too
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Nov 2019 18:44:15 +0100] rev 4925
heptapod-ci: add a --pure variant for the CI
The end goal is to migrate all piece of the evolve CI currently en Jenkins.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Nov 2019 12:03:52 +0100] rev 4924
heptapod-ci: let the number of CPU to be picked automatically
We now have a larger, bigger machine to run the tests. Let's let run-tests.py
pick the number of concurrent jobs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Nov 2019 11:59:10 +0100] rev 4923
heptapod-ci: point to our own docker images
Lets step further into the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Nov 2019 19:46:05 +0100] rev 4922
readme: update contribution guide
We move to heptapod !
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Nov 2019 10:29:03 +0100] rev 4921
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Oct 2019 22:44:06 +0700] rev 4920
docs: remove --all from hg evolve, since it's been the default for some time
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Oct 2019 22:43:06 +0700] rev 4919
docs: typo in user-guide.rst
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Nov 2019 14:58:58 -0800] rev 4918
obslog: don't overwrite {rev} keyword from changeset context
Now that we have the whole changeset in the formatter context, there's
no need to explicitly add {rev}.
We should also deprecate the {shortdescription} keyword since it's no
longer needed, but I don't know how to do that.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Nov 2019 14:31:08 -0800] rev 4917
obslog: make changeset available to templater
obslog templating currently has very limited support for templating
the precursor changeset (when available). The only available keywords
are {node}, {rev}, and {shortdescription}. This patch makes the entire
changeset available to the templater by passing it to
formatter.context(). That function has been available since Mercurial
4.2.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Oct 2019 11:10:04 -0700] rev 4916
tests: simplify by pruning unwanted changesets a little earlier
The pruned commits are not relevant to the test case, so let's clean
them up at the end of the previous test case instead of part-way
through the next one.
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Nov 2019 17:54:09 +0700] rev 4915
evolve: use more often seen metavariables in command synopsis strings
Also use ellipsis when multiple options are acceptable.
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Nov 2019 17:52:43 +0700] rev 4914
topic: add more options to command synopsis string
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 16:53:52 +0200] rev 4913
debian: also build with python3
We build with Python 3 along with Python 2. The binary package will
contain the extension for both python version. This is to ease
transition until the mercurial package in Debian uses Python 3. The
documentation is still built with Python 2 because it needs Mercurial
(which is currently Python 2).
Denis Laxalde <denis@laxalde.org> [Fri, 18 Oct 2019 10:17:53 +0200] rev 4912
debian: update debhelper compat
Level before 9 are deprecated says debhelper 12. Upgrade to 10, which is
available in Debian oldstable and old Ubuntu releases to be conservative
(and since we probably don't need more).
Denis Laxalde <denis@laxalde.org> [Thu, 17 Oct 2019 20:33:02 +0200] rev 4911
debian: make it possible to by-pass doc build
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Oct 2019 11:39:58 +0200] rev 4910
debian: define extend-diff-ignore for dpkg-source
This makes it possible to build the source package from a hg checkout
(and a sdist) by having dpkg-source ignore files not distributed in
sdist.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 17:05:37 +0200] rev 4909
debian: use pybuild and dh_sphinxdoc
Use pybuild because it's kind of standard nowadays.
Use sphinxdoc debhelper to have a Depends: libjs-sphinxdoc and common
files (JS/CSS) symlinked.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 15 Oct 2019 11:41:22 +0200] rev 4908
debian: mark 9.2.1-1 as released
Martin von Zweigbergk <martinvonz@google.com> [Sat, 19 Oct 2019 10:42:09 -0700] rev 4907
obsexchange: delete dead code for old exchange protocol
Dead since 79a926b557f1 (compat: drop support for older exchange
protocol, 2017-10-25).
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:14:42 +0200] rev 4906
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:11:13 +0200] rev 4905
branching: merge the stable branch with the mercurial-5.1 branch
This revert all the test changes to match the expected output for mercurial 5.1.
Anton Shestakov <av6@dwimlabs.net> [Thu, 10 Oct 2019 08:22:41 +0700] rev 4904
tests: add the new "-r" bit to the usual merge hint
CORE-TEST-OUTPUT-UPDATE: 8197b395710e
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 01:07:58 +0200] rev 4903
test-output: reinstalled test change for 5.2
This effectively reinstall:
* 8345b852cd4f
* e804d5a7c193
* 62b60fc1983d
* 2d85de79ead8
This mean backing out the following backout changeset:
* 2eab4363fc62
* c1cc5b1f813a
* 015cdd3fa469
* 3ba1c9dbf462
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Oct 2019 00:58:56 +0200] rev 4902
test-compat: opening test compatibility branch for mercurial 5.1
5.2 has a release candidate.
Denis Laxalde <denis@laxalde.org> [Thu, 17 Oct 2019 21:03:19 +0200] rev 4901
py3: encode/decode with going through ui in rst directive
mercurial's ui wants bytes, doctutils wants text.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 11 Oct 2019 16:51:13 +0200] rev 4900
py3: fix setup.py --version
Before:
$ python3 setup.py --version
b'9.3.0.dev'
After:
$ python3 setup.py --version
9.3.0.dev
Manuel Jacob <me@manueljacob.de> [Wed, 16 Oct 2019 18:12:53 +0200] rev 4899
rewind: preserve date
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 21:22:03 +0700] rev 4898
metaedit: don't change commit date by default (issue5994)
We deliberately unset devel.default-date to allow hg commands to see the real
system date, that demonstrates that metaedit doesn't fall back to system date
for any of these commands.
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:16:38 +0700] rev 4897
tests: simply use testlib/common.sh in test-metaedit.t
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:12:54 +0700] rev 4896
tests: turn glog shell function into an alias in test-metaedit.t
Mostly because we already have an alias and because creating an alias is the
usual way to customize log -G in tests.
Anton Shestakov <av6@dwimlabs.net> [Wed, 09 Oct 2019 20:07:42 +0700] rev 4895
tests: clean up test-metaedit.t
Mostly just artifacts from the times when it was one big test-evolve.t. All
completely unused nowadays.
Rodrigo Damazio <rdamazio@google.com> [Sun, 06 Oct 2019 02:30:12 -0400] rev 4894
help: categorizing evolve and topic commands
This makes them show up under the right categories in 'hg help'.
Differential Revision: https://phab.mercurial-scm.org/D6999
Anton Shestakov <av6@dwimlabs.net> [Thu, 10 Oct 2019 08:22:41 +0700] rev 4893
tests: add the new "-r" bit to the usual merge hint
CORE-TEST-OUTPUT-UPDATE: 8197b395710e
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:31:19 -0400] rev 4892
branching: merge back into default
Anton Shestakov <av6@dwimlabs.net> [Mon, 07 Oct 2019 14:38:56 +0700] rev 4891
pick: don't create any successors when there were no changes (issue6093)
For example, when a changeset that user is trying to pick was already grafted
or rebased (and no obsmarkers were created), pick will naturally say that
there's no changes to commit and will not create the new commit. In that case
it should not mark any changeset as a successor of the picked changeset,
because the actual file changes were already there before picking.
Technically, pick could (and did before this patch) mark the wdir commit as a
successor of picked changeset (may be useful in the most trivial cases when
e.g. wdir is a graft of the required change), but there are cases when the
picked change is introduced in an ancestor of wdir, or even in multiple
ancestors piece by piece. Pick definitely shouldn't be trying to guess
something this complicated, so with this patch it always marks the picked
change as pruned if it gave no changes to commit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:26:19 -0400] rev 4890
packaging: mark as development version
This avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 14:22:21 -0400] rev 4889
Added tag 9.2.1 for changeset d989bab720e5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:13 -0400] rev 4888
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:11 -0400] rev 4887
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:09 -0400] rev 4886
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:07 -0400] rev 4885
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:05 -0400] rev 4884
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:50:03 -0400] rev 4883
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:48:25 -0400] rev 4882
packaging: prepare version 9.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:46:13 -0400] rev 4881
packaging: update changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Oct 2019 13:56:37 -0400] rev 4880
manifest: exclude the gitlab file
(oops)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 04 Oct 2019 14:16:52 -0400] rev 4879
branching: merge with stable
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:48:50 +0100] rev 4878
py3: return unicode from setup.py's get_version
py3 expects the version number for eggs to be unicode, so despite 9.2.0 being
the first evolve release with beta py3 support it isn't currently pip
installable since it dies with:
File "*/setuptools/command/egg_info.py", line *, in tagged_version
return safe_version(version + self.vtags)
TypeError: can't concat str to bytes
The `setup.py install` test added in a previous commit should cover this since
it died in a different but similar way before.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:39:37 +0100] rev 4877
py3: remove smartquotes from README
They break running setup.py with py3 but only in tests, because in the test
environment `locale.getpreferredencoding()` is ANSI_X3.4-1968, so the file is
`open()`ed with that as the encoding. An alternative for fixing this would be
to make the `open()` call with `encoding='utf-8'` under py3, which would be
safe against any future non-ascii in README.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:20:47 +0100] rev 4876
setup: make runnable from other dirs
Currently it fails when run in that way for two reasons:
- the description is loaded from the README file but with a path relative to
the working directory
- module references have the same issue, which is fixed with package_dir.
Ian Moody <moz-ian@perix.co.uk> [Thu, 03 Oct 2019 23:17:13 +0100] rev 4875
setup: add a test for running setup.py
`python3 -m pip install hg-evolve==9.2.0` currently fails, despite 9.2.0 being
the first beta py3 release, because of unicode issues with the version number.
`setup.py install` is a proxy test for pip install since it also suffers from
similar, however the test currently fails due to running setup.py from a
different directory to the one it is in.
Also add a test for `hg version -v` with evolve enabled since a naive first
solution for the pip issue was to just change `__version__` to a `u''` string,
but that busts version display in `version -v`, which isn't currently picked up
by tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 04 Oct 2019 00:15:53 -0400] rev 4874
gitlab-ci: be bold and try to run the full test in them
This is a basic version that should work reasonably well. The setup is a bit
costly and the cleanup is not guaranteed yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 03 Oct 2019 22:46:21 -0400] rev 4873
gitlab-ci: basic test with flake8
Let us step into the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:15:02 +0200] rev 4872
branching: merge back with stable
version 9.2.0 have been released
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:50:19 +0200] rev 4871
branching: preserve test change on stable
CORE-TEST-OUTPUT-UPDATE: cdf0e9523de1
CORE-TEST-OUTPUT-UPDATE: d7304434390f
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
CORE-TEST-OUTPUT-UPDATE: 181ee2118a96
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:14:07 +0200] rev 4870
packing: mark as development version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 13:00:20 +0200] rev 4869
Added tag 9.2.0 for changeset 40795751be1c
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:22 +0200] rev 4868
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:20 +0200] rev 4867
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:18 +0200] rev 4866
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:16 +0200] rev 4865
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:14 +0200] rev 4864
test-compat: merge mercurial-5.0 into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 13:03:12 +0200] rev 4863
test-compat: merge stable into mercurial-5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 28 Sep 2019 12:51:03 +0200] rev 4862
changelog: update for coming 9.2.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:49:36 +0200] rev 4861
test: backed out test change applied in 2d85de79ead8
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:49:15 +0200] rev 4860
test: backed out test change applied in 62b60fc1983d
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:48:44 +0200] rev 4859
test: backed out test change applied in e804d5a7c193
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 12:48:28 +0200] rev 4858
test: backed out test change applied in 8345b852cd4f
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 27 Sep 2019 06:55:05 +0200] rev 4857
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:43:19 +0200] rev 4856
stable-doc: note about not storing smaller range
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:43:02 +0200] rev 4855
stable-doc: small typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Sep 2019 19:31:44 +0200] rev 4854
stable-doc: add more advanced examples
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.
Kyle Lippincott <spectral@google.com> [Mon, 16 Sep 2019 12:42:11 -0700] rev 4846
cmdstate: switch to new-style classes
This isn't a huge issue and isn't necessary on Python3, but we're still Python2
compatible and we should be consistent (and strongly prefer new-style classes);
this is the only class that is not deriving from object that I could find.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Sep 2019 12:42:27 +0200] rev 4845
branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Fri, 19 Jul 2019 16:26:48 +0200] rev 4844
docs: add example for the `prune` command
Giving at least one example helps clear up the syntax, especially since most
options will follow a very similar pattern.
Anton Shestakov <av6@dwimlabs.net> [Thu, 19 Sep 2019 11:46:16 +0700] rev 4843
tests: add some more actions to test-issue-6028, describe what's being done
This patch does two things: it explains what's happening in the test file so
it's easier to understand, and also it adds checks that make sure something
like swapping merge parents is not accidentally breaking anything.
The primary reason to touch this test file was that it was broken by a change
in core's merge.graft() that erroneously swapped merge parents. Since only
evolve uses merge.graft() for merge commits and there aren't any tests in core
for it, let's test it here. Plus, this test case is pretty simple and these
additional checks don't make it too complicated.
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Fri, 13 Sep 2019 16:04:32 +0200] rev 4842
topic: fix some API to make it more robust
The new code can deal with changes in upstream mercurial.
Anton Shestakov <av6@dwimlabs.net> [Tue, 10 Sep 2019 15:43:20 +0700] rev 4841
rewriteutil: move allowdivergence check to foldcheck()
foldcheck() calls precheck() first and then performs more fold-specific checks.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Sep 2019 12:35:42 +0200] rev 4840
test: change to output around transaction timing
CORE-TEST-OUTPUT-UPDATE: d7304434390f
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Sep 2019 07:38:46 +0200] rev 4839
branching: merge with stable
There have been multiple fix on stable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 21:24:45 +0200] rev 4838
stablerange: add some data from field testing
This show that in number of stable range to track stay reasonable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:50:48 +0200] rev 4837
stablerange: add a debugstablerangecache command
The command display get some data about stable range in a repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:49:26 +0200] rev 4836
stablerange: add some documentation about the general concept
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 17:47:37 +0200] rev 4835
stablesort: add some field data about stable sort cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 13:31:28 +0200] rev 4834
stablesort: introduce a small debugstablesortcache command
This give a small insight on the cache content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 08 Sep 2019 11:56:11 +0200] rev 4833
stablesort: add some documentation for stablesort
This should help people to understand what is going on here.
Anton Shestakov <av6@dwimlabs.net> [Sat, 07 Sep 2019 13:03:29 +0700] rev 4832
fold: check allowdivergence before folding obsolete changesets (issue5817)
Anton Shestakov <av6@dwimlabs.net> [Wed, 28 Aug 2019 18:30:58 +0700] rev 4831
tests: demonstrate that fold doesn't care about allowdivergence config option
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 13:23:25 +0700] rev 4830
stack: remove unnecessary copying of rdependencies
rdependencies is not modified in any way in this method, so no need to copy it.
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 12:53:46 +0700] rev 4829
stack: make a deep copy of `dependencies` before modifying its items
The algorithm later on in this method uses .remove() to remove individual
elements from items in dependencies, which before this patch modified the
cached property contents. So for further use that dictionary was in the form of
{1: set([])}, i.e. all sets were empty.
This deep copy block could be way simpler, but the problem is that sometimes we
get lists of _succs() from evolvebits.builddependencies(). Note: this happens
only in topic's stack version of builddependencies() and it looks like a
suboptimal way to handle multiple successors (see evolve's counterpart
function).
stack.builddependencies method is removed, it has served its purpose (see the
previous patch).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Sep 2019 12:16:34 +0700] rev 4828
stack: demonstrate that not reusing cached property gives different results
Instead of using self._dependencies, which is a cached property, let's get
fresh deps and rdeps in stack.revs method using a newly introduced
stack.builddependencies method (will be removed in the next patch).
This makes it easier to explain why the next patch is correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 03 Sep 2019 12:48:47 +0200] rev 4827
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Sep 2019 13:02:20 +0700] rev 4826
changelog: add missing entry for 9af212b8565a
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Sep 2019 13:02:20 +0700] rev 4825
evolve: test that target is not orig in _solveunstable() (issue6097)
`newer` is the result of obsutil.successorssets() and can be [[orig.node()]],
in which case later on in this function evolve will try to rebase orig onto
orig, which is not correct. So let's just check this particular case.
This fix doesn't cover cases when successorssets() result contains orig.node()
not at [0][0]. Such cases need tests.
Anton Shestakov <av6@dwimlabs.net> [Mon, 02 Sep 2019 11:17:23 +0700] rev 4824
tests: demonstrate an orphan changeset cause "relocate node on top of itself"
See issue6097.
Anton Shestakov <av6@dwimlabs.net> [Fri, 30 Aug 2019 11:31:19 +0700] rev 4823
obslog: only indent the first chunk and chunks just after newlines (issue6175)
Anton Shestakov <av6@dwimlabs.net> [Fri, 30 Aug 2019 11:28:02 +0700] rev 4822
tests: demonstrate too many spaces in olog -p output with word-diff
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Jul 2019 18:37:16 +0800] rev 4821
rewind: add --keep flag that "doesn't modify working directory"
The actual logic is more complicated than the flag description, but it's
sufficiently similar to other --keep flags in action.
Unlike strip (or prune), rewind always needs to modify the working directory to
commit new revisions that "revive" old ones [1], see _revive_revision() (and
rewriteutil.rewrite()). Because of that we don't prevent rewind from modifying
wdir, but instead use hg.updaterepo() to update to the old changeset after the
"revival" process is complete. Then we rebuild the dirstate based on the commit
that rewind would update to without --keep.
Since dirstate.rebuild() doesn't restore status of some files (added, removed,
also copies and renames), we rely on cmdutil.revert(). It's a fairly crude
solution and needs to be removed when implementing the missing copy tracing
between oldctx and newctx (which are related only by obsolescence).
[1] IOW this means that --keep doesn't allow rewinding if wdir is dirty (unlike
e.g. strip).
Anton Shestakov <av6@dwimlabs.net> [Tue, 23 Jul 2019 18:05:40 +0800] rev 4820
tests: separate rewinding of merge commits, temporarily drop an error case
The error case will come back in the following commit, because it organically
fits there without the need of a separate working clone.
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:22:16 +0200] rev 4819
python3: add python3 beta support to the CHANGELOG
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:21:56 +0200] rev 4818
python3: mention beta Python 3 support in README
Raphaël Gomès <rgomes@octobus.net> [Wed, 07 Aug 2019 15:21:17 +0200] rev 4817
python3: add supported python versions to setup.py
Mercurial technically can support Python 3.5 (although no lower, see its
setup.py), but `evolve` probably won't because it represents more work
for an underrepresented Python version. If you happen to *really* need
evolve to work on Python 3 and you're reading this message, send an email
to the mailing list, or contribute patches.