Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:39:41 +0200] rev 4537
topic: only wrap _destmergebranch for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 12:36:11 +0200] rev 4536
topic: only wrap gettopicrepo for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:49 +0200] rev 4535
topic: only wrap mergeupdate for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:39 +0200] rev 4534
topic: only wrap committext for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:24 +0200] rev 4533
topic: only affect `hg commit` behavior for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:13:14 +0200] rev 4532
topic: only wrap workingctx.__init__ for repo with topic
This helps repository with and without topic to coexist in the same process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 11:12:58 +0200] rev 4531
topic: introduce a `hastopicext(repo)` function
This function check if a repository has the extension enabled or not.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 00:20:44 +0530] rev 4530
tests: consolidate the public-content-divergent test cases
This commit move the public-content-divergent tests in dedicated
test files.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 12:31:17 +0530] rev 4529
evolve: improve inline documentation for the public divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 14 Apr 2019 20:26:05 +0530] rev 4528
cleanup: remove a duplicated line
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 21:39:28 +0200] rev 4527
changelog: mention topic compatibility
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:58:10 +0200] rev 4526
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:56:24 +0200] rev 4525
tescompat: revert test change for mercurial-4.9
We should still test against mercurial-4.9 expected output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:54:28 +0200] rev 4524
branching: merge 8.5.0 expected output in stable
Upstream stable is now for mercurial 5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Apr 2019 20:52:15 +0200] rev 4523
testcompat: open a branch dedicated to mercurial 4.9
Upstream merged its default branch into the stable one to prepare for Mercurial
5.0
Anton Shestakov <av6@dwimlabs.net> [Wed, 17 Apr 2019 18:46:41 +0800] rev 4522
topic: add compatibility for writing copy metadata in changelog.add()
As seen in hg 0e41f40b01cc.
Anton Shestakov <av6@dwimlabs.net> [Wed, 17 Apr 2019 16:18:22 +0800] rev 4521
serverminitopic: add compatibility for branchcache that now uses self._entries
A copy of 9b0cde5efbc9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:21:09 +0200] rev 4520
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:20:24 +0200] rev 4519
packaging: mark version as development version
Thsi help to reduce confusion for people using evolve from source
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:17:03 +0200] rev 4518
Added tag 8.5.0 for changeset 33c617626fd9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:15:24 +0200] rev 4517
packaging: prepare version 8.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:44:53 +0200] rev 4516
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Apr 2019 02:07:53 +0200] rev 4515
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:42:14 +0200] rev 4514
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:42:13 +0200] rev 4513
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:41 +0200] rev 4512
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:25 +0200] rev 4511
test-compat: merge stable into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:41:06 +0200] rev 4510
changelog: merge 8.4.1 and 8.5.1 entries
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:43:37 +0200] rev 4509
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:12:09 +0200] rev 4508
branching: merge default change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 22:13:55 +0200] rev 4507
branching: merge default branch in stable to prepare 8.5.0 release
The release is not fully ready, but the merging is non-trivial.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 02 Apr 2019 22:42:01 -0400] rev 4506
uncommit: abort if an explicitly given file cannot be uncommitted (BC)
This corresponds to f4147ca63d39 in the core uncommit extension.
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Apr 2019 17:45:36 +0800] rev 4505
evolve: store --update flag state in evolvestate file
Part of 9c522bdfc846 that wasn't yet accepted.
Anton Shestakov <av6@dwimlabs.net> [Fri, 12 Apr 2019 02:55:34 +0800] rev 4504
state: implement cmdstate.__contains__()
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:19:01 +0200] rev 4503
changelog: mention Martin work on phase-divergence
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Apr 2019 21:09:31 +0200] rev 4502
test: revert update from 5.0 record logic
This revert the test changes from 90f94231db5d.
Anton Shestakov <av6@dwimlabs.net> [Thu, 11 Apr 2019 17:42:48 +0800] rev 4501
tests: remove note about already implemented --confirm with --continue
4544067b831b made --confirm work with --continue, but didn't update/remove this
comment.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Mar 2019 23:57:12 -0700] rev 4500
evolve: use merge.update() for resolving phase divergence
Iterating over the manifest when tree manifests and narrowness is in
play produces entries for paths outside the narrowspec that represent
trees. For example, if the tests/ directory of the hg repo was not in
the narrowspec (and the hg repo was using tree manifests, which it
doesn't), then there would be a "tests/" entry in the manifest. The
merge code deals with some of these cases. For example, it's valid to
do a merge if only the local side changes directories outside the
narrowspec. That allows rebasing a local commit onto a public commit
that had changes to the excluded paths to work.
However, _resolvephasedivergent() was iterating of the manifests,
which resulted in crashes for some of our users when they tried to
resolve phase-divergent commits (actually content-divergent commits
that became phase-divergent after the intermediate rebase). We can fix
that by relying on merge.update(), since that already handles this
case.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 23:19:29 +0530] rev 4499
evolve: compat patch for recordfilter change in mercurial
This patch fix the broken things because of upstream changes in
recordfilter() which is being used to select the hunks interactively.
It fixes the test-uncommit-interactive.t by adding the compat layer.
But for test-split.t I had to fix the tests manually. To make it more
clear: splitting broke at evolve side because after that upstream change
now interactive mode doesn't prompt "examine change to foo" if foo is
mentioned explicitly using cli; and directly jumps to hunks selection
prompt (well, only if there is any changes at hunks level)
And the main issue is when file which is explicitly mentioned has no changes
at hunk level (for e.g copy, rename, mode change, empty new file), because in
that case you don't have any control on selection of that file and it would
be included automatically in first cycle of interactive selection.
And this "no changes at hunks level" was the reason for test-split.t breakage
as now it didn't prompt for those files which are passed on cli.
To fix this I have included some content in those files to make sure that
tests still demonstrate the same behaviour as they were doing before breakage.
Also, I replaced some "n" with "s" as it make more sense to skip all the
changes to that file in one go instead of hitting "n" multiple times
(if there were multiple hunks)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 21:03:56 +0200] rev 4498
test: add file cancelation scenario for phase-divergence
This improve the test coverage for corner cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:43:42 +0200] rev 4497
test: introduce a more complete test for phase-divergence
The test the preservation of "change" cancellation in multiple situation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:24:55 +0200] rev 4496
test: rename test about content divergent meta data
The test now use a name in line with the other content divergence test cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:18:14 +0200] rev 4495
test: cleanup title and doc phase-divergent cases
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 20:03:07 +0200] rev 4494
test: remove remaining duplicated file
This file should have been removed in d02a7c8cdee5.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 17:57:11 +0200] rev 4493
test: add test for content-divergence with file removal
File addition/removal tends to introduce corner case.
The actual test content comes from a Martin von Zweigbergk changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 17:29:40 +0200] rev 4492
test: clarify changeset concent in the first content-divergence test
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:59:58 +0200] rev 4491
branching: merge with stable
merge with new changeset on stable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:59:28 +0200] rev 4490
branching: merge with test consolidation
Conflict were simple once isolated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:40:58 +0200] rev 4489
branching: merge with stable
This merge happens before the large test consolidation on stable.
Joerg Sonnenberger <joerg@bec.de> [Sun, 07 Apr 2019 20:00:16 +0200] rev 4488
compat: drop getcachevfs, repo.cachevfs is supported in hg 4.4
Joerg Sonnenberger <joerg@bec.de> [Sun, 07 Apr 2019 19:53:53 +0200] rev 4487
evolve: when using evolve, cache files belong into the master repo
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 16:11:59 +0200] rev 4486
changelog: mention issue6089 fix
Manuel Jacob <me@manueljacob.de> [Sat, 23 Feb 2019 15:17:55 +0100] rev 4485
pick: update working dir branch (issue6089)
Previously the working copy was left in an "inconsistent" state.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 15:47:28 +0200] rev 4484
tests: rename test-grab to test-pick
This match the new command name.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 15:37:29 +0200] rev 4483
evolve: make sure div resolution don't replace the initial author (issue6113)
Before this patch, divergence resolution logic taking the current user who
is running the resolution command as the author of commit that will
be created after merging the two divergent csets.
This patch make sure that we preserve the initial author.
Changes in test file reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 10 Apr 2019 15:26:41 +0200] rev 4482
evolve: add test which demonstrate issue6113
This patch introducing a new test file which contains the test for issue6113
which is `test-evolve-content-divergent-distributed.t`. This test file
is supposed to contain tests for distributed workflows.
Next patch will fix the bug.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 Apr 2019 14:32:00 +0200] rev 4481
test: consolidate the content-divergent test cases
This commit move most of the content divergent related test in dedicated and
thematic test files.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 Apr 2019 21:16:49 +0200] rev 4480
changelog: mention the fix to issue6057
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 Apr 2019 20:45:36 +0200] rev 4479
extensions: avoid enabling evolve for unrelated repositories (issue6057)
The support for the `experimental.evolve` config have been there forever. So we
can stop using the global variable. This help avoiding evolve to enable itself
of repository that did not explicitly activated it. For example, this is useful
for hgwebdir.
Before this change, evolution feature had to be explicitly disabled or enabled
in every single repository.
Anton Shestakov <av6@dwimlabs.net> [Sat, 06 Apr 2019 15:50:15 +0200] rev 4478
stack: improve set combination logic
Anton Shestakov <av6@dwimlabs.net> [Sat, 06 Apr 2019 15:49:22 +0200] rev 4477
stack: fix phasecache._phasesets check logic
When _phasesets is not None, it's a list, and it contains set()s of revisions
in a specific phase, starting from public, draft, secret and so on. But since
repos are supposed to have the majority of revisions in public phase, the first
element of this list is not a (potentially huge) set, but None.
Previously this code tried to check if there's any element that is None, and
was always finding None at index 0, so the short path was executed every time
and the rest of the function was never used.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Apr 2019 12:41:57 +0530] rev 4476
evolve: remove todo markers from a test which has been fixed
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 22:28:07 +0200] rev 4475
next: clarify tests related to `commands.update.check` test
This clarify the test and help understand the next changeset.
Anton Shestakov <av6@dwimlabs.net> [Wed, 03 Apr 2019 17:20:34 +0800] rev 4474
stack: simplify phasecache checks in _stackcandidates()
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 17:45:59 +0200] rev 4473
evolve: fix divergence resolution when not merging a descendant
In divergence resolution, when we merge other cset with divergent one
we pass a `mergeancestor` arg to merge.update() and before this patch
we were passing `mergeancestor` as True in every case.
But it should be True only when we are merging a descendant onto an
ancestor.
When mergeancestor is True it does two things:
1) allows the merge if the destination is the same as the parent
of the ctx (so we can use graft to copy commits)
2) informs update that the incoming changes are newer than the
destination so it doesn't prompt about "remote changed foo
which local deleted".
So this patch change it to pass `mergeancestor` as True only when
it is required.
And changes in test file shows that it wasn't prompting either in
those cases when it should (acc. to 2nd point)
Test written by Pierre-Yves David, based the one updated in 5dbaabfe2c59.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Mar 2019 15:15:07 +0100] rev 4472
test: fix a phase divergence test case to actually not contains conflict
The previous test case had a conflict, but that conflict is currently not raise
by phase divergence resolution. This is an independent bug to solve.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Apr 2019 16:31:45 +0200] rev 4471
tests: use current instability names everywhere
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 12:24:28 +0200] rev 4470
test: apply unstability resolution to `test-unstability-resolution-result.t`
The test cases in this file probably deserved to be dispatched in other more
thematic test file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 12:06:33 +0200] rev 4469
test: rename and clarify content of test-unstable-content-divergent.t
The troubles → instabilities renaming was not applied here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 Apr 2019 11:53:05 +0200] rev 4468
test: rename and clarify content of test-unstable-orphan.t
The troubles → instabilities renaming was not applied here.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 03 Apr 2019 01:00:33 +0530] rev 4467
evolve: refactor the code which swap two nodes (in divergence resolution)
I see that we are using the code to swap the "divergent" and "other" node;
and updating the evolvestate accordingly at many places in divergence
resolution. This patch extract that code to a function.
Although I don't have strong opinion on this patch. It's a volunteered
patch to remove some redundancy.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Apr 2019 18:01:43 +0530] rev 4466
evolve: remove tmpctx arg from _resolvephasedivergent()
Before this patch, in _resolvephasedivergent() function we were passing
an optional argument "tmpctx" which was used to store a rebased version
of bumped if required. But for sake of simplicity we can achieve the
same results even without passing this "tmpctx" into that function.
No changes in test files demonstrate that this patch don't break
anything.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Mar 2019 11:48:36 +0100] rev 4465
doc: clarify _resolvephasedivergent role and constraint
Small documentation patch before larger changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Apr 2019 20:32:15 +0200] rev 4464
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:39:10 +0800] rev 4463
evolve: unindent some lines caught by flake8
The message was: "E117 over-indented".
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:29 +0800] rev 4462
obsexchange: avoid importing io/StringIO module with a different name
Since we're not interested in the whole module, let's shorten the imports and
aviod the lint warnings.
Otherwise pep8-naming complains:
- import io as StringIO: N812 lowercase imported as non lowercase
- import StringIO as io: N813 camelcase imported as lowercase
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:05 +0800] rev 4461
evolve: remove unused StringIO import
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 Mar 2019 09:45:07 -0700] rev 4460
compat: add support for new arg name in memfilectx.__init__
This makes us compatible with 550a172a603b (memctx: rename constructor
argument "copied" to "copysource" (API), 2019-03-19).
Martijn Pieters <mj@octobus.net> [Wed, 21 Nov 2018 12:00:46 +0000] rev 4459
topic: make topics compatible with branchmap refactor
See https://phab.mercurial-scm.org/D5290
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Mar 2019 11:19:24 +0100] rev 4458
evolve: compat patch to fix broken evolve obsdiscovery
This patch preserve the compatibility for the changes upstreamed
by e5ece0f46b40 in hg-committed.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 28 Mar 2019 15:05:57 -0700] rev 4457
tests: add obslog output to some tests for divergence resolution
As suggested by Boris Feld.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 28 Mar 2019 14:54:46 -0700] rev 4456
tests: add tests for divergence resolution with split+amend
As suggested by Boris Feld.
G: changed tests/test-evolve-phase-divergence.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 12:53:50 +0100] rev 4455
test: use 'split' instead of 'splitted' in the tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 12:30:10 +0100] rev 4454
evolve: drop the "computing new diff message" for phase-divergence
Future code update will remove this message, dropping it early clarify the
future diff.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Mar 2019 09:19:02 -0700] rev 4453
evolve: clarify output when phase-divergence resolution results in no change
I found it pretty confusing that it said "committed as abcd1234" when
no commit was created.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Mar 2019 09:44:05 -0700] rev 4452
tests: reduce dependence on previous tests for setup
The tests in test-evolve-phase-divergence.t built on each other for no
good reason, which makes the tests hard to modify and hard to read.
This patch cleans up some of them. We should clean up the rest too,
but the rest won't matter for my next patch, so I haven't bothered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Mar 2019 12:37:55 +0100] rev 4451
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 27 Mar 2019 20:52:30 +0800] rev 4450
topicmap: add compatibility for branchcache that now uses self._entries
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Mar 2019 14:29:22 +0530] rev 4449
evolve: fix over-idented block
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Mar 2019 09:48:05 -0700] rev 4448
tests: create "private" repository in already-updated state
I'm going to add more copies of the repo and it's easier to work with
the repo if it's already been updated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Mar 2019 11:23:09 +0100] rev 4447
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Mar 2019 15:45:11 -0700] rev 4446
touch: use action "touch", not "<function touch at ...>", in precheck
I just got this message:
abort: cannot <function touch at 0x7fde174b69b0> public changesets: f177c51ae98f
It has been this way since 1b7b9acda2a9 (touch: use precheck to
validate revision, 2017-07-23).
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Mar 2019 15:44:44 -0700] rev 4445
prune: use action "prune", not "touch", in precheck
We have been using "touch" since 06ee4ec88190 (prune: use precheck to
validate revision, 2017-07-23). That commit modified the tests, so it
kind seemed intentional, but I suspect it was still just an oversight.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Mar 2019 21:30:12 +0530] rev 4444
evolve: test a common case of public divergence
evolve: in pubdiv, handle the case when public branch is behind the mutable
In public divergence, when public branch is behind the mutable one the behaviour
that this patch added is that we relocate the draft one to public side.
This should be fine in most case, but might be an issue in some other (eg, when
the draft side of the divergence is rebase away from ancestors it relies on.)
Test written by Pierre-Yves David <pierre-yves.david@octobus.net>
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 24 Mar 2019 21:29:44 +0530] rev 4443
evolve: add condition in case of pubdiv to not swap the two div csets
In public divergence, we have pinned the public cset to the local side
when merge is performed. And in divergence resolution implementation
divergent cset is the one who is kept at the local side, so to say this
in one line: we have pinned public cset to the divergent side.
However, in some cases we need to swap the "divergent" and "other"
but we can't swap them in case of public divergence as thought would
cause an error because of not being able to relocate public cset.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Mar 2019 02:10:31 +0530] rev 4442
evolve: add logic to handle a particular case in divergence resolution
Case is: In content divergence, to check if the two csets are on different
parent or same parent what we do is find gca of the two csets and then
compare it with the singlesuccessors of two csets's parents.
Now, if gca is same as singlesuccessors of both the csets then we conclude
that both are on the same parent which is not totally correct as it is
possible that both the parents of two csets are obsolete with a single
successor.
This patch adds the logic to cover the above metioned case correctly,
deciding the part when we need to relocate a cset to other side while
resolving the stack of divergent csets.
Changes in test file demonstrate that before this patch we were not
doing it right because it should have relocated every node to other side
instead of just relocating the first one from the stack.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Mar 2019 00:16:44 +0530] rev 4441
evolve: add a test reflecting wrong behaviour of content-div resolution
This patch shows that currently the case when stack of divergent csets
have different parents is not handled correctly.
For a stack of csets which has different parent, right behaviour is to
relocate every node before performing merge but present implementation
only relocate first cset in the stack and skip relocation for the rest
of csets, this is not what we expect it to do.
Next patch will be about fixing this issue.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 Mar 2019 09:45:07 -0700] rev 4440
compat: add support for new arg name in memfilectx.__init__
This makes us compatible with 550a172a603b (memctx: rename constructor
argument "copied" to "copysource" (API), 2019-03-19).
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 13 Mar 2019 17:32:14 +0530] rev 4439
evolve: preserve compatibility for hg < 4.8 versions
This patch make sure evolve don't break if user using a version of
hg before this 7694b685bb10 patch on hg-committed.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 09 Mar 2019 19:25:34 +0530] rev 4438
evolve: warn user if cset desc is being lost
In public divergence when merging results in same as public cset,
we only create markers to solve the divergence i.e. [(public, (other,))]
In this case if other cset had a desc which was different from public
that will be lost.
So this print out a warning message to user that desc of non-public
cset is being lost.
Changes in test files reflect the added behaviour.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Mar 2019 18:00:08 +0100] rev 4437
changelog: mention latest improvement
Anton Shestakov <av6@dwimlabs.net> [Sun, 10 Mar 2019 18:50:00 +0800] rev 4436
stack: make @ (current) more important than $ (some sort of unstable)
Base is still ^ even if it's currently checked out.
Anton Shestakov <av6@dwimlabs.net> [Sat, 09 Mar 2019 13:13:53 +0800] rev 4435
stack: show content and phase divergent state and symbol
Replacing ' ' with '-' is just for color labels.
Anton Shestakov <av6@dwimlabs.net> [Sat, 09 Mar 2019 12:54:00 +0800] rev 4434
stack: handle external-children just like other states
This also fixes color labels: previously when external-children was combined
with another state, --color=debug would show something like:
[topic.stack.index topic.stack.index.current - external-children|s4]
Now there is a separate label for each state.
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 Mar 2019 22:50:56 +0800] rev 4433
stack: optimize revset used for stack --children
Since that option needs to exclude changesets on the current stack, let's just
use stack.revs (that are cached) for that and skip branch() or topic() revset.
st.revs[0] is the stack base, we don't consider it actual part of stack.
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 Mar 2019 19:13:45 +0800] rev 4432
stack: rename unstable -> orphan
That's the only instability stack can currently show, but it's about to show
more and showing "unstable" for one type of instability just isn't good.
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 21:47:08 +0800] rev 4431
evolvecmd: compatibility with older geteffectflag() that took a tuple
Before bae6f1418a95 the function took a tuple of 2 arguments instead of these 2
arguments directly.
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 21:42:32 +0800] rev 4430
obshistory: remove unused geteffectflag(), it's been in core since 4.4
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 16:56:25 +0800] rev 4429
compat: remove old vocabulary change fallbacks
Mercurial 4.4 (minimal hg version evolve currently supports) already uses the
new names and in fact has deprecation warnings saying that 4.4 is the last
version of Mercurial to support the old names.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Mar 2019 10:51:48 +0100] rev 4428
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:57:43 +0530] rev 4427
evolve: fix a typo from directory to dirty
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:47:14 +0530] rev 4426
evolve: fix the dirstate after setting parents with dirty wdir (issue5930)
Before this patch, during an interrupted evolve it can be confused
about copies. This patch fix the dirstate when parents are changed
using dirstate.setparents() with a dirty wdir.
Changes in test file reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:02:05 +0530] rev 4425
evolve: add tests which shows evolve can get confused about copies (issue5930)
This test demonstrate that an interrupted evolve can get confused about
copies. Next patch will fix this.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 05 Mar 2019 21:15:05 +0530] rev 4424
test: include some documentation to describe the case briefly
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 05 Mar 2019 20:07:23 +0530] rev 4423
split: use ui.configoverride to preserve phase while commiting
As we need to preserve the phase of revision which is going to be
splitted into multiple revision. This patch use ui.configoverrides
to temporarily overwrite the phases.new-commit config option at the
time of committing a new node.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Mar 2019 12:30:15 +0100] rev 4422
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Mar 2019 11:54:49 +0100] rev 4421
changelog: add entries for the recent fixes
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Mar 2019 03:16:51 +0530] rev 4420
evolve: make sure user can recover from conflict (issue6053)
we make sure while continuing interrupted evolve it reach to right code
This patch fix the issue6053 which is about falling evolve into unrecoverable
state and this is how it call fall into it:
If after some rewrite operations we reach to a point where resparent for
two content divergent csets is obsolete and we hit a conflict in
relocation, so now if you run `hg evolve --continue` after resolving
the conflict: code execution would check if wdir parent is obsolete
and run solveobswdp() rather than going to continueevolve() part
and there we will hit by a "abort: outstanding uncommitted merge"
And same for `--abort` or `--stop` flags.
Changes in tests reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Mar 2019 02:55:38 +0530] rev 4419
evolve: add test which shows unrecoverable evolve state (issue6053)
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 02 Mar 2019 02:34:29 +0530] rev 4418
evolve: add a test in pubdiv where only merging leads to conflict
Added a test in public divergence where both the cset are on the different
parent and no conflict in relocation but in merging.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 03:12:39 +0530] rev 4417
evolve: cover continue case in pubdiv when merging results in same as public
This patch is the part of a series which is adding support of public
divergence resolution of the case when merging results in same as pubic
cset. Changes made in this patch cover the --continue flag for the case:
when we had conflicts in merging.
Modified lines in previously added tests reflects the changed behaviour.
Also added some additional tests. I guess I have covered every possbile
case in test-evolve-public-content-divergent.t
While reviewing, if you see any test missed please let me know.
(I think there is one test missed that I will send as a follow-up)
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Feb 2019 01:02:51 +0530] rev 4416
evolve: handle a case in pubic-div when merging results in same as public
In public divergence resolution, what we do is:
1) first apply content divergence resolution
2) then phase divergent resolution on resultant node of 1) case
While doing case 1 it is possible that result of merging the two csets
would have same changes as public one contains. And then processing
the case 2 would create an empty commit which is not something we want
to do.
So this patch catch that same case when merging results in same as public
cset and don't create a new node, instead to solve the divergence
it just add a obsmarker from "other divergent" to "public divergent"
i.e. [other, (public,)]
Next patch will add the continue case handling for this same case.
This patch also adds the tests for the different cases which are possible
for the above mentioned case.
There is test for continue case too which is broken in this patch
and will be fixed in next patch.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 02:08:58 +0530] rev 4415
evolve: rename npublicdiv to publicnode
In next patches it would make more sense to use publicnode
instead of npublicdiv.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 02:02:18 +0530] rev 4414
evolve: in pubdiv resolution make sure that transaction get closed
Before this patch it could be possible that transaction won't get
closed if res is False in the pubic divergence resolution when
continuing the hg evolve.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 25 Feb 2019 22:50:24 +0530] rev 4413
evolve: pin the public cset to local side in merging when solving public div
While working on public divergence, I think it would be better to pin
the public cset to local side of merge for understanding and handling
the future cases without any ambiguity.
Changes in tests reflect the changed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Feb 2019 00:47:14 +0530] rev 4412
evolve: add tests of relocation case in public divergence
These tests cover the cases when "other" is behind the "public"
one and we would have to relocate "other" here. It covers
all the conflicting and non-conflicting cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 Mar 2019 16:29:32 +0100] rev 4411
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 02 Mar 2019 01:43:14 +0530] rev 4410
split: make sure hg split preserve the phase of splitting cset (issue6048)
Before this patch, while splitting we were not taking the phase
of splitting cset into account. By default new commits would
have draft changes. As we know there can two possible phases
i.e draft and secret in rewriting csets thing, so this adds
the handling of secret phase (as default is draft)
Changes in test file reflect the added behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 02 Mar 2019 01:37:04 +0530] rev 4409
split: add tests which demonstrate the issue6048
Next patch will fix this issue.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Feb 2019 21:01:06 +0530] rev 4408
evolve: fix the broken behaviour on div resolution in relocation case
In content divergence resolution, I see that when "relocationreq" is
True which means both the cset are on different parent and relocation
is required. In this case when "divergent" is the one who is behind
the "other" cset in DAG, we swap them. At this point one thing we
missed is to update the evolvestate['divergent'].
Because of this in continue case we didn't get the right value
of obsmarkers creation.
In this patch I added the code to update the evolvestate when we swap
them.
Now as we know "divergent" and "other" can be swapped in some cases,
it is better to store the intial divergent separately in evolvestate
which is evolvestate['orig-divergent'] and later this value is used
to update the evolvestate['replacements'] which is the track of
revisions which has been resolved.
Changes in tests demonstrate the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Feb 2019 23:49:37 +0530] rev 4407
evolve: change in a test which demonstrate divergence resolution can break
This patch just add "--any" flag to "hg evolve --content-divergent" in
a test and changed output reflect that there is something which is not
handled correctly.
After looking into code I found that it is because of using a evolvestate
value which is not updated i.e evolvestate['divergent']
Next patch will fix this problem.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Feb 2019 23:57:18 +0530] rev 4406
tests: update the title of a test as it's not what it says
I see that this test has conflict in relocation and in merging also.
We do have a test for the case when only relocation leads to conflict.
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:29 +0800] rev 4405
obsexchange: avoid importing io/StringIO module with a different name
Since we're not interested in the whole module, let's shorten the imports and
aviod the lint warnings.
Otherwise pep8-naming complains:
- import io as StringIO: N812 lowercase imported as non lowercase
- import StringIO as io: N813 camelcase imported as lowercase
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:56:05 +0800] rev 4404
evolve: remove unused StringIO import
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 21:39:10 +0800] rev 4403
evolve: unindent some lines caught by flake8
The message was: "E117 over-indented".
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Feb 2019 12:46:57 +0100] rev 4402
branching: overwrite broken merge with a correct one
Thanks goes to Anton Shestakov for spotting and fixing this.
Anton Shestakov <av6@dwimlabs.net> [Wed, 13 Feb 2019 19:18:17 +0800] rev 4401
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Feb 2019 15:03:14 +0100] rev 4400
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 11 Feb 2019 21:33:02 +0800] rev 4399
obshistory: omit keyword arguments with default values in patch.diffui() calls
d4c9eebdd72d made that function not take "relroot" and "prefix" anymore, and
instead expect "pathfn". These two chunks of code in this patch simply generate
patches for obslog -p and they broke because they tried to provide default
values for "prefix" and "relroot" for no apparent reason (and also for
"changes"). Let's instead rely on defaults of patch.diffui().
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Feb 2019 17:52:49 +0100] rev 4398
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Feb 2019 10:21:09 +0100] rev 4397
test: wider another time matching in prev/next lock testing
There does not seems to be a reasons for specifically matching 4-6 seconds.
Wider matching will avoid intermittent failure.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Feb 2019 09:29:54 +0100] rev 4396
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 08 Feb 2019 09:26:48 +0100] rev 4395
test: wider time matching in prev/next lock testing
There does not seems to be a reasons for specifically matching 4-6 seconds.
Wider matching will avoid intermittent failure.
Martijn Pieters <mj@octobus.net> [Wed, 21 Nov 2018 12:00:46 +0000] rev 4394
topic: make topics compatible with branchmap refactor
See https://phab.mercurial-scm.org/D5290
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 10:03:00 -0800] rev 4393
prompts: use 1-indexing in revselectionprompt()
The consumer is generally a human, not a computer. I've made the
mistake of entering "1" instead of "0" a few times myself.
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 Feb 2019 16:24:59 +0800] rev 4392
test-split: split now ignores diff.* settings
From 66399f2e92aa: "It is assumed by the author that the `[diff]` section is
primarily for *viewing* diffs, and that it is unlikely what people intend when
attempting to commit or revert."
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Sun, 03 Feb 2019 17:03:02 +0530] rev 4391
pick: add --tool for hg pick to specify mergetool
This patch used configuration override to enable you to pass a mergetool via the
--tool flag in case there is any merge conflict.
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Feb 2019 13:49:29 +0800] rev 4390
revset: use getintrange() to parse relation subscript
After 13f7a6a4f0db parsing the tokens into usable values needs to happen inside
subscript relation functions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 Feb 2019 12:04:50 +0100] rev 4389
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 31 Jan 2019 15:38:48 +0530] rev 4388
compat: pass contexts to _findlimit() (issue6066)
Now _findlimit() in copies module accept context instead of rev
number. See https://phab.mercurial-scm.org/D5595
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 03 Feb 2019 08:10:48 +0100] rev 4387
packaging: fix debian changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Jan 2019 04:45:40 +0100] rev 4386
changelog: add relevant entries
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 22 Jan 2019 18:40:10 +0530] rev 4385
evolve: add test for the case where public divergence on difference parents
This test make sure that public divergence resolution also handle the case when
divergentes changeset does not share the same parent at one end because one end
simply rebase. The other side has actual an actual diff change.
For now this would work only for the case when we need to relocate
the mutable one. Other case is still left to work on.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 21 Jan 2019 23:06:10 +0530] rev 4384
evolve: update the public divergence resolution logic to cover --continue case
To continue the interrupted evolve in case of public divergence:
we will have to store the node of that public cset which was in
content divergence with the other cset, so that we can perform the
phase divergence resolution between that public cset and a newnode
which is the result of content-divergence resolution.
Added tests reflect the behaviour this patch adds.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 21 Jan 2019 23:06:34 +0530] rev 4383
evolve: add logic to resolve content-divergence with a public cset
Public content-divergence is the divergence where a cset is content-divergent
with a public cset.
To solve public divergence:
1) perform content-divergent resolution
2) resultant node is phase divergent
3) perform phase divergence resolution
It is the intial logic to solve public divergence.
Next patches will be the covering the cases of:
1) relocation: when we need to relocate to node
2) continue: to add this resolution in case of --continue
3) the case when content-divergence resolution gives a result similar
to public cset.
Added test-evolve-public-content-divergent.t reflect the added behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 13 Jan 2019 19:33:19 +0530] rev 4382
evolve: introduce function to create a obsmarker relation even for public cset
To create obsmarkers we use obsolete.createmarkers() function, but because of
security reasons this function refuses to create obsmarkers for public cset.
And we need to create obsmarkers for a public cset while solving public content
divergence. So introducing this function which create a obsmarker relation even
for immutable cset.
Currently this function create obsmarker for a single relation, in contrast of
obsolete.createmarkers() which create markers for multiple relations.
Upcoming pathces will be using this function.
Anton Shestakov <av6@dwimlabs.net> [Tue, 29 Jan 2019 20:45:14 +0800] rev 4381
topic: make ranges work in revset relations like 'foo#stack[1:2]'
Anton Shestakov <av6@dwimlabs.net> [Mon, 28 Jan 2019 22:31:31 +0800] rev 4380
topic: simplify #stack index check/access
Also using stack.revs instead of list(stack). It's equivalent and stack.revs is
@propertycache'd.
Anton Shestakov <av6@dwimlabs.net> [Sun, 27 Jan 2019 17:39:09 +0800] rev 4379
topic: make ranges work in revset relations like 'foo#topic[1:2]'
Since #topic is very similar to #generations, we reuse the function directly.
Few tests because #generations is already tested in core.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 25 Jan 2019 16:51:36 +0530] rev 4378
evolve: add description of function solveobswdp
Martin von Zweigbergk <martinvonz@google.com> [Wed, 23 Jan 2019 12:11:36 -0800] rev 4377
evolve: document the "if not shouldupdate" block
I missed the "not" in "if not shouldupdate: ... hg.updaterepo()" and
it took a long time for me to realize it's about updating *back* to
the original commit (or to its successor). Let's add a comment to
maybe help the person not make the same mistake.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 23 Jan 2019 11:55:20 -0800] rev 4376
evolve: make "startnode" consistently be a node, not a context
This fixes a bug where we didn't print "working directory is not at
..." after `hg evolve --continue` because we were comparing a node and
a context.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 22:36:29 -0800] rev 4375
evolve: use context managers for locks and transaction
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:17:58 -0800] rev 4374
prune: use scmutil.cleanupnodes()
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:45:16 -0800] rev 4373
uncommit: use scmtutil.cleanupnodes()
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:33:02 -0800] rev 4372
amend: use scmutil.cleanupnodes() with --patch
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 10:32:44 -0800] rev 4371
pick: use scmutil.cleanupnodes()
A side-effect is that `pick` should now also move bookmarks.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Jan 2019 09:45:25 -0800] rev 4370
fold: use scmutil.cleanupnodes()
scmutil.cleanupnodes() has existed since 4.3 and had the metadata
argument since 4.4, so we can now safely depend on it.
Anton Shestakov <av6@dwimlabs.net> [Sat, 26 Jan 2019 23:58:18 +0800] rev 4369
revset: subscriptrelations functions now have two bounds
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Jan 2019 15:49:44 -0500] rev 4368
branching: merge with stable
A new version has been released
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Jan 2019 15:48:44 -0500] rev 4367
packaging: mark as development version
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Jan 2019 15:46:38 -0500] rev 4366
Added tag 8.4.0 for changeset 8c4289d0e91e
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 20:25:36 -0500] rev 4365
packaging: prepare release 8.4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Jan 2019 09:05:12 -0500] rev 4364
minitopic: add warning about extensions state and testing
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:57:25 -0500] rev 4363
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:55:09 -0500] rev 4362
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:59:33 -0500] rev 4361
branching: closing test-compat branch for mercurial-4.3
We are dropping support for this version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:54:44 -0500] rev 4360
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:54:43 -0500] rev 4359
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:54:41 -0500] rev 4358
test-compat: merge stable into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 12:50:54 -0500] rev 4357
changelog: explicit the part related to topic
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:46:02 -0500] rev 4356
branching: merge with future version
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:43:44 -0500] rev 4355
branching: start branch for test compat with Mercurial 4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:45:09 -0500] rev 4354
test-compat: reverse test change from 9bce7e6c18b3
This change are 4.9 only
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:44:49 -0500] rev 4353
test-compat: reverse test change from db87432df8de
This change are 4.9 only
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:44:33 -0500] rev 4352
test-compat: reverse test change from ac39cfb5bddd
This change are 4.9 only
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 22 Jan 2019 10:41:53 -0500] rev 4351
branching: merge stable into default prior to new version
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 19 Jan 2019 21:41:15 +0100] rev 4350
branching: merge wit stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 17 Jan 2019 12:37:40 +0100] rev 4349
obsdiscovery: use consistent filtering during discovery
If we computed revision using an unfiltered repository, we should run the
discovery unfiltered too.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 18 Jan 2019 23:09:44 +0530] rev 4348
evolve: make sure we don't stop after evolution of obsparent (issue5881)
Before this patch, we were not handling the case when revset
given by user also contain wdir parent which is obsolete.
We were explicitly checking if wdir parent is obsolete, then update
to its successor and return; without checking if we still have
some revisions to be evolved.
This patch make sure that after it update to the successor of
obsolete parent it doesn't stop and continue to evolve other remaining
revisions.
Changes in tests/test-evolve-issue5881.t reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 18 Jan 2019 23:08:43 +0530] rev 4347
evolve: extract "update" code into its own function
This patch moves the code to a function which handles the case when wdir
parent is obsolete and evolve will just update to its successor.
And extraction of this to a function will also help us to fix the
issue5881.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 25 Dec 2018 16:08:05 +0530] rev 4346
evolve: add test case for issue 5881
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 18 Jan 2019 13:54:30 +0530] rev 4345
evolve: add test which shows fixed behaviour of `hg evolve` (issue5686)
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 25 Dec 2018 14:35:54 +0530] rev 4344
evolve: cover the orphanmerge part missed by lastsolved
Let's cover the orphanmerge part also as it was missed
at the time when we introduced "lastsolved".
Chagnes in test-evolve.t reflect the fixed behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 17 Jan 2019 16:20:35 +0530] rev 4343
evolve: add test which shows orphan-merge resolution can result to crash
It happens when there are still some revisions to evolve after evoluiton of
a orphan-merge. And the reason behind crash is that `lastsolved` is not being
updated and contain a wrong value which is now hidden.
Next patch will fix this problem.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 25 Dec 2018 10:10:12 +0530] rev 4342
next: populate stacktemplate to the missed _nextevolve function
Martin von Zweigbergk <martinvonz@google.com> [Mon, 14 Jan 2019 09:14:38 -0800] rev 4341
evolve: adapt for deprecated ui.progress()
This makes a wrapper that has an interface like ui.progress() even
though that's the old interface that will eventually go away. That's
because it's a lot easier to convert from the ui.progress() to the
ui.makeprogress() interface than the other way around. Once we no
longer support hg<4.7, we can migrate our callers to ui.makeprogress()
and drop the wrapper.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 11 Jan 2019 09:26:41 -0800] rev 4340
fold: sort concatenated commit messages in topological order
It seems better to have the proposed commit message look the same
whether the user ran `hg fold --exact -r . -r .^` or `hg fold --exact
-r .^ -r .`.
Anton Shestakov <av6@dwimlabs.net> [Wed, 26 Dec 2018 14:52:07 +0800] rev 4339
topic: make revsets like 'foo#topic[0]' work
Essentially, 'topic' relation subscript function is the same as 'generations',
but is limited to revisions marked with one particular topic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 10 Jan 2019 17:30:01 +0100] rev 4338
changelog: add an entry about the revset stack indexing
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 10 Jan 2019 17:36:59 +0100] rev 4337
test: adapt output to minor behavior change
CORE-TEST-OUTPUT-UPDATE: bad05a6afdc8
Anton Shestakov <av6@dwimlabs.net> [Sun, 06 Jan 2019 00:27:54 +0800] rev 4336
tests: remove unused variable and needless subshell in testlib/pythonpath.sh
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 05 Jan 2019 05:21:37 +0100] rev 4335
branching: merge with stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Jan 2019 19:17:38 -0500] rev 4334
tests: conditionalize some output for Windows
A couple of these were already present, but out of place.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Jan 2019 18:49:53 -0500] rev 4333
test-pyflakes: use '/' when printing the files to check
If paths are printed with '\', `xargs` sees the parts allsmooshedtogether, and
pyflakes errors out.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Jan 2019 18:46:46 -0500] rev 4332
tests: fix PYTHONPATH manipulation on Windows
Without the semicolon separator and quotes, the variables ends up like this:
c:\Users\Matt\projects\hg-evolve:c:\Users\Matt\projects\hg-evolve:
c:\Users\Matt\projects\hg;c:\Users\Matt\projects\hg-evolve\tests;
c:\Users\Matt\projects\hg\tests
That in turn makes the local evolve code unreachable, and the system installed
code is tested instead.
I'm testing against `uname` instead of a trivial python script printing os.name
because maybe one day tests will run on WSL.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 03 Jan 2019 00:01:54 -0500] rev 4331
exthelper: update documentation with some examples for using registrar aliases
Matt Harbison <matt_harbison@yahoo.com> [Thu, 27 Dec 2018 23:46:35 -0500] rev 4330
exthelper: simplify the ability to register filesets
Same mechanism as revsets earlier in this series.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 27 Dec 2018 21:55:22 -0500] rev 4329
exthelper: simplify the ability to register templates
Same mechanism as revsets earlier in this series.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 27 Dec 2018 21:26:17 -0500] rev 4328
exthelper: simplify the ability to register revsets
I think this is what Yuya and Boris agreed on.[1] This happens *after* the
extsetup phase now (and after the _aftercallback notifications). But this is
trivial, mergeable between exthelper instances, and doesn't need to have the
extension name supplied when registering.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-December/125888.html
Matt Harbison <matt_harbison@yahoo.com> [Sun, 23 Dec 2018 21:54:56 -0500] rev 4327
exthelper: support the option argument when registering a command
Largefiles uses this 5th argument with push and pull, so this will be tested in
the next commit. I assume the reason for unrolling and reforming the tuple in
each finalxxxsetup() is to validate that something proper was passed in when
registering. But it's better to explode when decorating than during the delayed
actual registration.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 22 Dec 2018 22:26:36 -0500] rev 4326
exthelper: simplify configitem registration
Matt Harbison <matt_harbison@yahoo.com> [Thu, 27 Dec 2018 21:26:17 -0500] rev 4325
exthelper: avoid a [] default arg to wrapcommand()
Matt Harbison <matt_harbison@yahoo.com> [Fri, 04 Jan 2019 00:10:44 -0500] rev 4324
configitems: move the default values to the registrar decorator
The exthelper refactoring of configitems stopped registering dynamicdefault for
everything, which in turn causes a lot of warnings about mismatched defaults.
There are a few stragglers- I didn't fix topic-mode because I wasn't sure what
the default should be, and the alias for odiff was explicitly given a default
for compatibility.
Anton Shestakov <av6@dwimlabs.net> [Wed, 26 Dec 2018 22:14:23 +0800] rev 4323
topic: make revsets like foo#stack[-1] work too
We remove base commit when n < 0 because it's confusing to see base (which
technically isn't a commit inside the stack) at both 0 and -n.
Anton Shestakov <av6@dwimlabs.net> [Sun, 16 Dec 2018 11:22:04 +0800] rev 4322
topic: make revsets like 'foo#stack[0]' work
'stack' relation subscript function is another way to refer to s0, s1, etc. But
instead of aborting in many cases it will simply return an empty set.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 22 Dec 2018 01:29:59 -0500] rev 4321
exthelper: remove '_' in final_xxx() function names to conform to hg style
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 18:38:25 +0100] rev 4320
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 18:36:25 +0100] rev 4319
packaging: mark as development version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 18:01:30 +0100] rev 4318
Added tag 8.3.3 for changeset 97b18934d6db
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:55:25 +0100] rev 4317
packaging: prepare version 8.3.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:47:40 +0100] rev 4316
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:47:31 +0100] rev 4315
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:47:29 +0100] rev 4314
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:47:28 +0100] rev 4313
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Dec 2018 17:47:27 +0100] rev 4312
test-compat: merge stable into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 13:14:59 +0800] rev 4311
evolve: detect unresolved conflict during evolve --continue (issue5966)
Evolve --continue was ignoring unresolved conflict, proceeding with its
operation without any check. This is now fixed.
This test case was built and formalized by Matt Harbison and Anton Shestakov.
Anton Shestakov <av6@dwimlabs.net> [Thu, 20 Dec 2018 13:59:07 +0800] rev 4310
tests: filter out uninteresting log events
Core has new ui.log() calls added (for tracking extension loading and
performance, for example), but in test-discovery-obshashrange.t it produces a
bunch of lines that are unrelated to the test. So we filter them out to not
touch test output. This is inspired by 1de3364320af in core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 20:14:26 +0100] rev 4309
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 20:14:23 +0100] rev 4308
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 20:14:21 +0100] rev 4307
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 20:14:20 +0100] rev 4306
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 20:14:18 +0100] rev 4305
test-compat: merge stable into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Dec 2018 19:48:01 +0100] rev 4304
linter: silence rightful complains about unused variable
Anton Shestakov <av6@dwimlabs.net> [Mon, 03 Dec 2018 14:41:03 +0800] rev 4303
topic: merge _showlasttouched logic into _listtopics
Makes --age work with --verbose.
Anton Shestakov <av6@dwimlabs.net> [Mon, 03 Dec 2018 14:15:00 +0800] rev 4302
topic: simplify _showlasttouched and _getlasttouched (and its data structure)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Dec 2018 18:57:49 +0100] rev 4301
branching: merge with stable
Boris Feld <boris.feld@octobus.net> [Thu, 13 Dec 2018 17:40:41 +0000] rev 4300
split: add a --interactive flag
While the interactive mode is useful for end-users, there are some cases where
they don't need the interactivity overhead. Moreover, this allow the split
command to be used in automated scripts.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 14:39:48 +0100] rev 4299
split: take file patterns to limit selection on matching file patterns
When splitting a big changeset, the user often wants to extract specific files
from the changeset while leaving the others files intact.
The split command can now be called with multiple file patterns. Only files
that match one of the patterns will be shown in the interactive selection. The
user will be able to create one or more commits with those files.
When the user finishes splitting the matching files, a last commit will be
made with the remaining of the files.
Boris Feld <boris.feld@octobus.net> [Wed, 21 Feb 2018 12:39:17 +0100] rev 4298
split: only accept explicit revision through the `-r` option
We are about to introduce new non-optionnal arguments to defines files
patterns. To avoid confusion and to be closer to the standard options, only
accepts revisions with the `-r` option.
James Reynolds <james.glenn.reynolds@gmail.com> [Thu, 13 Dec 2018 17:41:06 +0100] rev 4297
issue-6028: resolves 6028 - return (False, ".") instead of (False, '')
Since 4.8, repo[] no longer takes an empty string, so we update to a valid with
similar semantic.
This value is strange and we should probably use an actual node ID here,
however, this is an independent issue.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Dec 2018 17:26:26 +0100] rev 4296
branching: merge with stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 12 Dec 2018 01:19:30 +0800] rev 4295
tests: add sparserevlog cap since hg now has sparse revlogs by default
CORE-TEST-OUTPUT-UPDATE: 3764330f76a6
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Dec 2018 17:22:58 +0100] rev 4294
split: rework the prompt to be more standard
We dropped the initial capital and moved to a positive question.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 20 Feb 2018 09:35:16 +0100] rev 4293
split: add a option to discard remaining change during split
This is useful to drop unwanted remaining change spotted during the split.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 20 Feb 2018 09:35:16 +0100] rev 4292
split: add a way to abort a split from the prompt
This prompt is asking the user about the next step. Offering to abort there make
sense.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 20 Feb 2018 09:36:55 +0100] rev 4291
split: add a help entry to the final prompt
We are about to add more option in this prompt. Adding a way to document then
seems like a good first step.
Anton Shestakov <av6@dwimlabs.net> [Wed, 05 Dec 2018 23:15:29 +0800] rev 4290
topic: make revset argument messages be similar to such messages in core
Anton Shestakov <av6@dwimlabs.net> [Wed, 05 Dec 2018 23:13:26 +0800] rev 4289
tests: don't forget to add hg serve pid to DAEMON_PIDS in test-wireproto.t
Otherwise it leaves a process running after each run-tests.py launch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Dec 2018 13:33:51 +0100] rev 4288
test: adapt to change output change on default
We now have a `wcache` directory in `.hg`.
Anton Shestakov <av6@dwimlabs.net> [Sat, 01 Dec 2018 16:08:42 +0800] rev 4287
safeguard: don't reimplement auto-publish if it's in core (will be in 4.9)
Anton Shestakov <av6@dwimlabs.net> [Sat, 01 Dec 2018 16:07:55 +0800] rev 4286
safeguard: the new default for auto-publish is 'publish'
James Reynolds <jreynolds@backstage.com> [Fri, 21 Sep 2018 11:44:34 -0400] rev 4285
stack: add a --children flag to stack
If a commit in the stack has been merged outside the current topic, show a trailing status of (external-children)
Matt Harbison <matt_harbison@yahoo.com> [Sun, 02 Dec 2018 16:52:14 +0100] rev 4284
extensions: avoid shadowing imported module names with exthelper methods
The previous code worked, but confused pyscripter.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 30 Nov 2018 22:10:39 -0500] rev 4283
extensions: add fileset support to exthelper
This will be tested by using it in lfs.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 02 Dec 2018 16:48:05 +0100] rev 4282
extensions: add uipopulate() support to exthelper
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Dec 2018 16:45:08 +0100] rev 4281
exthelper: clarify copyright and licence for the module
The exthelper is quite useful and Matt Harbison is looking into having it
upstreamed. We clarify the legal situation first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:46:35 +0100] rev 4280
packaging: merge with version 8.3.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:42:45 +0100] rev 4279
packaging: mark development version
This help reduce the confusion when people install from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 12:53:24 +0100] rev 4278
Added tag 8.3.2 for changeset 7edc5c148df0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:31:03 +0100] rev 4277
packagin: prepare release 8.3.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:07:38 +0100] rev 4276
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:07:36 +0100] rev 4275
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:07:35 +0100] rev 4274
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:07:33 +0100] rev 4273
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 04:07:31 +0100] rev 4272
test-compat: merge stable into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 03:57:30 +0100] rev 4271
changelog: add information about the topic message improvements
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 27 Nov 2018 03:56:27 +0100] rev 4270
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 27 Nov 2018 03:46:06 +0100] rev 4269
evolve: update the abort to a ProgrammingError
This error should be a ProgrammingError and as Pierre-Yves David said
ProgrammingError type did not existed when this code was written, so lets update
this now.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 26 Nov 2018 16:43:39 +0300] rev 4268
topics: improve the message around topic changing
The new message says 'cleared' when topic name is cleared, if we change to a new
topic name, it mentions the new topic name too.
Martijn Pieters <mj@octobus.net> [Wed, 21 Nov 2018 11:13:21 +0000] rev 4267
tests: fix for POSIX compliance
* Mac ls will exit with a different message and exit code [1], replace with
grep (which is what mercurial tests do)
* POSIX echo has no -n switch, use printf instead
Martijn Pieters <mj@octobus.net> [Wed, 21 Nov 2018 10:47:07 +0000] rev 4266
style: remove unused variables
Both `as e` references are not used and can go.
Eric Spishak-Thomas <spishak@google.com> [Tue, 20 Nov 2018 11:33:38 -0500] rev 4265
evolve: fix a documentation typo
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 02:34:39 +0000] rev 4264
compat: drop 4.3 related obsfate code
All the necessary piece are supported starting 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 02:27:13 +0000] rev 4263
compat: drop code dealing with incompatibility for --publish with 4.3
We dropped 4.3 support.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 02:25:37 +0000] rev 4262
compat: clarify when some conditional are used
The middle condition was an intermediate state that never existed into a
release. We can safely drop it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 02:20:44 +0000] rev 4261
compat: drop 4.3 "new troubles" report code
This is supported natively for Mercurial 4.4 and above.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 02:18:58 +0000] rev 4260
compat: drop 4.3 wrapping of createmarker for effect flag support
This is supported natively in 4.4 and above.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:52:45 +0000] rev 4259
compat: drop 4.3 monkey patch of `copies.mergecopies`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:45:34 +0000] rev 4258
compat: drop 4.3 compatiblity code for `obsutil.allprecursors` function
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:44:28 +0000] rev 4257
compat: drop 4.3 compatiblity code for `ui.edit` method
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:42:50 +0000] rev 4256
compat: drop 4.3 compatiblity code for 'successors' revset
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:41:36 +0000] rev 4255
compat: drop 4.3 compatiblity code for 'precursors' revset
Matt Harbison <matt_harbison@yahoo.com> [Sat, 10 Nov 2018 23:54:46 -0500] rev 4254
compat: drop Mercurial 4.3 support for exthelper
The last release email noted plans to drop 4.3 and 4.4 support in the next
feature release. I'd like to move this code into core, and dropping this should
allow the class to be copied in unmodified.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Nov 2018 01:49:34 +0000] rev 4253
compat: update metadata about minimum ag version
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 06 Nov 2018 10:41:50 +0530] rev 4252
next: solve the issue of `next` get confused by split
This patch solve a problem of next command which get confused by split.
Let me describe how it was getting confused:
Initial state of repo:
A---B---C
After splitting B to (B1,B2):
@
A---B1---B2
\
---B---C
X *
(note: C is orphan; checkedout to B1)
Lets make an amend on B1:
@
B1'
/
A---B1---B2
\ X *
\
---B---C
X *
Now, if run `hg next` (--evolve is True by default now):
$ it would give you choice to choose from B2 and C thinking that C could also
be a possbile children for B1, instead of stablizing B2 on B1.
I fixed this problem by filtering those aspiring children which can be
stablized on one of the aspiring children itself.
Changes made in test-prev-next.t shows the changed expected behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 06 Nov 2018 15:10:56 +0530] rev 4251
next: add test which shows that `next` get confused by split
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 31 Oct 2018 14:08:56 +0530] rev 4250
cleanup: avoid a Yoda condition
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 31 Oct 2018 14:06:17 +0530] rev 4249
evolve: modify and move the comment to appropriate position
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 31 Oct 2018 14:01:58 +0530] rev 4248
next: update the command description
Now, if necessary next command evolve the next child revision
by defualt. You don't need to pass the --evolve flag.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 10 Nov 2018 15:50:05 +0100] rev 4247
next: make next command --evolve by default
Before this patch, if we need to evolve to update to the next child,
we were suggesting the user to use --evolve flag. This patch make some
changes to evolve by default in that conditions.
After making next command to evolve by default we have to consider
the following points:
1) If we don't need to evolve while updating to the next child:
a) And if wdir is dirty, we suggest to use --merge flag
b) if wdir is clean, we simply update to next child (if ambiguous,
prompt the user to select one)
2) If we need to evolve:
a) when wdir is dirty, we suggest the user to use `hg shelve` first,
to make wdir clean. As we don't support --merge while evovling.
b) when wdir is clean, we evolve the next cset.
Changes made in test-prev-next.t reflect the changed behaviour.
Anton Shestakov <av6@dwimlabs.net> [Mon, 05 Nov 2018 19:56:33 +0800] rev 4246
safeguard: allow push to succeed (and without warning) with --publish
Anton Shestakov <av6@dwimlabs.net> [Sun, 04 Nov 2018 22:06:23 +0800] rev 4245
topic: only add --publish flag to push if it's not already there
Anton Shestakov <av6@dwimlabs.net> [Mon, 05 Nov 2018 16:04:01 +0800] rev 4244
safeguard: check auto-publish value before sending listkeys command
Always sending listkeys command is just wasteful, let's first make sure users
even care about auto-publish behavior.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 17:54:28 +0100] rev 4243
style: silence another flak8 warning
Default should be green now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 16:11:19 +0100] rev 4242
oops: backed out changeset df22f010cf24 pushed by error
The changeset still fails some test
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 10 Nov 2018 15:50:05 +0100] rev 4241
next: make next command --evolve by default
Before this patch, if we need to evolve to update to the next child,
we were suggesting the user to use --evolve flag. This patch make some
changes to evolve by default in that conditions.
After making next command to evolve by default we have to consider
the following points:
1) If we don't need to evolve while updating to the next child:
a) And if wdir is dirty, we suggest to use --merge flag
b) if wdir is clean, we simply update to next child (if ambiguous,
prompt the user to select one)
2) If we need to evolve:
a) when wdir is dirty, we suggest the user to use `hg shelve` first,
to make wdir clean. As we don't support --merge while evovling.
b) when wdir is clean, we evolve the next cset.
Changes made in test-prev-next.t reflect the changed behaviour.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 16:05:34 +0100] rev 4240
next: improve the message for dirty working copy with --evolve
This will be important soon when --evolve will be the default.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 16:01:31 +0100] rev 4239
next: use the `hint` argument of bail if changed
The argument is availabel since Mercurial 4.1. So let's use it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 15:59:16 +0100] rev 4238
prev: use the `hint` argument of bail if changed
The argument is availabel since Mercurial 4.1. So let's use it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 15:28:44 +0100] rev 4237
next: explicitly specify --no-evolve in the tests
The default value for this flag is about to switch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 15:47:46 +0100] rev 4236
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 15:37:22 +0100] rev 4235
style: fix various flake8 warning
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 10 Nov 2018 15:30:10 +0100] rev 4234
next: set if we need to evolve or not; also move logic to appropriate pos
set the value `needevolve` and also move the logic to find aspiringchildren
to appropriate position i.e before we suggest user to use other flags like
--merge.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 06 Nov 2018 11:22:39 +0530] rev 4233
next: move some code to prepare for `next --evolve` by default
Moved some values before the block where we suggest the user to use
--merge flag. As we would need these values to find if we need to evolve
or not before we can suggest user to use `--merge` flag.
We will suggest user to use `--merge` flag only when we don't need to
evolve. Because currently we don't support both --evolve(going to be True
by default) and --merge at the same time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Nov 2018 00:55:34 +0100] rev 4232
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 06 Nov 2018 15:53:18 +0530] rev 4231
topic: improve UX by using pager only when we should
Before this patch we were using pager in every case of topic command,
either it is setting up a new topic or clearing the active topic.
After this patch it will not use pager in following commands:
$ hg topic [TOPIC] -r [rev]
$ hg topic --clear
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 06 Nov 2018 10:43:35 +0530] rev 4230
evolvecmd: _possibledestination() skip visiting empty parent
I see that even in the case when "parent == -1" we are visiting
that also and find succsets for that and in last -1 is being
added in the set of possible destination. Why not skip that?
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 03 Nov 2018 12:21:19 +0530] rev 4229
pick: `hg help` was not showing the full cmd desc of `pick`
after running command `hg help` it was not including the second line
of command description. I guess it picks the firstline only. So I moved
that part in first line of cmd description.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Nov 2018 20:19:01 +0100] rev 4228
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Nov 2018 20:18:59 +0100] rev 4227
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Nov 2018 20:18:58 +0100] rev 4226
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Nov 2018 20:18:57 +0100] rev 4225
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Nov 2018 20:18:55 +0100] rev 4224
test-compat: merge stable into mercurial-4.7
Boris Feld <boris.feld@octobus.net> [Wed, 07 Nov 2018 19:35:48 +0100] rev 4223
compat: fix fixedcopytracing compatibility with mercurial 4.8 and narrow
Mercurial 4.8 version of _fullcopytracing includes some new narrow code. As
https://phab.mercurial-scm.org/D3896 has not yet landed, update
fixedcopytracing behind a version detection condition. This was spotted by
Augie Fackler.
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 01 Nov 2018 21:33:15 +0300] rev 4222
utility: don't translate commit messages in revselection prompt (issue6016)
Commit messages should not be translated and should be shown the same. I am not
sure if I can add a test for this by creating a commit with non-ascii character
in commit message.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 26 Oct 2018 12:54:40 +0530] rev 4221
evolve: use stack template in --continue case also
We use stack indexes (s#) in evolve msging when revs being evolved are
in active topic. Before this patch we are not covering the --continue case.
So this patch cover the same and use the stack indexes s# even when we
continue an interrupted evolve.
In this patch I used the same concept (to check if we should use s#)
as we are using in cases other than `--continue`. Thanks to PYD for
refactoring those lines.
Changes in tests also reflects the expected behaviour.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 24 Oct 2018 19:38:02 +0530] rev 4220
evolve: add test showing currently stackalias fails in --continue case
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:51:55 +0200] rev 4219
branching; merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:50:42 +0200] rev 4218
packaging: mark version as devel version
This avoid confusion from people installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:44:07 +0200] rev 4217
Added tag 8.3.1 for changeset b90422a11a88
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:42:49 +0200] rev 4216
packaging: prepare version 8.3.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:32:54 +0200] rev 4215
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:32:52 +0200] rev 4214
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:32:51 +0200] rev 4213
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:32:50 +0200] rev 4212
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:32:49 +0200] rev 4211
test-compat: merge stable into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:09:08 +0200] rev 4210
evolve: do not try to display stack index of changeset who do not have one
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 18:08:34 +0200] rev 4209
evolve: check if we should use stack template for each item in the stack
We should probably just track the current topic and move all the logic in the
template itself. However, this is a good first step.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 17:03:34 +0200] rev 4208
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 16:33:10 +0200] rev 4207
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 13:05:14 +0200] rev 4206
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 13:04:08 +0200] rev 4205
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 13:03:30 +0200] rev 4204
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 13:03:03 +0200] rev 4203
test-compat: merge stable into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 13:24:34 +0200] rev 4202
branching: revert test outptu change for 4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 10:01:58 +0200] rev 4201
pullbundle: drop erroneous flagging of the command as basic
This is a debug command, not a basic part of the UI.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:55:37 +0200] rev 4200
test-compat: backed out changeset ba1e83c841f2
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:55:22 +0200] rev 4199
test-compat: backed out changeset b0084d599112
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:55:12 +0200] rev 4198
test-compat: backed out changeset e2d083cc447e
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:53:48 +0200] rev 4197
test-compat: backed out changeset ccbfbeee6cf3
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:53:09 +0200] rev 4196
test-compat: backed out changeset 7091f7215651
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:52:34 +0200] rev 4195
test-compat: backed out changeset 8eec9422bd8e
Preparing the branch for 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:49:48 +0200] rev 4194
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 12:41:16 +0200] rev 4193
branching: start test compatibility branch for Mercurial 4.7
Mercurial 4.8-rc0 have been released
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 21 Oct 2018 00:08:27 +0300] rev 4192
topic: add the changelog argument to branchinfo()
47c03042cd1d in core added a changelog argument to revbranchcache.branchinfo()
and we wrap that function in topic extension. So let's add this optional
argument in topic extension too.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Oct 2018 22:11:43 -0700] rev 4191
evolve: adapt for changed @command decorator
Core changed the hacky "^command" syntax to be a proper decorator
option in fa88170c10bb (help: adding a proper declaration for
shortlist/basic commands (API), 2018-10-12). This patch makes evolve
compatible with that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Oct 2018 14:47:38 +0200] rev 4190
topicidx: stop assigning index number to obsolete changesets
Obsolete changeset are no longer part of the stack, the old logic tried to
assigns them the index of their successors but this is flacky and error prone.
So we stop doing so.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 11:32:43 +0200] rev 4189
stack-index: add some test featuring content diversion
This will be useful to display various issues.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 Oct 2018 10:01:58 +0200] rev 4188
pullbundle: drop erroneous flagging of the command as basic
This is a debug command, not a basic part of the UI.
Pulkit Goyal <pulkit@yandex-team.ru> [Sun, 21 Oct 2018 00:08:27 +0300] rev 4187
topic: add the changelog argument to branchinfo()
47c03042cd1d in core added a changelog argument to revbranchcache.branchinfo()
and we wrap that function in topic extension. So let's add this optional
argument in topic extension too.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Oct 2018 09:02:35 -0700] rev 4186
topics: "prairie" is a not an animal (AFAIK, anyway)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Oct 2018 21:59:24 -0700] rev 4185
tests: remove a"| head -n 2" that just hides an error code
The output from core used to be longer and it made sense, but no
longer does.
CORE-TEST-OUTPUT-UPDATE: 5199c5b6fd29
Martin von Zweigbergk <martinvonz@google.com> [Thu, 18 Oct 2018 22:11:43 -0700] rev 4184
evolve: adapt for changed @command decorator
Core changed the hacky "^command" syntax to be a proper decorator
option in fa88170c10bb (help: adding a proper declaration for
shortlist/basic commands (API), 2018-10-12). This patch makes evolve
compatible with that.
Anton Shestakov <av6@dwimlabs.net> [Wed, 17 Oct 2018 23:10:30 +0800] rev 4183
commands: adjust metavariables as appropriate
Apart from looking better in hg help command, these strings are also helpful
when generating shell completions programmatically.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Oct 2018 14:02:18 +0200] rev 4182
branching: merge with default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Oct 2018 13:44:06 +0200] rev 4181
branching: preserve the expected output on default
Anton Shestakov <av6@dwimlabs.net> [Sun, 14 Oct 2018 13:37:11 +0200] rev 4180
evolvecmd: use modern vocabulary in help text for evolve
Anton Shestakov <av6@dwimlabs.net> [Sun, 14 Oct 2018 13:35:13 +0200] rev 4179
evolvecmd: mark flags with old instability names as deprecated
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Oct 2018 13:36:08 +0200] rev 4178
packaging: mark as development version
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 16:31:20 +0200] rev 4177
Added tag 8.3.0 for changeset 45d4b49d81d9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 16:19:39 +0200] rev 4176
packaging: prepare release 8.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 16:25:06 +0200] rev 4175
pullbundle: document working version and update changelog to mention it
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:20:54 +0200] rev 4174
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:15:09 +0200] rev 4173
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:15:07 +0200] rev 4172
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:15:05 +0200] rev 4171
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:37:22 +0200] rev 4170
topic: fix '{topicidx}' keyword registration for mercurial <= 4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:03:29 +0200] rev 4169
branching: prepare release 8.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:07:23 +0200] rev 4168
test: other harmless output change
These are new test that need adjustment for 4.7 output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 15:02:51 +0200] rev 4167
changelog: mention the fix of cache warming on hg strip
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:56:00 +0200] rev 4166
test: backed out output changes from changeset 6f391c2a773b
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:55:46 +0200] rev 4165
test: backed out test output changes from changeset ef22eef37ecc
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:55:37 +0200] rev 4164
test: backed out output changes from changeset 0171a7ceb574
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:55:27 +0200] rev 4163
test: backed out output changes from changeset dfa69b5ece87
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:55:20 +0200] rev 4162
test: backed out output changes from changeset 01ad46551d7c
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:40:03 +0200] rev 4161
prev: also use stack shortcut in output when possible
This mirror what `hg evolve` is doing since cc3a0b13ae57.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 14:33:03 +0200] rev 4160
next: also use stack shortcut in output when possible
This mirror what `hg evolve` is doing since cc3a0b13ae57.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 11:33:30 +0200] rev 4159
branching: merge stable into default
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 12 Oct 2018 02:12:23 +0300] rev 4158
rewind: alias the command to undo
This is a step in unifiying rewind and undo and not talk about them as different
commands or concepts. If there exists rewind command, that should be an alias of
undo and the vice versa.
The exact implmentation detail and how the command works etc. is a different
thing but there should be just one command.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 Oct 2018 01:23:16 +0200] rev 4157
changelog: add a line about the usage of s# in evolve
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 Oct 2018 13:38:38 +0200] rev 4156
caches: no longer warm the cache on strip in "auto" mode
Before this patch, a strip would trigger a full and blind cache load that would
include the stablerange cache.
In repository like Mozilla this was a bit painful. The default "auto" mode now
behave has intended.
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 02 Oct 2018 12:55:29 +0530] rev 4155
evolve: use stack alias s# in `hg evolve` msgs
As repository grows revision number lose their usefulness. To
make it a little better than now, after this patch we will be
using short stack aliases introduced by the topic extension
(as displayed by `hg stack`).
These stack aliases s# will be used only when user has enabled
topic extension and his repo's current active topic is same as
the revs to be evolved.
For now, this patch doesn't cover `continue` case. I will discuss about this
with Pierre-Yves David. Maybe we have to store the info in evolvestate that "we
were using stack aliases".
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 01 Oct 2018 19:59:17 +0530] rev 4154
evolve: extract displayer to _solveone()
I extracted this displayer method to _solveone() so that it would be
easy to pass a different template to show evolve msgs. In upcoming
patches we will be using stacktemplate in some cases where we want
to include stack alias s# in evolve msgs.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 01 Oct 2018 13:20:30 +0530] rev 4153
utility: add a template alias that will be used in evolve msgs
This template use stack alias s# instead of rev number in messages
printed when we run `hg evolve`.
For example, this template's msgs will look like this:
move:[s3] add aaa
atop:[s2] add bbb
move:[s4] add ccc
I will be using this template in upcoming patches.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 01 Oct 2018 12:37:42 +0530] rev 4152
topic: add topicidx template keyword
This keyword will be useful where we want to see the index of
the changeset in the stack when we run `hg stack`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 Oct 2018 15:14:32 +0200] rev 4151
changelog: fix version number
Pulkit Goyal <pulkit@yandex-team.ru> [Tue, 02 Oct 2018 20:38:37 +0300] rev 4150
tests: update the test-topic.t with changes in core mercurial
Yuya stabilized the -T option and now it's in help by default.
CORE-TEST-OUTPUT-UPDATE: 0d703063d0c8
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 26 Sep 2018 19:17:04 +0200] rev 4149
pullbundle: fix style warning
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 26 Sep 2018 18:41:55 +0200] rev 4148
pullbundle: improves management of multiple branch while dealing with a head
There were still case where a range was issued too early.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 26 Sep 2018 18:42:44 +0200] rev 4147
pullbundle: deal with head in a predicable order
We use node order to make this repeatable from one clone to another. This is an
arbitrary pick.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 26 Sep 2018 17:17:11 +0200] rev 4146
pullbundle: deal with another special case introduced by arbitrary ranges
previous, we dealt with the case where the tippest subrange of the stable parent
was too long. Now, we need to deal with the case where it is too small.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 26 Sep 2018 13:15:40 +0200] rev 4145
pullbundle: compat with Mercurial 4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 19:35:33 +0200] rev 4144
pullbundle: add some information on the cached change
This also adds a way to skip "caching" smaller range in the debugcommand (not in
the extensions itself).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 18:41:51 +0200] rev 4143
pullbundle: add data about the cached bundle size and hit
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 18:23:46 +0200] rev 4142
pullbundle: add a command to generate cache hit statistic
This new command should help checking that the stable range produce reusable
bundle.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 13:44:32 +0200] rev 4141
pullbundle: point out the output flooding issue from core
Right now, we don't have a reliable progress report when using pullbundle.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 13:29:49 +0200] rev 4140
pullbundle: issue local branches in the right order
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 12:53:34 +0200] rev 4139
pullbundle: delay cache file opening
Otherwise we can end-up with a too many file open at the same time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 12:20:26 +0200] rev 4138
pullbundle: improve slicing of the lower part of range
The previous method could get confuse by merge and overslice. The new method
is better at using sticking on power of two boundaries.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Sep 2018 12:19:41 +0200] rev 4137
stablerange: fix slicing of arbitrary ranges
Pull bundle trigger slicing from range with arbitrary initial skip. We have to
adjust the current slicing to take this into account.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Sep 2018 01:16:00 +0200] rev 4136
pullbundle: attempt to save stablerange cache after each computation
Since we do not serve the full repository, we use more stablerange starting from
a random point. These are probably not loaded yet and should be cached.
This is best effort caching, if we can't save them we won't.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Sep 2018 00:51:39 +0200] rev 4135
pullbundle: add basic extension metadata
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Sep 2018 00:28:10 +0200] rev 4134
pullbundle: add a config option for the cache directory
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 22:58:11 +0200] rev 4133
pullbundle: add an output about the time spent slicing the set
This will be useful to monitor overall performance.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 22:45:23 +0200] rev 4132
pullbundle: add extension documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 23:46:49 +0200] rev 4131
pullbundle: add an extra test showing how cache are reusable
We issue a single final pull, most of its item are reusable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 00:08:02 +0200] rev 4130
pullbundle: add caching logic
We now only generate a bundle once (and store it to disk). If we need it again,
we use it directly from disk.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 23:41:08 +0200] rev 4129
pullbundle: slice pull into multiple ranges
We subdivide the set of missing revisions into multiple "range" using the "stable
range" data structure. This slicing aims at maximizing the capability of the
resulting ranges.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Sep 2018 23:53:23 +0200] rev 4128
pullbundle: initial commit
Right now, we do not do any slicing, but we install the wrapping and the tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Sep 2018 20:02:03 +0200] rev 4127
test: update output to make streamv2 capabilities
CORE-TEST-OUTPUT-UPDATE: 4bd6e444c76f
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Sep 2018 18:33:55 +0200] rev 4126
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Sep 2018 13:09:06 +0200] rev 4125
topic: respect preexisting 'topic' value on workingcommitctx
Mercurial's core changeset: 6c8ceebce309 revealed an issue. If the creator of a
workingcommitctx explicitly assigned a 'topic', it was silently overridden by
the current active on. This break import of patch with topic information.
We now respect preexisting topic information.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Sep 2018 19:49:28 +0200] rev 4124
topic: add a compatibility to access transaction's names
The attribute was made private in 4024c363cd33.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Sep 2018 17:50:28 +0200] rev 4123
topic: add a compatibility to access transaction's validator
The attribute was made private in ebbba3ba3f66.
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 21 Sep 2018 15:52:53 +0530] rev 4122
evovle: remove redundancy in evolve output
Copying the discription of this redundancy issue given by Pierre Yves David:
When running `hg evolve` to stabilize orphan changeset output about the
currently stabilized changeset is issued. For example:
$ hg evolve
move:[3] a3
atop:[4] a2
working directory is now at 7c5649f73d11
This output can become quite repetitive when orphan are stabilized atop
each other. For example:
$ hg evolve --all
move:[8] dansk 2!
atop:[10] dansk!
merging main-file-1
move:[9] dansk 3!
atop:[11] dansk 2!
In this case it would be smoother to issue:
$ hg evolve --all
move:[8] dansk 2!
atop:[10] dansk!
merging main-file-1
move:[9] dansk 3!
Since we are moving "dansk 3!" atop the changeset we just stabilized.
When adding this be careful that we still want to issue the "atop" message
in various cases:
1. first changesets in a stack
2. when the orphan is not stabilized atop previous one
3. when using hg evolve --continue to resume an evolution
So, I have made the changes which also respect above listed three points.
And changes in tests/test-evovle*.t reflecting the changed behavior.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Sep 2018 11:58:42 +0200] rev 4121
amend: handle crash before transaction initialization with --patch
The `tr` object can be None.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Sep 2018 02:14:10 +0200] rev 4120
branching: merge with stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 17 Sep 2018 09:25:28 -0700] rev 4119
obsdiscovery: adopt to calling convention change
Upstream commits 71d83b315778 and abce899c985f changed the calling
convention of setdiscovery._takefullsample().
We inspect the signature of the function before calling it so
we can pass the proper arguments.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 12:21:32 +0200] rev 4118
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 12:18:22 +0200] rev 4117
packaging: mark as development version
This avoid confusion when people install version from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 12:17:21 +0200] rev 4116
Added tag 8.2.1 for changeset c6362c4abd69
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 12:17:06 +0200] rev 4115
packagin: prepare release 8.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:51:44 +0200] rev 4114
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:51:43 +0200] rev 4113
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:51:42 +0200] rev 4112
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:51:40 +0200] rev 4111
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:47:57 +0200] rev 4110
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Sep 2018 10:39:01 +0200] rev 4109
caches: issue both debug and blackbox log message
This increase the odd someone looking for issue will find them.
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Sep 2018 00:04:17 +0800] rev 4108
cmdrewrite: rename variable and move it closer to where it is used
Renaming to satisfy pep8-naming linter plugin, which complained on this
variable because all-uppercase names are reserved for constants, and constants
need to be module-level. This variable is not a good choice for moving up to
the module level because it's used only in one place.
Additionally, let's have it closer to the place it's actually used to
potentially avoid an extra call to _() function (however cheap it may be).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 19:46:05 +0200] rev 4107
changelog: mention the cache improvements
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 17:09:44 +0200] rev 4106
obshashrangecache: be more paranoid in the errors we catch
It seems like there error were already covered. Better safe than sorry.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 17:09:34 +0200] rev 4105
stablerangecache: be more paranoid in the errors we catch
It seems like there error were already covered. Better safe than sorry.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 19:22:03 +0200] rev 4104
stablesortcache: update the variable tracking on-disk state after write
Since we updated the on disk content, we should update that value.
In practice the object will likely be discarded after the write, but there is
nothing wrong in being more correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 19:22:39 +0200] rev 4103
stablesortcache: ignore permission and OS errors when writing
This cache is related to the obshashrange one and we update it lazily by
default.
This can be an issue when pulling locally from a read only repository that was
not configured for a more aggressive cache warming. The raised permission error
was uncaught and could crash the whole process. Errors during cache update
should not block Mercurial operations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 19:09:48 +0200] rev 4102
firstmergecache: update the variable tracking on-disk state after write
Since we updated the on disk content, we should update that value.
In practice the object will likely be discarded after the write, but there is
nothing wrong in being more correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 17:08:18 +0200] rev 4101
firstmergecache: ignore permission and OS errors when writing
This cache is related to the obshashrange one and we update it lazily by
default.
This can be an issue when pulling locally from a read only repository that was
not configured for a more aggressive cache warming. The raised permission error
was uncaught and could crash the whole process. Errors during cache update
should not block Mercurial operations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 18:56:04 +0200] rev 4100
depthcache: update the variable tracking on disk state after write
Since we updated the on disk content, we should update that value.
In practice the object will likely be discarded after the write, but there is
nothing wrong in being more correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 17:08:05 +0200] rev 4099
depthcache: ignore permission and OS errors when writing
This cache is related to the obshashrange one and we update it lazily by
default.
This can be an issue when pulling locally from a read only repository that was
not configured for a more aggressive cache warming. The raised permission error
was uncaught and could crash the whole process. Errors during Cache update
should not block Mercurial operations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 18:20:50 +0200] rev 4098
obscache: update the variable tracking on disk state after write
Since we updated the on disk content, we should update that value.
In practice the object will likely be discarded after the write, but there is
nothing wrong in being more correct.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 18:21:07 +0200] rev 4097
obscache: ignore permission and OS errors when writing
In practice we always update this cache along side a new transaction, with lock
taken so permission issues should not happens. However, staying on the safe side
is better. Errors during Cache update should not block Mercurial operations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 13 Sep 2018 02:49:58 +0200] rev 4096
obshashrange: force reset if many changes
If there is many new markers (or the markers affect many changesets) resetting
affected changeset can get slow. A common case for that is then changeset and
markers are added in different transaction, (eg: when using clone bundle).
When we detect such case, we reset the obshashrange cache, rewarming it should
be faster.
Here many is arbitrarily set to 10 000. The number might get adjusted.
Anton Shestakov <av6@dwimlabs.net> [Tue, 04 Sep 2018 19:30:19 +0800] rev 4095
topic: refactor revset.py slightly
Checking both kind == 'literal' and topic.startswith('literal:') seems to be
redundant, because of how stringutil.stringmatcher() works.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Sep 2018 12:02:17 +0200] rev 4094
test: update output to match new `hg verify` reports
CORE-TEST-OUTPUT-UPDATE: f1186c292d03
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Sep 2018 11:53:41 +0200] rev 4093
test: update output to match new "pull" phase report
CORE-TEST-OUTPUT-UPDATE: 89630d0b3e23
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Sep 2018 10:37:14 +0200] rev 4092
test: adapt to change in revert messages order
CORE-TEST-OUTPUT-UPDATE: cb70501d8b71
Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Sep 2018 11:08:47 -0700] rev 4091
rewind: fix help text (mostly grammar, but also s/precursor/predecessor)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 06 Sep 2018 16:14:24 -0700] rev 4090
evolve: fix use of "'%d' % ctx"
ctx has not been convertible to int since Mercurial commit
38f480502043 (context: remove basectx.__int__ (API), 2018-02-24). I
decided to use "%s" instead to match other similar messages in
evolvecmd.py. I also added a space to match the other messages.
Gerald Squelart <gsquelart@mozilla.com> [Thu, 06 Sep 2018 23:24:26 -0400] rev 4089
stablerange: only issue the message once
There is a flag to prevent issuing the long load message multiple time. However,
it was never set. This is now fixed
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Sep 2018 00:06:00 -0400] rev 4088
changelog: fix version number
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 23:30:28 +0200] rev 4087
branching: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 23:29:15 +0200] rev 4086
packaing: mark as development version
This help avoid confusion when installing in progress work.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 23:27:54 +0200] rev 4085
Added tag 8.2.0 for changeset 8d8f08245f97
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 23:21:39 +0200] rev 4084
branching: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 23:17:50 +0200] rev 4083
packaging: prepare new release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:59:20 +0200] rev 4082
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:59:19 +0200] rev 4081
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:59:18 +0200] rev 4080
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:59:16 +0200] rev 4079
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:47:18 +0200] rev 4078
topic: rework topic templatekw declaration to be 4.5 compatible again
Mercurial prior to 4.5 does not have a requires keyword, so we need a
compatibility layer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:09:26 +0200] rev 4077
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:06:12 +0200] rev 4076
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 22:05:12 +0200] rev 4075
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 21:59:24 +0200] rev 4074
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 21:08:33 +0200] rev 4073
branching: merge the two stable heads
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 17:21:16 +0200] rev 4072
test-output: backout test output update in 8fcee1e65e29
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 17:20:28 +0200] rev 4071
test-output: backout test output update in 503ae2689df8
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 20:54:17 +0200] rev 4070
topic: update the changelog with the 's#' alias change
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 20:53:12 +0200] rev 4069
topic: update other occurrence of 't0' is 's0' in the code
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 17:28:50 +0200] rev 4068
topic: mention t0 in topic documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 17:07:36 +0200] rev 4067
stack: display 's#' instead of 't#' and 'b#'
If we want people to use it, we should display it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 16:41:32 +0200] rev 4066
stack: clarify s# error message in case of branch
A branch might have a lots of changeset, with all of them public.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 03 Sep 2018 16:29:02 +0200] rev 4065
alias: allow reference through 's#'
We keep the 't#' option, but we hope to be able to deprecate it at some point.
We move to 's#' because it refers to `stack` a more generic concept. than topic.
In addition, this allows to phase out 'b#' that collide with normal hex-node.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 01 Sep 2018 14:00:41 +0200] rev 4064
topic-revset: get the list of revset through the official localrepo API
This is simpler and faster. In addition we tighter the logic to be used in case
of empty topic. We do not need to fall back to revision search.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 01 Sep 2018 21:47:00 +0200] rev 4063
topic-revset: strictly read string
Making a clear distinction between string and symbol passed to topic is
important when it comes to empty topic. Filtering an empty topic name is
harmless. Searching a non existent revision is not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 01 Sep 2018 21:45:15 +0200] rev 4062
test: search for empty topic as a string
The reduce the ambiguity in the test to help with the next change.
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Aug 2018 21:05:17 +0800] rev 4061
topic: handle ambiguous arguments to topic() revset
These arguments can be interpreted as either string or a revset. The decision
is made based on existence of topic with such a name. This matches the behavior
of branch() revset.
The code needs to know all topics that ever existed in the repo, because some
commands report "disappearance" of topics after certain operations, using this
revset (e.g. via stack.stack or repo.revs).
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Aug 2018 20:21:17 +0800] rev 4060
topic: handle revsets passed to topic() revset
This handles cases when the argument can't be interpreted as a string at all.
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Aug 2018 19:13:56 +0800] rev 4059
topic: handle string argument to topic() revset earlier
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Aug 2018 18:02:41 +0800] rev 4058
topic: prepare to handle non-string arguments to topic() revset
Anton Shestakov <av6@dwimlabs.net> [Thu, 30 Aug 2018 17:42:11 +0800] rev 4057
topic: return result early if there are no arguments to topic() revset
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 00:31:01 +0200] rev 4056
obshashrange: enable by default
We have been testing this in various placed and specific stress test have been
performed. It is time to enable this by default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Aug 2018 22:50:26 +0200] rev 4055
obshashrange: issue a warning if the cache takes a long time to load
The -current- implementation of the obshashrange cache can get slow. This will
be fixed eventually, in the mean time we inform people on large repository of
what have been going on.
Since we are about to enable obshashrange by default, we need to make sure
nobody will have an (unexplained) bad surprise.
Boris Feld <boris.feld@octobus.net> [Fri, 31 Aug 2018 14:26:37 +0200] rev 4054
pick: fix last references of grab in code
Grab was still referenced on comments and variable names.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:21:19 +0200] rev 4053
pick: replace `hg grab` invocation in test with `hg pick`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:20:21 +0200] rev 4052
pick: replace "grabstate" with "pickstate"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:19:13 +0200] rev 4051
pick: use "pick" as operation name in obsolescence markers
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 12:45:56 +0200] rev 4050
pick: use "pick" instead of "grab" for various internal API
This should not much user visible impact but this is cleaner.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:13:11 +0200] rev 4049
pick: update command output to mention pick instead of grab
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:11:04 +0200] rev 4048
pick: rename the grab command to pick
Grab is ambiguous with "graft", "pick" match the associated verb in histedit.
The "grab" name is preserved as an alias for now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 31 Aug 2018 09:08:13 +0200] rev 4047
grab: prefix function with 'cmd' as for the other command in the extension
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Aug 2018 19:40:18 +0200] rev 4046
readme: document the purpose of the evolve extension
Another place for the explanation to live.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Aug 2018 19:50:39 +0200] rev 4045
prune: replace --biject with --pair
People have been complaining about `--biject` being to obscure for a while.
A recent discussion with Pulkit Goyal and Dan Villiom Podlaski Christiansen
produce some new concrete proposal that we liked. We eventually settle on using
`--pair`. The `--biject` flag will be kept as an alias for a while.
Anton Shestakov <av6@dwimlabs.net> [Tue, 28 Aug 2018 21:28:41 +0800] rev 4044
topic: check that repo.currenttopic is set before using it as an argument
repo.currenttopic can be an empty string, which means there's no current topic
set. This fact can be used to short-circuit some checks.
Also, this avoids passing an empty string as an argument to topic() revset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Aug 2018 18:59:07 +0200] rev 4043
test: update output after merge message change
CORE-TEST-OUTPUT-UPDATE: f785073f792c
CORE-TEST-OUTPUT-UPDATE: a3fd84f4fb38
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Aug 2018 17:32:47 +0200] rev 4042
readme: document the tag we use on output change
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Aug 2018 17:23:25 +0200] rev 4041
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Aug 2018 10:46:37 +0200] rev 4040
packaging: fix debian version numbers
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Aug 2018 10:46:37 +0200] rev 4039
packaging: fix debian version numbers
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 21:53:42 +0200] rev 4038
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 21:53:07 +0200] rev 4037
packaging: mark in progress work as development version
This avoid confusion when people install development version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 20:30:57 +0200] rev 4036
Added tag 8.1.2 for changeset f1cde4c97806
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 19:59:20 +0200] rev 4035
packagin: prepare version 8.1.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 20:00:46 +0200] rev 4034
obshashrange: force obshashrange invalidation by bumping schema
The fix in 8.1.1 deserve recomputing the obs hash range cache. So we bump its
schema version to declare the older cache invalid. The other caches, including
the expensive stablerange are unaffected.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 11:25:32 +0200] rev 4033
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 11:24:52 +0200] rev 4032
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 11:24:50 +0200] rev 4031
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 11:24:49 +0200] rev 4030
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 11:18:58 +0200] rev 4029
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 10:24:18 +0200] rev 4028
changelog: mention the database robutness fix in the changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:47 +0200] rev 4027
sqlcache: also catch malformed database error
This is apparently another way for sqlite to fail at concurrency.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:41 +0200] rev 4026
stablerange: rework saving logic to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:12:49 +0200] rev 4025
obshashrange: rework saving branching to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:40:32 +0200] rev 4024
sqlcache: protect read query too
Some error (like locked database) can even happens when doing readonly
operation. So we protect them too.
At that point, it seems that pysqlite3 is not the right tool for this job.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:33:09 +0200] rev 4023
sqlite: fast path when nothing to save
If we have no new data to save, we should try to do anything. Doing something
concurrently is hard enough. If we can avoid doing it at all that would be
great.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:27:04 +0200] rev 4022
sqlcache: initialize meta table last
It turns out that pysqlite commit after each table creation. This commit is an
hopeless attemps to make the caches more concurrent friendly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:20:15 +0200] rev 4021
obshashrange: always check in base cachekey against the recorded one
Ignoring the check in the none case is just disaster waiting to happens.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:16:12 +0200] rev 4020
stablerangecache: fix output in the drifted case
The node were not hex, and the field had different order in the pair. This is
now fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:35:51 +0200] rev 4019
sqlcache: also ignore integrity error
integrity error can happens when multiple client tries to warm similar cache.
Given we leave multiple hole in the cache that can be warmed by anyone, this is
harder to avoid that we would like. We simply catch the error in this case.
Someone will warm the missing entry later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:28:19 +0200] rev 4018
sqlcache: cache OperationError when saving
This is a cache, so we should not crash when trying to operate on it.
OperationError can happens when the database is seen as readonly or locked.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:18:06 +0200] rev 4017
sqlcache: passe better connection option
These new options should help with handling transaction consistency and database
access on high load.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Aug 2018 20:55:26 +0200] rev 4016
contrib: introduce a small script to stress tests obsolescence exchange
Tester have been reporting some error that seems to originate from concurrent
access/update to the cache. This script will be useful to reproduce these
situations locally.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 28 Aug 2018 10:24:18 +0200] rev 4015
changelog: mention the database robutness fix in the changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:47 +0200] rev 4014
sqlcache: also catch malformed database error
This is apparently another way for sqlite to fail at concurrency.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:40:41 +0200] rev 4013
stablerange: rework saving logic to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 12:12:49 +0200] rev 4012
obshashrange: rework saving branching to be clearer and safer
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:40:32 +0200] rev 4011
sqlcache: protect read query too
Some error (like locked database) can even happens when doing readonly
operation. So we protect them too.
At that point, it seems that pysqlite3 is not the right tool for this job.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:33:09 +0200] rev 4010
sqlite: fast path when nothing to save
If we have no new data to save, we should try to do anything. Doing something
concurrently is hard enough. If we can avoid doing it at all that would be
great.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 11:27:04 +0200] rev 4009
sqlcache: initialize meta table last
It turns out that pysqlite commit after each table creation. This commit is an
hopeless attemps to make the caches more concurrent friendly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:20:15 +0200] rev 4008
obshashrange: always check in base cachekey against the recorded one
Ignoring the check in the none case is just disaster waiting to happens.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 10:16:12 +0200] rev 4007
stablerangecache: fix output in the drifted case
The node were not hex, and the field had different order in the pair. This is
now fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:35:51 +0200] rev 4006
sqlcache: also ignore integrity error
integrity error can happens when multiple client tries to warm similar cache.
Given we leave multiple hole in the cache that can be warmed by anyone, this is
harder to avoid that we would like. We simply catch the error in this case.
Someone will warm the missing entry later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:28:19 +0200] rev 4005
sqlcache: cache OperationError when saving
This is a cache, so we should not crash when trying to operate on it.
OperationError can happens when the database is seen as readonly or locked.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 Aug 2018 00:18:06 +0200] rev 4004
sqlcache: passe better connection option
These new options should help with handling transaction consistency and database
access on high load.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Aug 2018 20:55:26 +0200] rev 4003
contrib: introduce a small script to stress tests obsolescence exchange
Tester have been reporting some error that seems to originate from concurrent
access/update to the cache. This script will be useful to reproduce these
situations locally.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 14:09:33 +0200] rev 4002
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:59:27 +0200] rev 4001
test: adjust glob in previous changeset
I forgot to glob the time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:32:02 +0200] rev 4000
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:30:54 +0200] rev 3999
packaging: mark as development version
This avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:29:32 +0200] rev 3998
Added tag 8.1.1 for changeset e7abf863e113
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 15:29:13 +0200] rev 3997
packaging: prepare release 8.1.1
Topic is untouched so we keep the previous version number.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 14:23:47 +0200] rev 3996
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:26:35 +0200] rev 3995
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:25:29 +0200] rev 3994
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:25:28 +0200] rev 3993
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:18:52 +0200] rev 3992
changelog: add a line about improved prune documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 13:17:27 +0200] rev 3991
changelog: reorder content
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:13:28 +0200] rev 3990
prune: more human-friendly documentation
The previous help string generally had a highly technical language. I've tried
my best to address that.
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:14:04 +0200] rev 3989
prune: improve help first line
The previous help string for prune didn't mention successors in the
first line.
Note: Pierre-Yves David changed the original "hidden" to "obsolete" as it is better concept to put forward. (a bit more specific and with more consequence than just "hidden").
We need a good `hg help obsolete/obsolescence` result. We'll try to get this in the next version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:21:05 +0200] rev 3988
prune: try to clarify the "multi" revisions case
I hope this highlight the use case for all three options.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:21:59 +0200] rev 3987
prune: move help about biject after the one about split and fold
The --biject flag seems a less common use case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 12:18:11 +0200] rev 3986
prune: no longer consider dropping --biject
Field testing show it save people one wrong call often enough that it is worth
keeping.
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 12:13:01 +0200] rev 3985
prune: more human-friendly documentation for --biject
Dan Villiom Podlaski Christiansen <dan@magenta.dk> [Tue, 21 Aug 2018 11:56:49 +0200] rev 3984
prune: use ``-s/--succ`` in documentation
Extracted by Pierre-Yves David
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 04:08:38 +0200] rev 3983
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 21 Aug 2018 04:05:12 +0200] rev 3982
compat: import the module dagutil module in evolve
Discovery code is core have been rewritten to no longer depends on dagutil and
the module have been removed.
This break evolve's obsmarker discovery (older version of the discovery use the
same concept).. A quick work around is to import the dagutil module in evolve
and use that for now.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 20 Aug 2018 12:21:39 +0300] rev 3981
evolve: delete evolvestate after aborting interrupted `next --evolve`
We didn't use to delete the evolvestate after aborting an interrupted `next
--evolve`. This patch makes sure we do that. The test changes demonstrate the
fix and we add a CHANGELOG entry about the fix.
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 20 Aug 2018 12:19:05 +0300] rev 3980
tests: check that we delete evolvestate correctly after abort/stop
This patch adds test to check whether we delete the evolvestate correctly after
aborting or stopping an interrupted evolve which is caused because of `next
--evolve`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 20 Aug 2018 23:04:37 +0200] rev 3979
changelog: update with issue5927 fix
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 21:03:45 +0530] rev 3978
evolve: set the second parent if we get conflicts while evolving
This patch makes sure we set the second parent correctly if we run into
conflicts while evolving. Also, we need to make sure to reset to one parent
before committing.
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 21:01:14 +0530] rev 3977
evolvecmd: import mercurial.node module as nodemod
We use node as a variable name at few places and the conflicts with variable
name are not good. Moreover this practice is followed in core mercurial also.
Pulkit Goyal <pulkit@yandex-team.ru> [Sat, 18 Aug 2018 20:24:41 +0530] rev 3976
tests: demonstrate the interrupted evolve does not set p2
This patch adds a test to demonstrate issue5927 which is about evolving not
setting p2 correctly in interruption.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:32:52 +0200] rev 3975
cleanup: remove unused import
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:03:19 +0200] rev 3974
cleanup: remove old comment that lost all meaning
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:02:52 +0200] rev 3973
template: remove compatibility layer for `showobsolete`
The keyword exist in core since 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:06:30 +0200] rev 3972
exthelper: drop compatibility layer for `command`
We dropped support for 4.2.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:05:00 +0200] rev 3971
topic: drop compat layer for `command`
We dropped support for 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 01:00:08 +0200] rev 3970
legacy: drop compat layer for "command"
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 00:59:44 +0200] rev 3969
drophack: drop compat layer for "command"
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 00:53:12 +0200] rev 3968
compat: drop compatibility layer for updatecaches
The `repo.updatecaches` method is support since Mercurial 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 18 Aug 2018 00:48:05 +0200] rev 3967
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 16:26:44 +0200] rev 3966
obshashrange: force saving of stablesort and firstmerge cache
For some reason the check in repo is not working for stable sort. We also force
firstmerge to be saved as test show it was missing.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 13:31:35 +0200] rev 3965
test: add a test about cache warming
This test reveal that multiple cache are not saved to disk after discovery
(firstmerge, stablesort).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 12:56:13 +0200] rev 3964
stablerange: save stablesort cache alongside the stablerange one
This one does not introduce inconsistency but helps performance.
G: changed hgext3rd/evolve/stablerangecache.py
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 12:07:55 +0200] rev 3963
obshashrange: always save stable range cache alongside the obshashrange one
If the on disk date cover different area, the invalidation of affected range
will misbehave.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 12:06:43 +0200] rev 3962
obshashrange: clear in-memory cache alongside the sqlite one
Clearing on disk data in nice, but we also need to remove in memory one or we'll
get incorrect results.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 01:07:37 +0200] rev 3961
branching: merge with fixes on stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 01:04:49 +0200] rev 3960
changelog: summarize the recent improvement
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 00:27:10 +0200] rev 3959
obshashrange: re-enabled more selective pruning of affected range
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Aug 2018 00:23:20 +0200] rev 3958
obshashrange: fix computation of affected ranges
The computation of impacted nodes and associated revs is fully reworked. In
addition,we introduce multiple new tests covering cases that were previous
wrongly handled.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 22:45:36 +0200] rev 3957
obshashrange: add more validation output to tests
We are about to update the logic and add more tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 21:12:57 +0200] rev 3956
obshashrange: correctly detect changeset directly affected by prune
Before this changesets, parent of standard obsmarkers were wrongly considered
affected and pruned changeset were wrongly not considered affected.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 21:18:18 +0200] rev 3955
obshashrange: do not search for affected ranges above the highest we have
It is a fast way to know we don't have an affected range for an affected
revision.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 20:49:55 +0200] rev 3954
obshashrange: do not search for affected stable range cache is unavailable
Before this changeset we where resetting in all cases, and then looking for
affected ranges. In addition is the stable range were not available, the
functions silently returned no ranges affected.
Now, do one or the other depending of the availability of the stable range
cache. In practice we always do a broad reset because the code detecting
affected changeset is currently buggy.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 20:22:19 +0200] rev 3953
stablerange: build closure a bit less inefficiently
The new way make me a bit less sad than the old one.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 22:19:19 +0200] rev 3952
discovery: make sure repository wrapping happens in the right order
Otherwise we may end up in situation were cache are not warmed in the right
order, crashing.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 11:58:07 +0200] rev 3951
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 11:54:30 +0200] rev 3950
changelog: add an entry about the next --evolve fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 11:53:49 +0200] rev 3949
changelog: update 8.1.0 release date
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 11:44:32 +0200] rev 3948
next: fix topic constraint in the --evolve case
We were using the wrong variable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Aug 2018 11:43:53 +0200] rev 3947
next: use set for membership testing
There are no reason to use a list here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Aug 2018 19:22:54 +0200] rev 3946
test: adapt to core output change on unknown command
CORE-TEST-OUTPUT-UPDATE: 5199c5b6fd29
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Aug 2018 19:15:35 +0200] rev 3945
compat: use new style template keyword declaration
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Aug 2018 18:32:30 +0200] rev 3944
test: fix previous changeset output
The previous changeset got published prematurely.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Aug 2018 15:24:22 +0200] rev 3943
obshashrange: add a test for `hg debugupdatecache`
It seem to be properly filling the caches.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Aug 2018 18:21:23 +0200] rev 3942
branching: merge with stable
Yuya Nishihara <yuya@tcha.org> [Wed, 08 Aug 2018 20:21:34 +0900] rev 3941
templatekw: do not override in-core {obsolete} keyword
The extension version uses old API, which will be deprecated in Mercurial 4.8.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 13 Aug 2018 12:55:10 +0200] rev 3940
packaging: mark version as development version
This avoid confusion when installing non-tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 05:43:54 +0200] rev 3939
Added tag 8.1.0 for changeset 2c5d79c6459c
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 05:41:08 +0200] rev 3938
packaging: prepare version
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 01:16:51 +0200] rev 3937
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 00:22:50 +0200] rev 3936
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 00:19:47 +0200] rev 3935
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 00:19:46 +0200] rev 3934
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Aug 2018 00:19:45 +0200] rev 3933
test-compat: merge stable into mercurial-4.6
Boris Feld <boris.feld@octobus.net> [Fri, 03 Aug 2018 00:52:10 +0200] rev 3932
compat: fix obslog compatiblity with 4.3
Due to the way of how successor sets are retrieved in new Mercurial version,
retrieving it again in 4.3 way would be a performance hit and complexify the
code too much.
Don't retrieve markers of successor sets which makes obslog filtered output
more limited in 4.3.
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 02 Aug 2018 16:54:40 +0300] rev 3931
compat: add a fixed version of mergecopies for hg<=4.3
In hg<=4.3, copies._fullcopytracing() does not exist and we have to wrap
copies.mergecopies() to fix the AssertionError coming from core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 02:47:44 +0200] rev 3930
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 02:42:15 +0200] rev 3929
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 02:42:14 +0200] rev 3928
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 04:11:54 +0200] rev 3927
compat: make compatible call to ui.edit for hg <= 4.3
This is similar to what is already happening elsewhere.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 03:08:52 +0200] rev 3926
compat: ignore extra status feature for hg <= 4.3
The feature does not exist in 4.3 and below.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 02:41:33 +0200] rev 3925
format: fix indentation level
Previous change got pushed without the fix by mistake.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 01:58:44 +0200] rev 3924
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 01:57:13 +0200] rev 3923
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 02:15:48 +0200] rev 3922
compat: disable empty topic warning on `hg phases` for hg <=4.5
This is annoying to support for lower version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 01:31:02 +0200] rev 3921
compat: restore compatibility with Mercurial <= 4.5
The __init__ arguments changed a lot in 4.6 and 4.7, lets do be as transparent
as possible
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Aug 2018 01:53:01 +0200] rev 3920
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 12:54:46 +0200] rev 3919
test-compat: merge stable into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Aug 2018 23:52:10 +0200] rev 3918
branching: merge stable back into default
Andrew Fischer <andrew@apastron.co> [Tue, 31 Jul 2018 07:38:37 -0500] rev 3917
compat: improve detection of Mercurial 4.6
fixed case where AttributeError can be thrown when importing wireproto
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 13:06:20 +0200] rev 3916
cleanup: use NotImplementedError instead of NotImplemented
Caught by pyflakes.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Jul 2018 00:52:14 +0530] rev 3915
CHANGELOG: add some entries and remove duplicated entries
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 12:52:06 +0200] rev 3914
branching: merge default into stable
The stable branch of Mercurial core now contains Mercurial 4.7 so evolve branch
policy requires this merge. The @ bookmark is in the right location, so people
doing clone will get to the latest release.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 12:07:39 +0200] rev 3913
branching: merge with the other head
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 11:48:15 +0200] rev 3912
test-compat: backed out changeset 8fe8152ff071
These output change were for 4.7 only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 11:47:20 +0200] rev 3911
test-compat: backed out changeset 41fc764bf28c
These output change are for mercurial-4.7 only
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 11:46:30 +0200] rev 3910
test-compat: backed out changeset dda5b2134b32
These change were for Mercurial 4.7 only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 11:45:01 +0200] rev 3909
test-compat: backout change to 1e103c7f7663
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 11:25:57 +0200] rev 3908
compat: use older API for older version
This API changed in 4.7, we need to adjust.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 09:28:19 +0200] rev 3907
branching: create mercurial-4.6 branch for updated test output
This branch will be used to check for 4.6 compatibility.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 16:12:01 -0700] rev 3906
builddependencies: extract function for getting successors
The code no longer makes a difference between single- and
mult-successor cases and just needs a set (or generator, really) of
successors to iterate over. Let's extract that into a function.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 16:23:25 -0700] rev 3905
builddependencies: share code between single- and multi-successor cases
The two cases now have more similar structure ("if succ in revs:
dependencies[r].add(succ)"), so let's share the code so it doesn't
start drifting apart again.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 14:33:48 -0700] rev 3904
builddependencies: build inverse dict from forward dict
It's error-prone to keep "dependencies" and "rdependencies" in sync
(we don't do it correctly when there are multiple successors or a
node). It's easier to just create "rependencies" from "dependencies"
after it's complete.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 14:21:49 -0700] rev 3903
builddependencies: remove a use of defaultdict
I don't see much reason to make "rdependencies" be a defaultdict when
"dependencies" is not. It's easy to initialize each entry ourselves.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 31 Jul 2018 09:03:35 +0200] rev 3902
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 15:30:37 -0700] rev 3901
builddependencies: don't remove found deps when divergence found (issue5946)
It seems obviously wrong to not keep any dependencies for a revision
that we had already found (for p1) if we run into divergence (from
p2). It also happens to fix issue5946 :)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 14:47:16 -0700] rev 3900
builddependencies: don't add dependency on revision outside input set
This was already handled in the single-successor case, but had been
missed in the multiple-successors case.
Note that there seems to be a copy of builddependencies() in the
topics extension. I don't use topics more than I have to, so I'll let
someone else fix that code.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 15:16:25 -0700] rev 3899
builddependencies: consider all divergent successors
We were only considering one. In test-evolve-abort-conentdiv.t:165,
the input revs were {5, 8} and dependency dict was {8: set([]), 5:
set([10])}, which is a little weird (10 is not in the input set). It
still worked because the callers used it (they seemed to only care if
there were *any* dependencies).
This patch fixes the issue by considering all successors. That means
the dependency dict will be {8: set([]), 5: set([8, 10])} after this
patch. The next patch will remove the 10 from that set.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 25 Jul 2018 14:00:49 -0700] rev 3898
tests: add test for issue5946
The test case is a copy of the one for 5833. The only difference is
that the merge parents are recorded in the opposite order (and that
the test is truncated because it fails).
Boris Feld <boris.feld@octobus.net> [Fri, 25 May 2018 17:17:56 +0200] rev 3897
obslog: check filtered output with folded changesets
Boris Feld <boris.feld@octobus.net> [Fri, 25 May 2018 16:50:04 +0200] rev 3896
obslog: check filtered output with splitted changesets
Boris Feld <boris.feld@octobus.net> [Fri, 25 May 2018 11:52:48 +0200] rev 3895
obslog: check filtered output with pruned changesets
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 16:48:35 +0200] rev 3894
obslog: check filtered output with amended changesets
Boris Feld <boris.feld@octobus.net> [Fri, 25 May 2018 11:48:19 +0200] rev 3893
tests: add a content-divergent obshistory test
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:44:05 +0200] rev 3892
tests: extract the obshistory amend then fold test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:42:56 +0200] rev 3891
tests: extract the content-divergence test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:41:57 +0200] rev 3890
tests: extract the obshistory fold test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:40:56 +0200] rev 3889
tests: extract the obshistory lots of split test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:37:51 +0200] rev 3888
tests: extract the obshistory split test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 17:37:40 +0200] rev 3887
tests: extract the obshistory prune test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 15:40:29 +0200] rev 3886
tests: extract the obshistory amend test case into a separate file
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 15:35:54 +0200] rev 3885
tests: extract obshistory setup in a separate file
We are gonna soon explode the obshistory test file into several, extract the
setup to reuse it as much as possible.
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 12:07:24 +0200] rev 3884
obslog: add a new flag to filter out non-local nodes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Jul 2018 18:28:44 +0200] rev 3883
compat: drop compatibility hack for mercurial <4.3
We no longer support version prior 4.3.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 21 Jul 2018 02:42:29 +0530] rev 3882
compat: temporarily move copies fix to compat.py
This patch moves a fixed version of copies._fullcopytracing() to compat.py as
this was not fixed in core before release and also we need to do this anyway for
the older versions of mercurial.
This fix is that when base changeset is not ancestor of any of the merging
commits, we don't throw an error.
The phabricator differential which will fix this in core is
https://phab.mercurial-scm.org/D3896.
This fixes the traceback we get in previous changeset while relocating one of
the content-divergent changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 18:18:30 +0530] rev 3881
evolve: continue conflicted relocation content-divergence
This patch adds logic to continue an conflicted content-divergence resolution
which was interrupted while relocating one of the divergent commits.
The tests shows the there is some mishandling of copies internally which will be
fixed in next patch.
Anton Shestakov <av6@dwimlabs.net> [Wed, 18 Jul 2018 18:17:16 +0800] rev 3880
topic: use self instead of repo in topicrepo methods
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Jul 2018 22:16:17 +0530] rev 3879
evolvecmd: introduce fn to be wrapped by extensions resolving content-div
The function added will be used by extension by wrapping it and adding logic to
merge data introduced by them. For example: topic extension can wrap this
function and add logic to merge topic names.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Jul 2018 21:18:33 +0530] rev 3878
evolvecmd: move remaining logic to merge commit desc to existing utility fn
This was a bit awful because we had a utility function and still we did some of
merging outside of that fn. So let's move the remaining parts there.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Jul 2018 22:52:33 +0530] rev 3877
amend: allow aborting an `amend --patch` by saving an empty file (issue5925)
This patch fixes issue5925 by allow aborting a `hg amend --patch` call by saving
an empty patch file. This is similar to aborting of `hg amend` when commit
message is empty.
Test changes demonstrate the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Jul 2018 22:50:16 +0530] rev 3876
tests: add a test to demonstrate issue5925
The issue will be fixed in next patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 09 Jul 2018 01:18:40 +0200] rev 3875
test: fix possible output change from 4.7
Change in debug timing can display these extra messages.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 06 Jul 2018 11:36:24 -0700] rev 3874
state: add the get() method that evolvecmd:1836 expects
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 03:56:54 +0200] rev 3873
rewing: prevent rewind in case of uncommitted changes
rewind can update, which means merge and troubles. We might relax this
limitation in the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 03:46:46 +0200] rev 3872
rewind: default to rewinding the current stack
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 03:10:19 +0200] rev 3871
rewing: add the ability to rewind "from" revisions
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 03:29:34 +0200] rev 3870
evolve: exclude "identical" precursors from the precursors set
I'm not sure it is the right thing to do, but it simply thing a lot for now.
Otherwise, using 'precursors' to find rewind direction become too complex.
This is going to give problematic result in case of prune. Since there are no
other precursors to follow.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 03:07:53 +0200] rev 3869
rewind: move revision selection into its own function
This will help making the logic more advanced.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 02:32:29 +0200] rev 3868
rewind: automatically rewind entire stack
We now rewind the full stack, avoiding creating orphans. A `--exact` flag is
added to force rewinding only the explicitly specified changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 02:22:28 +0200] rev 3867
rewind: add a test about rewinding top of stack
For now this rewind is creating an orphan. We add the test to check the behavior
in that case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 02:03:03 +0200] rev 3866
rewind: use rewinded parent when creating multiple changesets
Use use the rewinded parent instead of creating orphans based on identical, but
obsolete, changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 00:22:31 +0200] rev 3865
rewind: add a test for rewinding a fold
The code already have basic support for case. However the result create orphan
that will need to be improved. However, we keep this changeset simple.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 01:36:30 +0200] rev 3864
rewind: add a test for rewinding a split
There are no code change needed but it is worth testing on its own.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 00:33:43 +0200] rev 3863
rewind: update the working copy if it gets obsoleted
If the working copy parent is rewinded, follow the rewind.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 01:04:20 +0200] rev 3862
rewind: add a message about obsolete changeset
Not the best output, but useful to have the data. We can improve that later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 00:15:18 +0200] rev 3861
rewind: obsolete latest successors unless instructed otherwise
To prevent the creations of divergence, we automatically mark the successors set
of the rewinded changeset as obsoleted by the rewind result. A new flag
`--as-divergence` is added to disable this behavior.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Jun 2018 23:32:22 +0200] rev 3860
rewind: test rewinding an amended changesets
We are now able to rewind a simple amended changeset. For now, its current
successors has not been obsoleted and we created divergence.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Jun 2018 00:57:09 +0200] rev 3859
rewind: add a message about the rewinded changesets
This helps to understand what happened.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Jun 2018 23:11:52 +0200] rev 3858
rewind: add a proto version of the command
This first version focus on rewinding a single revision without care for the
consequence.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jun 2018 16:51:56 +0200] rev 3857
stablesort: make sure heads are processed in sorted order
changeset 72621094505f will fix some ordering issue in the `heads` revset so we
stabilise the output in advance.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 19 Jun 2018 23:21:54 +0530] rev 3856
evolve: move the bookmarks also when updating to successor (issue5923)
When we are on an obsolete node and does `hg evolve`, it updates to it's
sucessor, however it does not move the bookmark to the successor.
This patch adds logic to make sure we move the bookmark too.
Test change demonstrates the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 19 Jun 2018 23:21:44 +0530] rev 3855
tests: add test to demonstrate issue5923
This will be fixed in upcoming patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 28 Jun 2018 17:26:16 +0200] rev 3854
changelog: add an entry about the new `evolve.interrupted` section
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 00:50:17 +0530] rev 3853
evolve: make one missed error to align other error messages
Previous patches missed this error to change it to the new format. Let's align
this with all other messages raised by `hg evolve` command.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 00:16:29 +0530] rev 3852
evolve: raise error.InterventionRequired instead of Abort when conflicts
error.InterventionRequired is a better error to raise in such cases.
Thanks to marmoute for noticing this.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Jun 2018 02:58:30 +0200] rev 3851
changelog: add a changelog entry about divergence resolution
We made a lots of progress there.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Jun 2018 01:39:33 +0530] rev 3850
evolve: create resolved cset on successors of current parents
While resolving content-divergence, sometimes, the parent can be obsolete and
have a successor. We should consider the successors of the parents instead of
obsolete parents as that will do something like orphan+content-divergence
resolution both at the same time which is powerful and results in a single stack
while resolving content-divergence of stacks.
The test changes demonstrates that we can now successfully evolve a content
divergent stack.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Jun 2018 01:39:11 +0530] rev 3849
tests: fix a test case to not create conflicts
This is the test case where we are testing about divergence resolution of stack
of patches. If the stack is as follows:
C1 C2
| |
B1 B2
| |
A1 A2
\/
base
And A1-A2, B1-B2 and C1-C2 are content-divergent, and merging A1-A2 results in
conflicts.
Now if you resolve conflicts and continue resoling B1-B2, the conflicts of A1-A2
will still be there. We need somehow to understand the work we has done and not
create conflicts again.
To test the evolution functionality for now, we make sure conflicts does not
occur.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Jun 2018 01:06:12 +0530] rev 3848
evolve: introduce a resolutionparent variable and store it in evolvestate
This patch introduces a resolutionparent variable which will be the parent of
final changeset after resolving content-divergent changesets.
Till now, the parent is always the parent of one of the divergent node, but now
in upcoming cases, it can be a successor of both the parents of divergent nodes.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 13 Jun 2018 18:08:57 +0530] rev 3847
evolve: introduce a dirstatedance() fn to fix dirstate after parent change
This patch introduces a dirstatedance() function which will be used after fixing
the dirstate when we change parents using repo.dirstate.setparents().
Look at docs added for more details.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 13 Jun 2018 17:15:10 +0530] rev 3846
evolve: create a new commit instead of amending one of the divergents
This patch changes the behavior of evolve command while resolving
content-divergence to create a new commit instead of amending one of the
divergent ones.
In past, I have made this change, backed out this change and now today again I
am doing this change, so let's dive in some history.
Using cmdrewrite.amend() was never a good option as that requires hack to delete
the evolvestate and also gives us less control over things. We can't make the
commit on top of different parents as that of content-divergent ones. Due to all
these, I first made this change to create a new commit instead of amending one.
But, after few days, there was flakiness observed in the tests and turned out
that we need to do some dirstate dance as repo.dirstate.setparents() does not
always fix the dirstate. That flakiness was a blocker for progress at that time
and we decided to switch to amend back so that we can have things working with
some hacks and we can later fix the implementation part.
Now, yesterday while tackling resolving content-divergence of a stack which is
as follows:
C1 C2
| |
B1 B2
| |
A1 A2
\/
base
where, A1-A2, B1-B2, C1-C2 are content-divergent with each other. Now we can
resolve A1-A2 very well because they have the same parent and let's say that
resolution leads to A3.
Now, we want to resolve B1-B2 and make the new resolution commit on top of A3 so
that we can end up something like:
C3
|
B3
|
A3
|
base
however, amending one of the divergent changesets, it's not possible to create a
commit on a different parent like A3 here without some relocation. We should
prevent relocation as that may leads to some conflicts and should change the
parent before committing.
So, looking ahead, we can't move with using amend as still using that we will
need some relocation hacks making code ugly and prone to bad behaviors, bugs.
Let's change back to creating a new commit so that we can move forward in a good
way.
About repo.dirstate.setparents() not setting the dirstate, I have researched
yesterday night about how we can do that and found out that we can use
cmdrewrite._uncommitdirstate() here. Expect upcoming patches to improve the
documentation of that function.
There are lot of test changes because of change in hash but there is no behavior
change. The only behavior change is in test-evolve-abort-contentdiv.t which is
nice because creating a new commit helps us in stripping that while aborting.
We have a lot of testing of content-divergence and no behavior change gives
enough confidence for making this change.
I reviewed the patch carefully to make sure there is no behavior change and I
suggest reviewer to do the same.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Jun 2018 23:20:54 +0530] rev 3845
evolve: always order the revs to be evolved
The current code only order the revs if we are resolving orphans and not in
other case. The ordering is important when we pass --all and tackle multiple
occurence of the same instability.
Let's order the revs for each instability. There are enough test coverage of
phase-divergence and content-divergence that I feel confident doing it because
none of the test changed.
The change in test-evolve-content-divergent.t demonstrates the indeed ordering
helped.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Jun 2018 21:13:02 +0530] rev 3844
tests: add test of resolution of content-divergent stacks
This patch adds a test of resolution of content-divergence stacks where a series
of changesets get mutated as two different series resulting in whole
content-divergent stacks.
As the tests shows, we are not processing the changesets in right order which
needs to be fixed first.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Jun 2018 19:00:12 +0530] rev 3843
evolve: improve error messages when conflicts occur
This patch improves the error messages when conflicts occur.
First, we drop the line 'evolution failed', that is not the best line we can
show and evolution didn't failed, it's just interrupted by the conflicts and
when user will run `hg evolve --continue`, things will be fine. I still remember
when I first saw 'evolution failed', I got a bit scare as am I in a recoverable
position or not. So let's drop this scary line.
Second, we replace the error messages to say `resolve conflicts and see
help-topic`. The help topic was added recently and documents all the three flags
very well. Addition of tests also showed that all the three flags works fine
with all the three instability type. So we should advertise them more.
Third, we now raise the error with our error message rather than raising
MergeFailure and having evolution related text in hint or stderr above. This
increase the focus on the error message we want to show.
After this patch, I think error messages by evolve in case of conflicts will be
same in every case.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Jun 2018 04:01:19 +0530] rev 3842
evolve: point to `hg help evolve.interrupted` while resolving content-div
Recent test additions shows that --abort and --stop works well while resolving
content-divergence and we should advertise them. This patch does so by pointing
to evolve.interrupted help topic.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Jun 2018 03:29:13 +0530] rev 3841
tests: add test about aborting content-divergence when multiple parents
This patch adds tests for --abort flag of hg evolve command when we are
resolving content-divergence which are on different parents and parent of one of
them is the gca of both of them.
The tests shows that we are doing good and we should advertise the flag during
conflicts.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 13 Jun 2018 15:47:19 +0530] rev 3840
CHANGELOG: add an entry about the --update flag
Since --update is still the default, we make the entry about --no-update.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 04:29:05 +0530] rev 3839
evolve: show unfinished information in `hg status -v` (issue5886)
`hg status -v` shows information about unfinished states or `hg status` shows it
when `commands.status.verbose=True` is set.
Before this patch, information about interrupted evolve does not show up because
evolve does not resgiters in cmdutil.STATES. This patch make sure we register
evolve related information there.
There has been an idea to unify cmdutil.unfinishedstates and cmdutil.STATES
which needs some work and the resulting state does looks a bit complicated. So
till the time we unify them, let's fix this bug by registering in
cmdutil.STATES.
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 12 Jun 2018 13:58:14 +0200] rev 3838
style: drop a (commented) debug print
Left-over from 4dcf87849f9d.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 20:58:55 +0530] rev 3837
tests: update tests output with changes in d0abd7949ea3 in core hg
CORE-TEST-OUTPUT-UPDATE: d0abd7949ea3
CORE-TEST-OUTPUT-UPDATE: 1e9c357d3ddf
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jun 2018 10:40:57 +0200] rev 3836
branching: merge with stable
Merging with the new 8.0.1 release.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 23:31:44 +0530] rev 3835
Added tag 8.0.1 for changeset 0887c30255a1
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 23:30:24 +0530] rev 3834
packaging: prepare for 8.0.1 release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Jun 2018 20:24:45 +0200] rev 3833
changelog: add a couple of missing entry
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 20:17:56 +0530] rev 3832
evolve: strip the extra obsmarkers if any on `hg evolve --abort`
Previous patches started storing some obsmarkers which needs to stripped during
`evolve --abort` which can't be stripped by stripping the new evolved changesets
because they point to a node which existed before the evolution was performed.
This patch adds logic to strip those obsmarkers by finding their indices in the
obsstore and then stripping them.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 20:13:36 +0530] rev 3831
evolve: store the obsmarkers to be deleted in evolvestate
Sometimes, we don't create a new node and obsolete one of the old node in favour
of an existing node. When user calls, `hg evolve --abort`, we need to strip that
obsmarker to go back in the same old state. The obsmarker created for new node
are stripped when the new nodes are stripped.
This patch start storing such obsmarkers in the evolvestate so that we can delete
them later if required. Right now we just store successsor and predecessor
information, we might need a better obsmarker serialization techinque in future
to make it more robust.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 15:52:11 +0530] rev 3830
evolve: store obsmarkers to be deleted in evolvestate
There are operations which don't create a new node rather they just obsolete one
of the unstable node in favour of existing one. In such cases if a further
resolution leads to conflicts and user calls `evolve --abort` or `evolve
--stop`, we might need to delete that obsmarker. So let's store such obsmarkers
in the evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 15:38:43 +0530] rev 3829
evolve: factor out logic to merge branches in separate function
This patch moves the logic to merge branches while resolving content-divergence
to a separate function.
This makes code clear and better to understand.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 01:00:57 +0530] rev 3828
tests: add more test of --stop while resolving content-divergence
This tests the --stop flag when conflicts occur while relocating one of the
divergent changesets.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 00:47:28 +0530] rev 3827
evolve: strip the relocation commit on `hg evolve --stop`
While resolving content-divergence on multiple parents, we relocate one of the
commit on the parent of another one and then merge the divergent changesets.
Merging can leads to conflicts, and if user does `hg evolve --stop`, we need to
strip that relocated changeset too! This patch does that.
Test changes demonstrates the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 00:43:39 +0530] rev 3826
evolve: declare updated and pctx variables in stopevolve()
They will used in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 22:52:11 +0530] rev 3825
evolve: store the old other divergent node after relocation in evolvestate
When the content-divergent changes are on different parents and we relocate of
the node to the parent of another one, we get a new other-divergent node. We
still need to store the older other-divergent in evolvestate so that we can use
that information.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 22:42:57 +0530] rev 3824
evolve: factor out logic for --stop flag in separate function
This will make code clean
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 22:38:08 +0530] rev 3823
tests: add test for --stop flag when resolving multiparents content-div
This patch adds a test for --stop flag when we are in an interrupted
content-divergent resolution which have multiple parents. Conflicts happen we
merge the divergent changesets after relocation. The test shows that we
need to strip the relocated changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 20:35:48 +0530] rev 3822
evolve: move logic to continue interrupted content-div resolution to new fn
Each of the other type has defined their own function to continue/complete the
interrupted resolution. We take out the logic for content-div resolution too in
a separate function to make the top level function looks clean.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 01:12:12 +0530] rev 3821
evolve: rename help topic evolve.interrupted-evolve to evolve.interrupted
`evolve.interrupted-evolve` has the word evolve twice. Now that this help topic
is a part of evolve command, evolve.interrupted will mean the interrupted evolve
command only.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Jun 2018 00:15:27 +0530] rev 3820
packaging: update tested-with statements in evolve and topic
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Jun 2018 00:12:08 +0530] rev 3819
CHANGELOG: mention about 4.6.1 compatibility
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 22:52:53 +0530] rev 3818
test-compat: merge mercurial-4.4 into mercurial-4.3
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 22:52:52 +0530] rev 3817
test-compat: merge mercurial-4.5 into mercurial-4.4
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 22:52:51 +0530] rev 3816
test-compat: merge stable into mercurial-4.5
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 23:51:57 +0530] rev 3815
utility: use ui.interactive() instead of checking config value
Before this patch, the rev selection prompt which pops up in case of ambiguity
to ask user to select a rev used to check the config value of ui.interactive
which can is by default set to None.
We should use ui.interactive() instead which is more smart in such cases.
Thanks to martinvonz for suggesting this.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 19:48:53 +0530] rev 3814
CHANGELOG: add couple of entries about things fixed
We are preparing for a release!
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 17:36:28 +0530] rev 3813
next-prev: always respect the --merge flag
An earlier bug fix series which started respecting commands.update.check
introduced a bug in which --merge was not respected sometimes. This patch fixes
that behavior by passing updatecheck as 'none' to hg.updatetotally() if --merge
is passed which is similar to what `hg update` does.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jun 2018 18:32:48 +0530] rev 3812
next-prev: add tests showing --merge not respected in some cases
This patch adds tests which show that --merge is not respected when you set
commands.update.check to any value.
This is a bug I wrote few days ago and will fix it in next changeset.
I like this process of writing bugs and fixing them.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 22:59:39 +0530] rev 3811
evolve: store the evolvestate if relocation results in conflicts
We missed storing the evolvestate on disk when relocation lead to conflicts. We
need to store it to grab information to continue or abort or stop the evolve.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 22:45:54 +0530] rev 3810
tests: add more test of resolution of content-divergent changesets
This patch adds test of resolution of content-divergent changesets when
relocation is required and it leads to conflicts. The test shows that we are not
doing the right thing. This will be fixed in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 18:18:10 +0530] rev 3809
evolvestate: store info about relocation while resolving content-divergence
While resolving content-divergence when they are on different parents, we
relocate one of the node to parent of another one and this can lead to conflicts
sometimes. So we need to store information about that state in evolvestate so
that we can use that when user does `hg evolve --continue` or `--stop` or
`--abort`.
Now that we make sure, we store the new other node in evolvestate, we fix the
behavior of handling the relocated commit and merge the right changesets.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 18:13:54 +0530] rev 3808
evolve: factor out logic to merge content divergent csets in separate fn
This will help us in reusing the logic if we need to while doing evolve
--continue.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 20:27:03 +0530] rev 3807
evolve: commit the transaction if conflicts occur while merging content-div
Yes, let's commit the transaction in case conflicts occur. Yes, this is what
unshelve does and this is one of the reasons we don't like unshelve.
Previous patches added support for resolving content-divergence when they are on
different parents with parent of one being the gca. In such cases, we relocate
one of the divergent commit to the parent of another one.
All the relocation stuff and merging divergent changeset stuff happens in a
single transaction, so if there are conflicts while merging, we abort and the
transaction rollsback and our relocated commit is not applied after abort.
We don't want to process the relocation because that can lead to conflicts and
we will have dirty wdir because of resolving conflicts.
So, we commit the transaction when merging results in conflicts to make sure if
relocation happened, we commit that.
This fixes the absence of relocation commit found in previous patch and uncover
a new bug about handling of relocated commit. Upcoming patch will fix it.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Jun 2018 15:54:32 +0530] rev 3806
tests: add tests for resolving content-divergence when different parents
This patch adds more tests for cases when we try to resolve content-divergence
when they are on different parents.
The last test shows the we are somehow missing the relocated commit in
interrupted transaction. This will be fixed in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Jun 2018 19:52:06 +0530] rev 3805
evolve: implement resolution of content-divergence when on differet parents
This patch implements the basic version of resolution of content-divergence
changesets when they are on different parents but one of the parent is gca of
both the different parents.
The functionality first relocates the divergent changeset which was left behind
and then resolves the content-divergence like it resolves in normal cases.
This is a very basic implementation because it still does not work on
interrupted evolution. Test changes in this patch shows the basic functionality
working. The output of dry-run is also required to be tweaked in such cased.
Upcoming patches will add more tests and will improve the implementation to work
during conflicts too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Jun 2018 19:57:19 +0530] rev 3804
tests: add tests for resolving content-divergence with parent change
This patch adds a new test file test-evolve-content-divergence.t which tests the
resolution of content divergence when the divergent changesets does not have the
same parents.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 03:49:17 +0530] rev 3803
CHANGELOG: add an entry about fixing issue5877
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 03:26:47 +0530] rev 3802
evolve: pop up editor if conflicts occur while merging commit messages
Last patch added support for merging commit messages while resolving content
divergence. In case of conflicts we fallback to one of the divergent commit
messages.
After this patch, we will pop up an editor where user has to resolve the
conflicts in the commit messages and then continue.
Tests are added for this. We need to fix handling in test-sharing.t to use
HGEDITOR to fix conflicts and pass the new commit message.
Future improvement can be that we should respect HGMERGE while merging commit
descriptions too.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Jun 2018 01:28:02 +0530] rev 3801
evolve: merge commit messages while resolving content-divergence (issue5877)
While resolving content-divergence, there can be divergence in commit messages
too which should be resolved.
This patch uses the hg's internal merge API's to merge commit messages of
divergent changesets with predecessor as the base.
In case of conflicts, we fallback to divergent's commit message which should be
changed in future. We should pop up the editor with the commit message and the
conflict markers and let user fix that.
Tests are added for the functionality added.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 01:19:36 +0530] rev 3800
evolve: move if-else block under the right block
the index related if-else should be only executed when all three base, divergent
and other have different branch names.
I coded this last night and mistakenly mis-indented it. Caught when I was adding
more tests.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 22:02:24 +0530] rev 3799
tests: make sure we don't result in commit messages conflict
Upcoming patches will introduce functionality of merging commit messages while
resolving content divergence which can lead to conflicts.
We don't want to test the conflicts scenario here, so let's make sure there are
no conflicts of commit messages in this test.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 21:02:09 +0530] rev 3798
tests: don't use mkcommit shell function in test-divergent.t
Upcoming series will start merging commit descriptions while resolving
content-divergence. This tests are here to test the basics of content-divegrence
resolution and we should not be testing much of commit description merge here.
Replacing mkcommit function with normal hg calls will help us decide on the
commit messages ourselves and prevent conflicts while merging commit messages.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Jun 2018 14:35:36 +0200] rev 3797
evolve: remove duplicated documentation
File saving failure…
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 04:09:49 +0530] rev 3796
evolve: show `hg help evolve.interrupted-evolve` in error when conflicts
The help list various flags which you can use during interrupted evolve
resolution and description about what they do. This will be very helpful for
user on how to continue an interrupted evolve.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 01:11:59 +0530] rev 3795
evolve: add a help topic `Interrupted-Evolve`
This help topic contains description on how the various flags work during
interrupted evolve. This help topic will be included in error message during
interrupted evolve in next patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Jun 2018 03:37:15 +0200] rev 3794
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Jun 2018 03:36:40 +0200] rev 3793
changelog: fix version number error
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 02:12:14 +0530] rev 3792
evolve: return the new node formed only as the replacement
sometimes, the the other content divergent changeset is obsoleted in favour of
the local divergent changeset in which case we should not store that as a
replacement because `hg evolve --abort` will strip that changeset. Let's make
sure we return the newnode only if formed.
The test results shows that we are still not 100% accurate as we need to strip
an obsmarker.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 17:04:20 +0530] rev 3791
tests: add more test of --abort flag for content-divergence resolution
This patch adds test when we resolve multiple content-divergence changesets at
once and resolution fo first content-divergence does not form new commits,
resolution of second one leads to conflicts.
As the output shows, we are wrongly stripping a changeset here, which should be
fixed in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Jun 2018 04:03:02 +0530] rev 3790
evolve: prompt user for branch selection while resolving content-divergence
When resolving content-divergence, there can be case when both the
content-divergent changesets are on different named branches. In that case, we
are not sure which branch should the resolution commit should be on.
This patch adds logic to prompt user to choose the branch which the resolution
commit should be on and then creates the new resolution commit on that branch.
This also adds a new test file which have tests for the branch selection feature
we have added.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 03:51:01 +0530] rev 3789
evolve: pass the base revision in _completecontentdivergent()
We need the base revision to merge commit messages, branches and more stuff.
Let's make sure we have that by passing into the function which completes the
divergence resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 03:49:49 +0530] rev 3788
evolve: store the base of content-divergents in evolvestate
We need the base changeset for merging commit messages, branches. Let's store it
in evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 00:53:21 +0530] rev 3787
evolve: use cmdrewrite.amend() instead of creating a new commit
This patch backs out changeset 88601e1cd5d8.
We replaced cmdrewrite.amend() with creating new commit because using amend(), a
high level function was not good and creating a new commit gave us more control
over things.
**HOWEVER** to get more control, you need to get arrange all the pieces together
perfectly. Creating a new commit, the existing logic has some bugs around
dirstate handling, the `repo.dirstate.setparents()` call especially. Sometimes
this fixes the dirstate correctly sometimes not.
As Pierre-Yves David said, "Having a "clumsy" implementation with the right
behavior is usually a good first step. So having an amend based implementation
seems like a good first step.", let's take a step back and get back using amend
so that we can have a correct basic implementation which is bug free.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 01:59:41 +0530] rev 3786
corecompat: update the tests output to show phase update summary
eb9835014d20 in core added support to transactions to show a summary on the
phase changed during that transaction. Due to this, couple of tests output needs
to be updated. This patch does that.
While realeasing evolve, this patch should be backed out on branches where
hg<=4.6.
CORE-TEST-OUTPUT-UPDATE: eb9835014d20
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:24:43 +0530] rev 3785
CHANGELOG: add an entry about issue 5808 being fixed
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:21:25 +0530] rev 3784
next-prev: replace the error hint to mention about `--merge` flag
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:13:47 +0530] rev 3783
tests: add tests for conflicts while respecting commands.update.check
This patch adds tests to check that we don't run into conflicts while respecting
commands.update.check.
The error message now does not show the hint about --merge option which we
should fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:37:13 +0530] rev 3782
next: respect `commands.update.check` config option in `hg next` (issue5808)
`commands.update.check` config option determines what level of checking should
be done when we update to another revision. When we set this config option to
`noconflict`, it updates your working directory to a specified revision only
when there will be no conflicts which is a very nice behavior.
This patch adds logic to respect the config option so that we can have that nice
behavior with `hg next` too.
It turns out, we just needed to use hg.updatetotally() and add some cases to
check config option.
Right now, we only respect the config if value is set to `noconflict`. Otherwise
we fallback to the default behavior.
This is a part of fixing issue5808. Test changes demonstrate the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:36:24 +0530] rev 3781
prev: respect `commands.update.check` config option in `hg prev` (issue5808)
`commands.update.check` config option determines what level of checking should
be done when we update to another revision. When we set this config option to
`noconflict`, it updates your working directory to a specified revision only
when there will be no conflicts which is a very nice behavior.
This patch adds logic to respect the config option so that we can have that nice
behavior with `hg prev` too.
It turns out, we just needed to use hg.updatetotally() and add some cases to
check config option.
Right now, we only respect the config if value is set to `noconflict`. Otherwise
we fallback to the default behavior.
This is a part of fixing issue5808. Test changes demonstrate the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:50:55 +0530] rev 3780
tests: add test demonstrating issue5808
This patch adds test showing that `next` and `prev` does not respect the
`commands.update.check` config option, particularly when set to `noconflict`.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:26:19 +0530] rev 3779
next: bail out early in `hg next --evolve` if dirty wdir
This patch adds logic to bail out early when --evolve is passed with next
command and the working directory is dirty.
This will help us in preventing the message saying `do you want --merge` which
is useless and misleading when `--evolve` is passed.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:24:28 +0530] rev 3778
tests: add test of `hg next --evolve` with dirty working directory
I was testing some output change to `hg next --evolve` in dirty working
directory and found that we don't have any test for that.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:35:22 +0530] rev 3777
CHANGELOG: add an entry about fixing issue5897
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 27 May 2018 02:32:58 +0530] rev 3776
evolve: fix `hg abort` when hg next --evolve leads to conflicts (issue5897)
Before this patch, if you do `hg next --evolve` and end up having conflicts and
then you try `hg abort`, it will throw a KeyError. This patch fixes that.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 May 2018 00:34:35 +0530] rev 3775
tests: add a test demonstrating issue5897
When conflicts are caused due to `hg next --evolve`, `hg evolve --abort` breaks!
This patch adds test to demonstrate that. This will be fixed in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 17:50:02 +0530] rev 3774
evolve: add an `--update` flag to `hg evolve` command
This patch adds a new `--update` flag which defaults to True. The update flag
updates the working directory to the head of evolved revisions after `hg evolve`
command.
This flag can be used to not update your working directory after `hg evolve`
which has been one of the biggest feature request from fig team at Google. To
not update your working directory, the user can do `hg evolve --no-update`.
If the working directory get obsoleted by evolve command, it will update to the
successor.
This patch also adds some basic tests for the flag introduced.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 02:02:11 +0530] rev 3773
tests: add tests for testing --abort while content-divergence resolution
This patch adds a new test file with a very basic test of `--abort` on an
interrupted evolve which was resolving content-divergence. Upcoming patches will
add more rigourous tests.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 00:58:50 +0530] rev 3772
evolve: fix storage of replacements and temprevs node in evolvestate
The _completephaseivergent() was not respecting rules on how to store the new
node ids created in evolvestate. The rules are:
* store the temporary relocated commits in temprevs
* store the final new commit in replacements
This patch make sure we follow the above rules and also use the return value
returned by _resolvephasedivergence().
The tests change demonstrates that we are all good now.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 00:58:35 +0530] rev 3771
tests: add more tests related to aborting while resolving phase-divergence
The tests shows the something is still broken related to abort while resolving
phase-divergence which will be fixed in upcoming patches.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 12:16:24 +0200] rev 3770
topic: suggest to clear a topic that becomes empty
We add a hint suggesting "hg topic --clear" when a topic becomes empty.
This usually happens when all its changesets get public, that is when
the user does a 'phase -p' or when they pull from a server. To
discriminate relevant cases for which we should display the hint (and
typically exclude explicit 'hg topic --clear' operation), we look for
the transaction "type" to only consider 'phase' or 'push' transaction.
In the latter case, the transaction name is not simply 'push-response'
but it also included the remote URL so we need to match on string
content.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:37:37 +0200] rev 3769
topic: display a hint pointing at help when a topic becomes non-empty
This is an attempt at avoiding "mistakes" by new users of topics when
they pull a topic and publish its changesets while being checked out. In
this case, the topic will become empty but still be active; however, if
this is a "foreign" topic, the user will not likely want to keep it
active for the next commit operation. So we add a hint message pointing
at general help of "topics" command so that they can eventually do
something and learn about "hg topics --clear".
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 24 May 2018 18:57:46 +0200] rev 3768
branching: merge with compat fix on default
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 01:50:26 +0530] rev 3767
evolve: add compat for repair.stripbmrevset which is moved to scmutil
This patch adds compatibility logic for repair.stripbmrevset() which is moved to
scmutil as bookmarkrevs().
This fixes test-prune.t failure.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 May 2018 11:18:14 +0200] rev 3766
evolve: update the readme with more information about contribution
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:03:31 +0200] rev 3765
topic: dedent items about publishing behavior in docstring
Also change item bullets from '#' to '*'.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:00:11 +0200] rev 3764
topic: use preformatted block for config snippets documentation
We add :: markers, empty line and properly indent blocks where needed.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:09:37 +0200] rev 3763
tests: add a test for "hg help -e topic"
Currently, some configuration snippets do not render well; we'll fix
this in forthcoming changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 May 2018 01:24:02 +0200] rev 3762
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 21:33:50 +0530] rev 3761
content-div: add test showing `--stop` works during interrupted resolution
This patch adds a test showing that the --stop flag of `hg evolve` works well
during interrupted content-divergence resolution.
The --stop flag now works with all the three different type of instability
resolution very well and we should advertise it more.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Apr 2018 14:48:53 +0530] rev 3760
evolve: create new commit while resolving content-divergence
Before this patch, we used to amend one of the content-divergent changes with
the changes from the merge. Creating a new commit will certain advantages like
letting user enter a commit message, showing user the new merge diff before
commiting the content-divergent resolution and give us more control in the
implementation part.
The reason amend was used initially was just because it was easy. There are some
tests update due to change.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 20:33:42 +0530] rev 3759
content-divergence: store the resolved revs in evolvestate['replacements']
The support for continuing a conflicted content-divergence resolution was added
some time ago. That support lacked storing of the resolved rev in the
evolvestate['replacements'] which marks the node as resolved and does not try to
resolve that node again.
Since we didn't store, the resolution, processes the same node again. This patch
makes sure we store the information in evolvestate that a certain
content-divergent node is resolved to prevent pre-processing it again.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 23:51:57 +0530] rev 3758
utility: use ui.interactive() instead of checking config value
Before this patch, the rev selection prompt which pops up in case of ambiguity
to ask user to select a rev used to check the config value of ui.interactive
which can is by default set to None.
We should use ui.interactive() instead which is more smart in such cases.
Thanks to martinvonz for suggesting this.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:46:20 +0530] rev 3757
evolve: make `--abort` strip the temporary revs created during resolution
During divergence resolution, `hg evolve` created temporary relocation commits
which needs to be stripped off during `hg evolve --abort` to get back to the
same state where we were. Previous patch added a new list temprevs to be stored
in evolvestate.
This patch starts storing the temp relocated node created during
phase-divergence resolution in evolvestate and make sure we consider stripping
it too while `hg evolve --abort`.
The test changes demonstrate the fix. Now we are sucessfully aborting a
phase-divergence resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:43:23 +0530] rev 3756
evolve: store a list of temprevs in evolvestate
There are temporary revisions which are created as a part of divergence
resolution which needs to be stripped off if user runs `hg evolve --abort`. We
need to save the nodeids of those temporary revisions in the evolvestate.
The temprevs list will help in the above mentioned use cases.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:36:14 +0530] rev 3755
evolve: check for None before adding in set of revisions to strip
After previous patch, replacements can contain None. Let's make sure we don't
add None to the revisions to strip during `hg evolve --abort`
The test changes demonstrate the usefulness of this and the previous patch. Now
abort is working and public changesets are not a problem.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:33:14 +0530] rev 3754
evolve: return the new replacement node to be stored in evolvestate
While resolving phase-divergence, we can end up obsoleting the phase-divergent
commit in favor of the public commit. Before this patch we return the node of
public commit to store as a replacement of the phase-divergent commit.
The above will not cause any problem till the time we use `hg evolve --abort` on
an interrupted evolve which tries to strip the replacement nodes because it
thinks that the replacements nodes are the ones which are created during the
resolution and are new.
Since we will be stripping a public node, `evolve --abort` will error out saying
cannot strip public changeset, unable to abort evolve which is bad.
We should make sure, replacements should only consist of new nodes formed. If
the instablity is resolved by obsoleting in favour of old changeset, we should
not store the old changeset in replacements in evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:39:38 +0530] rev 3753
evolve: don't make values of replacements dict lists
There was inconsistency in code base related to the values stored in
replacements dict in evolvestate. At some places we store a list, at some places
we just store the nodeid. Let's make sure we store only the nodeid, not a list.
If there are cases, when there are multiple replacements or changesets created
during resolution, later patch will introduce storing temprevs in evolvestate
which should be used.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:41:08 +0530] rev 3752
tests: add a test file `--abort` flag while resolving phase-divergence
This patch adds a new test file test-evolve-abort-phasediv.t which will contain
tests for `hg evolve --abort` flag while resolving phase-divergence.
There is a case in this test which does not work right which will be fixed in
upcoming patches.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 15 May 2018 22:17:27 -0700] rev 3751
evolve: pass revisions as strings to commands.*()
It's usually fine to pass integer revisions to e.g. commands.update(),
but when directaccess is enabled, it attempts to parse it a revset,
which fails.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 01:27:13 +0530] rev 3750
tests: rename test-evolve-abort.t to test-evolve-abort-orphan.t
We renamed the test file because it contains all the cases related to orphan
resolution. Now we care about divergence resolution too and hence we must have
separate specific test files for each type.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 May 2018 16:56:52 +0200] rev 3749
branching: merge with branch for stable
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 16:25:29 +0200] rev 3748
compat: update obshashrange test output
Mercurial core bfe8ef6e370e seems to have changed the order of some messages.
Simply accept the change in the test file.
CORE-TEST-OUTPUT-UPDATE: bfe8ef6e370e
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 14:56:51 +0200] rev 3747
test: update to new outputs
Mercurial core ea63a2004d09 update the hidden changeset warning during update
after the effective update.
CORE-TEST-OUTPUT-UPDATE: ea63a2004d09
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 13:07:49 +0200] rev 3746
compat: fix obslog with Mercurial 4.6+
Mercurial core 3fe1c9263024 removed the diffopts attribute on
changesetprinter. Backport consuming diffopts in the constructor for old
versions of changesetprinter and update the non-graph code to extract the
patch option and pass it directly.
Faheem Mitha <faheem@faheem.info> [Sat, 19 May 2018 18:26:36 +0530] rev 3745
debian: add line to clean-docs target to delete additional docs file
Martin von Zweigbergk <martinvonz@google.com> [Mon, 14 May 2018 15:25:38 -0700] rev 3744
amend: use context manager for locks (issue5887)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 May 2018 21:37:28 -0700] rev 3743
evolve: point to '--abort' in verbose status message
f6979d64b9fb (evolve: point to '--abort' in error message, 2018-04-22)
changed "hg update -C ." to "hg evolve --abort" in error
messages. This commit makes the same change in the verbose status
message (the one that warns about unfinished evolve).
There's still one mention "hg update -C" in our codebase. That's after
"hg evolve --content-divergent" fails, but I don't think "hg evolve
--abort" works in that case (yet?).
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Apr 2018 20:14:42 +0530] rev 3742
evolvecmd: add comments and new lines in content-divergence handling logic
I have visited this logic three times in last 10 days and I have to re-read the
whole code to make sure I don't miss any part. Adding comments will help
understanding the code in better and fast way.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:18:54 +0530] rev 3741
evolve: show cset hash in "merging conetnt-divergent changeset"
While I was here I also mae de it repo.ui.status() instead of repo.ui.note() to
align the behavior with rest of the messages.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:14:41 +0530] rev 3740
evolve: show cset hash in "update to local conflict" message
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:11:29 +0530] rev 3739
evolve: use hg.updaterepo() instead of hg.update() to hide stats
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:04:18 +0530] rev 3738
evolve: fix the conflicts error message during content-divergence resolution
Before last patch, we didn't had an automated way to continue an interrupted
content-divergence resolution and we used to show a very long error message on
how to continue manually.
This patch replaces that long error message with nice small message which tells
how to continue and how to abort. We still show `hg update -C .` to abort as we
need to test and make `--abort` work in case of content-divergence.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:51:56 +0530] rev 3737
evolve: add logic to continue interrupted content-divergence resolution
We continue the interrupted content-divergence using the logic to complete
content-divergence which we refactored in it's own function few patches ago.
We had to delete evolvestate file before using cmdutil.amend() because otherwise
we can't use the function. This leads to a hack which deletes the evolvestate
file, we may want to not to use the high level API function here. Also we had to
pass evolvestate also to _completecontentdivergent function because of this.
This patch also, adds a test which demonstrates that the logic works fine.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:48:36 +0530] rev 3736
evolve: store the evolvestate file when encountering conflicts
This patch makes `hg evolve` store the evolvestate file when it encounters merge
conflicts while resolving content-divergence.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:13:29 +0530] rev 3735
evolve: take out logic to complete phase-divergence in separate fn
This patch takes out the logic to complete the content-divergence resolution to
it's own separate function so that we can reuse it in case of interrupted
resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 17:54:01 +0530] rev 3734
evolve: store divergent nodes in evolvestate when resolving content-divergence
We need to store the divergent nodes in evolvestate so that we can continue an
interrupted phase divergence resolution.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 May 2018 11:59:06 +0200] rev 3733
branching: merge stable into default
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 28 Apr 2018 18:44:07 +0530] rev 3732
tests: add test showing `hg evolve --stop` works fine with phase-divergence
This patch adds a new test file which contains test demonstrating that `--stop`
flag works well while resolving phase-divergence using `hg evolve`.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 28 Apr 2018 18:03:32 +0530] rev 3731
tests: rename the test file to add 'orphan' in the name
test-evolve-stop.t contains test for `hg evolve --stop` for orphan resolution
only. We also need to test the flag while resolving divergence. It will be good
if we have a test file for each type of instability.
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:28:34 +0800] rev 3730
tests: test that `hg obslog wdir()` aborts with a useful message
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:19:45 +0800] rev 3729
obshistory: make obslog work when a commit doesn't have any description
This logic is taken from logcmdutil.changesetprinter class. It checks that
commit description is not empty before extracting the first line (before this
patch it would try to index an empty list).
Stripping description also makes obslog behave more like regular log when there
are trailing/leading whitespaces.
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:14:10 +0800] rev 3728
obshistory: use a more appropriate type for obslog entries
cand is actually a regular changeset and not 'M' (graphmod.MISSINGPARENT). And
'M' is only used for graph edges, but cand is drawn as a graph node.
Visually there's no effect, but the code makes more sense this way.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:19:13 +0100] rev 3727
packaging: mark as development version
This help avoiding confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:18:19 +0100] rev 3726
branching: merge with latest release
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:16:35 +0100] rev 3725
packaking: mark as development version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:36 +0100] rev 3724
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:35 +0100] rev 3723
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:34 +0100] rev 3722
test-compat: merge stable into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:14 +0100] rev 3721
Added tag 8.0.0 for changeset 116cdd8c102a
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:02:43 +0100] rev 3720
packaging: update version number
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 13:55:52 +0100] rev 3719
packagin: update `tested-with` statement
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 13:49:00 +0100] rev 3718
changelog: mention 4.6 compatibility
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 11:55:49 +0100] rev 3717
Changelog: pre-version gardening
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 01:58:45 +0100] rev 3716
testcompat: update output for Mercurial 4.3
Lets of minor update + one major update to tests/test-evolve-phase-divergence.t
since all hashed chance (different instability name).
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:23:00 +0200] rev 3715
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:11:10 +0200] rev 3714
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:57:18 +0100] rev 3713
testcompat: revert output change from new capabilities
This new capabilities is 4.6 only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:42:47 +0100] rev 3712
testcompat: revert output change from 54a469cd5b26
These are 4.6 only changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:41:57 +0100] rev 3711
testcompat: revert output change from 1de6ba0ac6d7
These are 4.6 only changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:10:26 +0200] rev 3710
testcompat: merge stable into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 15:23:15 +0100] rev 3709
compat: handle different `ui.edit` signature with Mercurial 4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 16:13:42 +0100] rev 3708
wirepeer: try modern module first
This avoid some issue with remaining .pyc
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 12:07:35 +0100] rev 3707
compat: handle lack of allpredecessors for Mercurial 4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:03:05 +0100] rev 3706
branching: merge further fix into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 11:44:05 +0100] rev 3705
wrapping: fix a silly error were we checking on module and wrapping the other
...
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 11:04:27 +0200] rev 3704
brancing: merge next release into default
We are about to release hg-evolve 8.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 21 Apr 2018 11:01:12 +0200] rev 3703
test-compat: open mercurial-4.5 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 22 Apr 2018 11:40:17 +0200] rev 3702
evolve: point to '--abort' in error message
The way to escape and evolve run has been updated and we need to tell our user
about it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:27:13 +0200] rev 3701
compat: drop compatibility layer for pager
All versions we support now support `ui.pager`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:25:17 +0200] rev 3700
compat: drop compatibility layer for duplicatecopies
We no longer support version before Mercurial 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:21:44 +0200] rev 3699
compat: drop compatibility layer for bookmark.applychanges
We now only support Mercurial version down to 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:15:10 +0200] rev 3698
compat: from compatibility layer for allprecursors
We only support down to 4.3 now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:12:37 +0200] rev 3697
compat: drop compatibility layer for successorssets
We support down to Mercurial 4.3 now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:08:01 +0200] rev 3696
compat: drop compatibility wrapper for "relevantmarkers"
We no longer support version without the logic we have been adding.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:51:53 +0200] rev 3695
compat: drop compat layer for cleanupnodes
We no longer support version lower than 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:07:23 +0200] rev 3694
compat: from compatibility layer for createmarkers
We support down to 4.3 now. It supports operation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:01:49 +0200] rev 3693
compat: drop obsutile layer
Mercurial 4.2 is no longer supported.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 15:59:39 +0200] rev 3692
compat: drop vfsmod compat layer
Mercurial 4.2 is no longer supported.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:26:03 +0200] rev 3691
evolve: use in code filtered error for 4.6
Things have been upstream into core for a while, let us use them instead of the
evolve version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 15:51:44 +0200] rev 3690
documentation: refer to 4.3 in the help text
Minimal version supported is now 4.3. Drop reference to 4.2 in the help.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:14:34 +0200] rev 3689
topic: remove compatibility for older version in discovery wrapping
Support for 4.1 and 4.2 has been dropped.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:01:24 +0200] rev 3688
obscache: drop compat layer to access public changeset
We can now access precomputed sets. (compat to 4.1 and 4.2 dropped)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:00:12 +0200] rev 3687
obscache: drop compat layer for obsmarkers reading
We cna now use a version with the argument we needs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 13:40:57 +0200] rev 3686
template: drop compatibility layer
Support has been dropped for 4.1 and 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 13:35:31 +0200] rev 3685
timer: drop compat layer for time
Support for 4.1 and 4.2 has been dropped.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 11:38:13 +0200] rev 3684
compat: drop support for Mercurial 4.2
Since Mercurial 4.6 is about to be released, we drop support for 4.2 too.
(code still need to be cleaned up).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 11:39:04 +0200] rev 3683
compat: close test-compat branch for mercurial-4.2
Support for this version have just been dropped.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 18 Apr 2018 22:54:11 -0700] rev 3682
evolve: add support for hg >= b4d85bc1
Mercurial commit b4d85bc1 deleted the wireproto module and its
contents are now in various other modules, so we can not even do
unchecked imports of it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:59:12 +0200] rev 3681
discovery: handle deletion of 'wireproto' module
Mercurial commit b4d85bc122bd. deleted the wireproto module and its
contents are now in various other modules, so we can not even do
unchecked imports of it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:55:57 +0200] rev 3680
evolve: handle wireproto module deletion for registering new commands
Module have been deleted in b4d85bc122bd. We can no longer import it blindly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:53:59 +0200] rev 3679
minitopic: handle wireproto module change from b4d85bc122bd
This module have been scattered in other place, so we need to detect and handle
this for 4.6+
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:50:24 +0200] rev 3678
topic: handle wireproto module change from b4d85bc122bd
This module have been scattered in other place, so we need to detect and handle
this for 4.6+
Martin von Zweigbergk <martinvonz@google.com> [Wed, 18 Apr 2018 22:36:54 -0700] rev 3677
obsexchange: remove unused import of wireprotoserver
This seems to be unused since 300d7d019b9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 18 Apr 2018 10:08:05 +0200] rev 3676
compat: rename resolvepartialhexnodeid to resolvehexnodeidprefix
The name changed in 5f8f013e7d52
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 19:42:46 +0200] rev 3675
compat: access datestr in a way compatible with verison prior to 4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 19:42:26 +0200] rev 3674
compat: fallback to compatible partial lookup prior to 4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 18:30:56 +0200] rev 3673
import: adapt to fd1dd79cff20
With the latest state of the code, the patch is passed to "import try one" as
parsed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 18:10:53 +0200] rev 3672
import: grab the expected node value on the fly
We no longer parse the patch beforehand this will reduce inconsistency with
newer API.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 17:58:12 +0200] rev 3671
import: use a less direct approach to store the expected node
This will help later refactoring.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 15:45:58 +0200] rev 3670
compat: adapt `amend --patch` to the new `patch.extract` API
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 15:04:15 +0200] rev 3669
compat: deal with change in the wireproto module
Martin von Zweigbergk <martinvonz@google.com> [Mon, 16 Apr 2018 12:46:23 -0700] rev 3668
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 20:18:10 +0200] rev 3667
topic: allow '.' in topic names
This is also commonly used.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 16 Apr 2018 10:58:06 -0700] rev 3666
relocate: look up partial nodeids in unfiltered repo
This accidentally changed to using the filtered repo in commit
0f0f3135.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 17:11:27 +0200] rev 3665
compat: avoid using partial node ID in lookup
This is getting deprecated in 4.6.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 00:05:54 +0200] rev 3664
test: apply output change from protocaps
CORE-TEST-OUTPUT-UPDATE: afcfdf53e4b5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 15 Apr 2018 23:24:03 +0200] rev 3663
test: update output to match upstream
The exact wording for filtered error has been changed.
CORE-TEST-OUTPUT-UPDATE: ecd3f6909184
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Apr 2018 09:26:28 -0700] rev 3662
evolve: don't pass stringified int to repo.__getitem__
We were doing repo['-1'], which is now deprecated. Switch to
repo['tip'], which is much clearer anyway (I initially thought this
was nullrev and sent an incorrect patch until Pierre-Yves corrected
me).
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Apr 2018 07:23:34 +0200] rev 3661
patch: offer the user a chance to fix the patch if it fails to apply
The experience is still not great, but better than purely dropping the changes.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 23:48:06 +0530] rev 3660
amend: add a new flag `--patch` to `hg amend`
This patch adds a new flag `--patch` to `hg amend` which pops up an editor with
the patch of working directory parent which you can change, and when you exit
the editor the patch with changes is applied to current working directory with
old changeset being obsoleted in favour of new one created by the applied patch.
If supplied filenames, only those filenames are present in the popped editor and
rest files stay the same way in the commit as they were.
The extension of the file which opens up in editor is '.diff', we cannot have it
as '.patch' as there will be develwarns related to that. We need to change to
patch core and undo some change to achieve this.
The implementation does not use any core API rather it has picked chunks from
API which are required. One main reason to not use core import API is that we
have to change wdir parent before using patch.patch() which I will like to avoid
to make sure we handle merge cases too. While writing this patch I have spend
lot of time try to use internal API's to work for this but none of them served
the purpose well. If I have time in future and work on similar problem again, I
am going to write better high-level API's which uses patchstore to achieve this.
A new test file test-amend-patch.t which contains a lot of testing of the
feature.
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Apr 2018 13:30:28 +0800] rev 3659
stablerangecache: include units in ui.progress() calls
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Apr 2018 13:28:30 +0800] rev 3658
stablerange: include units in ui.progress() calls
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 20:00:43 +0530] rev 3657
tests: add test demonstarting issue5833 is fixed
Previous patch which fixed issue5832 also fixed issue5833 as the root cause for
both was same. This patch adds test of issue5833 as well.
CHANEGLOG entry is also added for the fixed issues.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 20:13:27 +0530] rev 3656
utility: convert node from MultipleSuccessorsError to rev numbers (issue5832)
utility.builddependencies() deals with rev numbers but MultipleSuccessorsError
returns nodeid which breaks the function and also breaks instability resolution.
Previou patch demonstrate the breakage. This patch makes sure we convert those
nodeids to rev numbers before processing ahead.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 15:35:57 +0530] rev 3655
tests: add a test demonstarting issue5832 traceback
The traceback will be fixed in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 14:56:27 +0530] rev 3654
CHANGELOG: add an entry about `hg evolve --abort`
Previous patches added a new flag `--abort` for `hg evolve` which aborts an
interrupted evolve. Currently this only works for orphan resolution cases which
is very common and most people use `evolve` for that. So let's add an entry
about that.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 17:34:51 +0530] rev 3653
evolve: restore bookmarks correctly after `hg evolve --abort`
This patch adds logic to store bookmark movements in evolvestate class and
restore bookmarks to their original place if `hg evolve --abort` is called.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 17:42:32 +0530] rev 3652
topic-ext: restrict the format of topic names
This patch restrict the format of topic names to make sure they consist only of
alphanumeric, '_' and '-' characters.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 23:42:47 +0530] rev 3651
serverminitopic: wrap context.changectx.branch instead of context.changectx
Recently some changes in core resulted in this wrapping of class leading to an
infinite recursion. Let's wrap the particular function instead of wrapping the
whole command.
This fixes test-minitopic.t which was breaking.
Boris Feld <boris.feld@octobus.net> [Fri, 06 Apr 2018 17:53:41 +0200] rev 3650
templatekw: remove obsfatedata templatekw
Individuals fields are available in core as single template functions.
Kyle Lippincott <spectral@google.com> [Thu, 29 Mar 2018 13:01:05 -0700] rev 3649
evolve: do not exit 1 when there are no troubled changesets (issue5823)
There are possibly other cases we also do not wish to exit non-zero for in this
function, but I did not analyze them closely and am just looking at resolving
issue5823.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Apr 2018 17:54:58 +0200] rev 3648
changelog: add an entry about the memory fixes
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:37:22 +0800] rev 3647
safeguard: use self instead of repo in noautopublishrepo.checkpush()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:36:36 +0800] rev 3646
stablerangecache: use self instead of repo in stablerangerepo.stablerange()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:26:24 +0800] rev 3645
obscache: use self instead of repo in obscacherepo.updatecaches()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Boris Feld <boris.feld@octobus.net> [Wed, 04 Apr 2018 16:29:48 +0200] rev 3644
templatekw: fix templatedata for 46
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 31 Mar 2018 11:53:09 +0200] rev 3643
style: fix a couple of pyflakes complains
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 16:43:28 +0530] rev 3642
evolve: add a `--abort` flag for `hg evolve` command
This patch adds a new flag `--abort` to `hg evolve` command which will abort the
interrupted evolve going on undoes the changes created by the evolve command
till now. The changes are bookmark movements, creation of evolved commits,
obsolete the old commits in favor of evolved commits.
In case when user changed things while the interrupted evolve, like did some
actions which created a new commit on top of evolved commits, or changed phase
of evolved commits to public, the evolve fails to abort as we should not strip
out the new commit formed by user neither we can strip the public changeset. The
abort fails and tell user to use `hg evolve --stop` instead.
Right now bookmark movement is broken, and will be fixed in upcoming patches.
Tests are added for the new flag.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 16:38:00 +0530] rev 3641
evolve: don't allow updating or commiting when there is interrupted evolve
We should make things simple in the starting and restrict user from doing things
which can lead to problems.
This is same as the rebase behavior.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:47:49 +0530] rev 3640
evolve: internationalize the entry of --list in hg evolve help
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:37:10 +0530] rev 3639
evolve: add evolvestate as an argument to _finalizerelocate()
This will help us to store bookmark changes to evolvestate to revert them in
case when `hg evolve --abort` is called.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:33:54 +0530] rev 3638
evolve: add evolvestate as an argument to evolvecmd.relocate()
This will help us in passing it to _finalizerelocate() and store the bookmark
changes which happend.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:13:08 +0530] rev 3637
tests: add test about handling phase-divergent merges
We don't handle phase-divergent merges and we should. Upcoming patches will add
the ability to handle them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 14:11:13 +0530] rev 3636
evolve: show a message when evolution leads to no changes to commit
In case of orphan resolution, evolution may result in no changes to commit. This
patch adds a use message in such cases. This is same as the rebase behavior.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 13:48:34 +0530] rev 3635
evolve: pass the instability category to relocate() and _finalizerelocate()
This patch adds category argument to relocate() and _finalizerelocate()
functions to take the type of instability which we are processing so that we
perform actions accordingly.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 12:56:35 +0530] rev 3634
tests: add more tests for solving phase-divergence using `hg evolve`
This patch adds more tests for resolving phase-divergence caused due to fold or
split using `hg evolve` command. The resolution in case of split is not very
good and will be fixed in upcoming patches
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 17:21:42 +0530] rev 3633
evolve: handle interrupted phase-divergence resolution gracefully
This patch adds logic to handle the interrupted phase-divergence resolution by
`hg evolve` command gracefully. We first complete the relocation of the
changeset and then do the divergence resolution. Previous functions moved
required code separate fucntions so that we can use them here.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 16:41:14 +0530] rev 3632
evolve: move logic to resolve phase-divergence in a new function
This patch moves logic which does the revert and create a commit on top of
public changeset because we need to repeat that logic while handling
continuation of `hg evolve` when there are conflicts while rebasing the
phase-divergent changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 16:38:03 +0530] rev 3631
evolve: store the precursor of phase-divergent in evolvestate
This patch makes `hg evolve` store the precursor of phase-divergent changeset in
evolvestate so that we don't need to calculate that again.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 13:17:05 +0530] rev 3630
evolve: move logic to complete interrupted relocation to new fn
This moves logic which completed the interrupted relocation to it's own separate
function as we will need that function in continuing phase-divergence and
content-divergence too.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 12:58:12 +0530] rev 3629
evolve: move logic to complete interrupted orphan resolution to new fn
This patch moves logic which completes an interrupted orphan resolution to it's
own new function. We will defining such functions for completing
phase-divergence and content-divergence too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 19:36:08 +0530] rev 3628
evolve: write data to evolvestate in case on conflicts in phase-divergence
This patch makes phase-divergence resolution write data to evolvestate instead
of graftstate. The `evolve --continue` handling of phase-divergence is broken
which will be done in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 19:16:25 +0530] rev 3627
evolve: explicitly turn revs to list before storing into evolvestate
The cbor library which we are using cannot handle encoding and decoding Python
sets, and revs was set there. Let's convert revs explicitly to list to make sure
we don't try writing sets.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 18:58:19 +0530] rev 3626
tests: add tests of content+parent change creating phase-divergence
This patch adds tests which shows handling of phase divergence cases by `hg
evolve` command which involved content+parent change. The conflicts case is not
handled and will be fixed in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 18:28:37 +0530] rev 3625
tests: show first line of commit message in test-evolve-phase-divergence.t
This patch adds 'firstline' filter to description in the log template.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:49:26 +0530] rev 3624
evolve: make sure bookmarks are moved after phase-divergence resolution
This patch adds logic to move bookmarks from the rebased node to the
phase-divergence resolved node.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:46:46 +0530] rev 3623
evolve: use the new rebased changeset to resolve phase-divergence
When there is a parent change in phase-divergence, `hg evolve` first rebases the
diveregent changeset on parent of public changeset and then continue the
resolution of phase-divergence *but* we used to continue with the old divergent
changeset rather than the new rebased one.
This patch makes sure we use the new rebased changeset to proceed with the
resolution. Tests changes shows that it fixes things which were broken earlier.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:21:09 +0530] rev 3622
evolvecmd: add a detailed comment and some newlines
This patch adds a detailed comment on a chunk and some newlines to make things
look better and more understandable for upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:20:20 +0530] rev 3621
tests: add one more test case about handling of phase-divergence by evolve
This patch adds a test case when phasedivergence is caused by rebase command and
there is parent change involved. As the tests show, we are not handling things
correctly here. Upcoming patches will fix that.
Fixing things in later patches showed there was a wrong case in one another
test which will be fixed by later patches, so let's add description on why that
test is wrong in this patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 15:27:26 +0530] rev 3620
tests: add more tests for handling of phase divergence by `hg evolve`
This patch adds more tests related to handling of phase-divergence by `hg
evolve` command.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 13:16:42 +0530] rev 3619
tests: temporary delete the merge test of handling phase divergence
This patch temporary deletes the merge test of handling phase divergence by `hg
evolve` command to that other important tests can be plugged in before this.
This will make adding more tests easy. As I say, this is temporary to ease out
adding more tests, the test will be added back.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 30 Mar 2018 19:38:55 +0200] rev 3618
tests: various comment on test-evolve-phase-divergence
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 30 Mar 2018 19:37:06 +0200] rev 3617
tests: make test-evolve-phase-divergence more descriptive
This patch adds description to what each part is doing in
test-evolve-phase-divergence.t and some commands which should be used to analyze
the divergence before resolving that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Mar 2018 20:26:54 +0200] rev 3616
compat: use updateresult API if available
The status return is no longer a tuple, we access attribute instead.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Mar 2018 20:13:06 +0200] rev 3615
compat: provide an explicit default value to the 'odiff' config
There is a devel warning about this now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Mar 2018 19:47:48 +0200] rev 3614
compat: keep passing arguments as keyword argument
Otherwise, This break with new changes in upstream Mercurial.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Mar 2018 18:34:32 +0200] rev 3613
compat: search for stringmatcher in the new location
More of util has been split into sub modules.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Mar 2018 14:13:13 +0200] rev 3612
rebase: update the rebase wrapping to works with hg 4.6
Mercurial core commit bd0086bd3af4 removed _makeextrafn hence breaking our
wrapping. Update the code to wrap rebaseruntime directly in a way that's
compatible with hg 4.1+.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 23 Mar 2018 09:08:21 -0700] rev 3611
compat: call current obsolete.createmarkers(), not one from load time
Other extensions may wrap obsolete.createmarkers(). If they do, we
should call their wrapped version. However, since f61a23a84dac
(compat: add wrapper for obsolete.createmarkers() that accepts
"operation" arg, 2018-03-16), we started storing the version of the
function as it was when our compat module was loaded. This broke an
extension we use internally at Google.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:44:06 +0530] rev 3610
tests: rename test-evolve-bumped to test-evolve-phase-divergence.t
While I was here, I added a heading to test mentioning what the test if for.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:39:00 +0530] rev 3609
evolve: replace bumped in function name to phasedivergence
bumped was the old name of phasedivergence. Lets replace with its new name so
that we can forget the old one.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:35:37 +0530] rev 3608
evolve: drop duplicate import of rewriteutil._bookmarksupdater
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:39:18 +0100] rev 3607
obslog: more 4.1 code compatibility drop
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:38:01 +0100] rev 3606
template: drop some 4.1 compatibility code
Simplify all the things.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:35:27 +0100] rev 3605
checkheads: drop upstreamed code
Mercurial 4.2 has all the code that used to live in the evolve extensions so we
can drop it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:34:44 +0100] rev 3604
obslog: cleanup patch handling after 4.1 compat drop
We can remove some of your compatibility code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:25:01 +0100] rev 3603
packaging: further mark 4.1 support as dropped
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:05:50 +0100] rev 3602
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 09:53:42 +0100] rev 3601
tests: extend the globing to the user name
Silly me.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 01:20:03 +0100] rev 3600
branching: close mercurial-4.1 test branch
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 15 Mar 2018 00:09:24 +0530] rev 3599
evolve: kill `--obsolete` and `--old-obsolete` flags for graft
Evolve extension used to add the couple of flags to `hg graft` command for
reasons I don't know but they were deprecated. For the functionality of `hg
graft --old-obsolete`, we have `hg grab` now which can do that.
One more reason to kill this is that we have logic to parse the graftstate,
whereas in core, we are going to change how state files are read and write.
Tweaked the tests a bit to use `hg grab` instead of these flags to make rest of
the test output consistent. Replaced an entry of `hg graft -O` in doc by `hg
grab`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:56:48 +0100] rev 3598
compat: drop support for Mercurial 4.1
This version is over 1 year old and we are dropping support for it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:50:11 +0100] rev 3597
packaging: mark versiond as devel versions
This will help prevent confusion when installing a non-tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:49:04 +0100] rev 3596
packaging: merge stable back into default
Version have been released.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:47:09 +0100] rev 3595
packaging: mark version as devel version
This will help prevent confusion when installing non-tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:45:47 +0100] rev 3594
Added tag 7.3.0 for changeset e4ac2e2c2086
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:35:18 +0100] rev 3593
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:32:54 +0100] rev 3592
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:18:31 +0100] rev 3591
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:06:17 +0100] rev 3590
test-compat: merge stable into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:03:46 +0100] rev 3589
branching: merge future 7.3.0 into stable
Release belong to stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:57:53 +0100] rev 3588
tests: update test output for the stable branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:34:29 +0100] rev 3587
debian: add version 7.3.0 to changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:32:59 +0100] rev 3586
packaging: update version numbers
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:30:06 +0100] rev 3585
changelog: prepare release 7.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:36:10 +0100] rev 3584
tests: updated tested with version
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 17:03:55 +0530] rev 3583
__init__: show some internationalization love
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 17:04:41 +0530] rev 3582
evolvecmd: show some internationalization love
Some outputs are not internationalized because I doubt that they are gonna stay
here for long.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 16:52:46 +0530] rev 3581
utility: make sure prompt text is internationalized
This patch internationlize the prompt text by passing the into mercurial.i18n._
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 17:59:15 +0100] rev 3580
test: do not use revision number
This get confused with older version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 19:30:51 +0100] rev 3579
compat: use mergetoolopts from commands.py
Mercurial <= 4.2 do not have cmdutils.py yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:24:51 +0100] rev 3578
branching: merge stable into default
Some bugfix that we could use here (also getting ready for a release).
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Mar 2018 18:41:31 +0530] rev 3577
evolve: add a `--stop` flag for `hg evolve` command
This patch adds a `--stop` flag for `hg evolve` command. The stop flag lets you
stop the evolution from where you are and let you move to other things if you
want. This fuctionality is great as user can decide to resolve conflicts later
on, stop the command execution, do something else and get back once they has
time or care about resolving them.
As implementation details, it clears the evolvestate, updates to the parent of
working directory clearing the uncommitted changes which also deletes the
mergestate.
A new test file test-evolve-stop.t is added with tests of the new flag added.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 15:20:40 -0700] rev 3576
obsexchange: make compatible with some unreleased 4.5 versions
We don't generally care to be compatible with unreleased versions of
hg, but this is just a one-line change to be compatible with a range
of commits before 158d4ecc03c8 (wireprotoserver: move all wire
protocol handling logic out of hgweb, 2018-03-08), so hopefull it can
be worth it.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 15:46:17 -0700] rev 3575
compat: make override of createmarkers work on wrapped function
If createmarkers() has been wrapped using functools.partial(), the
__code__ attribute won't exist. Fix by unwrapping partial functions. I
tried to find another attribute to use as proxy for the
"__code__.co_argcount < 6", but there were no new functions or similar
added in that commit.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 11:18:47 -0700] rev 3574
previous/next: add -m short form for --merge
This matches core's option to `hg update`.
This patch also covers `hg next`, but test-check-commit.t only lets me
mention one of them.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 17:29:32 +0530] rev 3573
evolve: handle stabilization of merge changeset with both parents obsoleted
This patch adds logic to stabilize an orphan merge changeset having both parents
obsoleted.
The logic tries to first stabilize the merge changeset on successor of second
parent and then stabilize the new changeset formed on the successor of first
parent. We are stabilizing on second parent first and then to second parent to
preserve the first parent's successor as first parent of the merge changeset.
Conflicts can occcur and we can loose processing information, therefore we store
a variable in statefile `orphanmerge` which represents whether we are processing
a merge changeset with both parents obsoleted.
Thanks to Pierre-Yves David for suggesting this way and helping to understand
the correctness of this.
More rigourous test cases for this will be added in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 13:11:55 +0530] rev 3572
state: add __setitem__() for cmdstate class
Adding __setitem__() will help us in setting the value of variables stored in
state files using `state[key] = value` in our code which is very convenient.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 12:58:31 +0530] rev 3571
evolve: preserve the order of merge parents in `hg evolve --continue`
This patch makes sure we preserves the order of merge parents in case of `hg
evolve --continue`.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:41:51 -0700] rev 3570
topics: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:43 -0700] rev 3569
grab: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:34 -0700] rev 3568
touch: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:26 -0700] rev 3567
split: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:17 -0700] rev 3566
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:07 -0700] rev 3565
metaedit: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:59 -0700] rev 3564
fold: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:45 -0700] rev 3563
uncommit: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:40:28 -0700] rev 3562
evolve: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:25 -0700] rev 3561
amend: include "operation" metadata in obsmarkers
This is for the legacy handling support for "hg commit --amend"
case. I picked "amend" because it feels more natural than
"commit". Besides, and more importantly, that's consistent what core
uses.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Mar 2018 10:22:27 -0700] rev 3560
compat: add wrapper for obsolete.createmarkers() that accepts "operation" arg
I want to start passing the operation argument, but hg < 4.3 does not
support it, so we need a compat wrapper. For older hg, the operation
is simply ignored.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 23:26:25 -0700] rev 3559
tests: do not glob out fixed dates
Perhaps these dates historically have not been fixed, but they seem to
be now. I got tired of not being able to use "run-tests.py -i".
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 17:00:01 +0530] rev 3558
evolve: de-duplicate some function calls
_cleanup() was called in continueevolve() and evolve() function too. Let's call
it at a single place for both the cases. Also call progresscb() outside of
conditionals to call it both times.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 16:11:22 +0530] rev 3557
evolve: move deletion of evolvestate out of continueevolve() function
We need to extract some data at evolve() function from evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 16:04:28 +0530] rev 3556
evolve: load evolvestate before passing to continueevolve()
This patch moves some code from continueevolve() to evolve() function so that we
have a loaded evolvestate present in the evolve() function for post processing.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:56:05 +0530] rev 3555
evolve: move the handling for non-continue part in else conditional
This will help us do factor out which operations we want to do for continue,
which for non-continue and which operations we want to do for both of them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 21:21:10 +0530] rev 3554
evolve: move the logic of continuation handling of `hg evolve` in own fn
The function which defines the evolve command is pretty big with all the logic
messed up there. It's better to have individual functions for individual uses.
The movement of code will help in adding more logic to continue part in clean
way. Moreover for implementing `hg continue`, we need all continuation handling
in their own functions, so it will help there too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:24:56 +0530] rev 3553
CHANGELOG: add an entry about next and prev being interactive
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 13:24:57 +0530] rev 3552
prev: show changeset hash in --dry-run instead of rev numbers
rev numbers can change, so it's better to show changeset hash.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 13:13:21 +0530] rev 3551
prev: prompt user to choose parent in case of multiple parents
This patch adds functionality to `hg prev` to prompt user to choose one parent
to update when multiple parents exist.
Surprisingly there were no tests for this case before this patch, I added one
with this patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 12:48:03 +0530] rev 3550
next: cleanup logic around return by returning early
In the cmdnext function, there are some conditionals which returns early and
some which sets a result value to be returned later. Let's return from all the
conditionals early.
There are if, elif and else involved, so it's sure we will end up in one of the
conditional, each conditional will return, so it's guranteed that we are
returning the correct value and returning everytime.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 12:14:39 +0530] rev 3549
next: prompt user to choose child in ambiguity in `hg next --evolve`
This patch makes `hg next --evolve` prompt user to choose a child to evolve and
update when multiple of them exists. This is improvement over previous behavior
where we used to error out saying ambiguous next unstable changeset and told
user to manually use `hg evolve -r rev`. While writing this patch, I am
personally very happy to have this feature as I have encountered this stage many
times and I wanted `next --evolve` to take care of that.
It uses the revselectionprompt thing added in earlier patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:56:50 +0530] rev 3548
next: move logic to evolve the children to it's own function
This patch moves the logic which evolves the children and updates to it in `hg
next --evolve` to it's own function as we want to use that again.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:46:47 +0530] rev 3547
next: prompt user to choose a children in case of ambiguity
This patch adds functionality to prompt user and ask the children to which next
should move to incase of multiple childrens. This is a very nice UI because
otherwise user has to lookup changeset hash, and then manually do `hg update` to
that. In this case we show hash and description so user can choose which one to
update easily.
It is using the interactive revision choosing functionality added in a previous
patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:31:13 +0530] rev 3546
next: show changeset hash in `--dry-run` instead of rev numbers
Rev numbers can change, hence we should show rev hash instead of rev numbers in
dry-run.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 01:27:02 +0530] rev 3545
evolve: make sure we consider all cases in if-else
The part of code which is touched decides on evolution of merge changeset. We
need proper handling of each case there, so before adding logic, let's add
conditional for each case so that upcoming patches are easy to understand.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 14:03:41 +0100] rev 3544
tests: add more cases about stabilization of an orphaned merge commit
This patch adds three more cases related to stabilization of orphaned merge
commits.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Mar 2018 13:47:07 +0100] rev 3543
evolve: fix missing negation
Spotted by Pulkit Goyal.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Mar 2018 12:01:07 +0100] rev 3542
evolve: clarify message for ambiguous destination from split
Message is a bit long, but should be less scary.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 18:24:22 +0530] rev 3541
evolve: prompt user to select destination for stabilization in case of split
This patch adds functionality to prompt user to select a revision when there
exists multiple stabilization destination because of split on multiple branches.
Test are also added for the feature.
I am not sure whether this is the best message which we can show, if people have
suggestions I will like to improve the messages shown in prompt.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 18:36:35 +0530] rev 3540
tests: remove some tests which are moved to dedicated files
The tests in test-unstable.t files are now moved to their dedicated file with
all the cases to that in that file. Let's delete them from here.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:24:35 +0530] rev 3539
next: factor out the logic to update to changeset in another function
This patch moves the logic to update to children changeset during `hg next` in a
separate function because we want to re-use the logic when we will prompt user
to choose a changeset in case of multiple childrens.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 17:59:53 +0530] rev 3538
utility: add a function to prompt user to choose a revision
This patch adds a utility function to interactively prompt user to choose a
revision to proceed in cases when there are multiple revisions which are
candidates.
The function will be used in `hg evolve`, `hg next`, `hg prev` etc. If user
feedback will be good, I plan to move it to core and use it at more possible
places.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 17:20:20 +0530] rev 3537
tests: add a test about evolve stabilizing orphan caused by splits
There are some similar tests lying around in the test suite but they are not
well arranged. I wanted the test suite to be a goto reference for all the
behaviors till the time we get all of them documented.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Mar 2018 11:36:55 +0100] rev 3536
test: fix output after rev-branch-cache has been merged
Mercurial core 2090044a288d added a new revbranchcache part which changed some
exchange-related outputs. Glob them to ease merging with old Mercurial
versions branches.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Mar 2018 09:13:33 -0700] rev 3535
cleanup: remove duplicate import of "obsolete"
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:21:05 +0530] rev 3534
previous: fix behavior on obsolete cset when topic is involved (issue5708)
This patch fixes the behavior of `hg previous` when done on an obsolete
changeset having a successor of different topic.
The underlying code is bit messed up, I wanted to split the topic handling to
topic extension but I have postponed it to next bug.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:15:17 +0530] rev 3533
previous: add test case when it's broken on obsolete cset
This patch adds couple of tests showing `hg previous` is broken on obsolete
changeset when the successor has different topic. Upcoming patch will fix this.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:01:44 +0530] rev 3532
prev: fix the breakage of `hg previous` from obsolete cset
This patch fix the breakage of `hg prev` from obsolete changeset when topic is
involved. We get the topicidx of it's succesor and proceed.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 14:59:10 +0530] rev 3531
prev: add a test case which shows traceback when doing prev on obsolete cset
This patch adds a test which shows how `hg prev` is borken when called from a
obsolete changeset and there is an active topic. The next patch will fix that.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 19:06:14 +0530] rev 3530
tests: add more tests related to stabilization of orphaned merge commit
This patch more tests related to stabilization of orphaned merge commit.
Stabilization of a merge changeset with both the parents is not supported right
now and prints a message on how to do that. Maybe we should do that internally
as a part of `hg evolve` but I need to think about this.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 18:17:50 +0530] rev 3529
evolve: fix stabilization of orphan merge changesets in case of conflicts
As demonstrated by tests added in previous patch, if one of the parent of a
merge changeset has a new version and merge changeset gets, running `hg evolve`
to stabilize that if results in conflicts will lead to lose of other parent of
that merge changeset when we resolve conflicts and do `hg evolve --continue`.
This patch fixes the behavior, by checking whether we are continuing evolving a
merge changeset and if yes, setting the dirstate parents according to that.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 15:29:35 +0530] rev 3528
tests: add a test file of resolving orphaness of merge changesets
This patch adds a new test file named test-evolve-orphan-merge.t which contains
test cases when `hg evolve` try to stabilize a merge changeset which was orphan.
This file contains 20-30% of all the cases as we have got something to fix
before we add tests for rest of the cases. Going by this approach will make sure
we don't live unfixed cases in the test file and the test files does not become
a pile of hacks which are used to get in state when we fix the bugs.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 20:44:51 +0530] rev 3527
grab: gracefully handle the case when we try to grab parent of wdir
Before this patch, we go all the way down to obsmarker creation logic and gets
an error saying that changeset cannot obsolete itself. We should be more smart
here and error out early saying we cannot grab that changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 03 Mar 2018 23:31:46 +0530] rev 3526
grab: move the initialization of pctx variable outside of if-else
The pctx variable is used outside of the if-else but it was initialized
under the conditional statements.
Added test for the case when the initialization inside the if-else broke `hg
grab --continue`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:32:08 +0100] rev 3525
compat: drop hack around http request handling for 4.6
The approach we used in 4.5 works again :-)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:08:53 +0100] rev 3524
obsdiscovery: add compatibility layer to register wireproto command
Mercurial core 0b18604db95e changed the way permissions are registered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:21:07 +0100] rev 3523
compat: pass all hgweb dispatch argument to the orig function
This make use compatible with whatever changes on this side.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Mar 2018 00:00:02 -0500] rev 3522
grab: add short version for continue and abort
Anton Shestakov <av6@dwimlabs.net> [Fri, 23 Feb 2018 20:27:17 +0800] rev 3521
obsdiscovery: include units in ui.progress() calls (issue5773)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 20:19:19 -0500] rev 3520
tests: commit tests changes missing in the previous changeset
(guess who forgot to amend)...
Boris Feld <boris.feld@octobus.net> [Sun, 04 Mar 2018 11:34:49 -0500] rev 3519
obslog: add the operation to the Obslog output
The operation is helpful when debugging a case where we don't know how we
ended up in this case while effect-flag are useful to understand what semantic
changes happens to a changeset.
Add the operation when displaying an obs-marker in the following form:
`rewritten as X using amend`
The other proposal is interesting but seems harder to internationalize and
might requires update each time we introduce new operation:
`Amended as X`
Let's use the first proposal right now.
Sean Farley <sean@farley.io> [Tue, 19 Dec 2017 13:15:00 -0600] rev 3518
serverminitopic: attempt to fix assertion for repoview in branchmap
This seems fine since we topic never impact public only caches.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:41:45 -0500] rev 3517
compat: register a version of 'obsfatedata' template that works with 4.6
Since showlist is deprecated, let us use compatlist.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:09:41 -0500] rev 3516
compat: register a version of 'troubles' template that works with 4.6 API
Since showlist is deprecated, let us use compatlist.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:07:53 -0500] rev 3515
exthelper: add support for "requires" argument for template keyword
This will help use to support the new template API.
Boris Feld <boris.feld@octobus.net> [Sat, 03 Mar 2018 23:17:26 -0500] rev 3514
compat: add compat layer for date related functions
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Mar 2018 22:25:24 -0500] rev 3513
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Mar 2018 22:12:35 -0500] rev 3512
compat: more straight forward alias for old template names
The template registration have significantly changed in core:7b74afec6772. We
take simpler approach to define the alias in a way that works for all versions.
Sean Farley <sean@farley.io> [Tue, 05 Dec 2017 20:45:46 -0800] rev 3511
serverminitopic: fix wrong object being passed to phase
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 19:33:20 -0500] rev 3510
legacy: respect explicit config for server.bundle1
Unconditionally disabling bundle1 is a problem for larger hosting website. We
adopt a less aggressive approach and only disable it the default would be used.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:31:08 -0500] rev 3509
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:30:48 -0500] rev 3508
compat: only wrap wireprotoserver function if they exist
Older version does not need the wrapping so everything should be fine.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:07:33 -0500] rev 3507
pure: make sure what we expect to be list are list
In the pure version, some of these object would be generator.
Boris Feld <boris.feld@octobus.net> [Mon, 26 Feb 2018 13:59:30 +0100] rev 3506
evolve: update code for not implicitly converting ctx to revision
Mercurial core 38f480502043 removed the capacity to implicitly convert
contexts to revisions using `int(ctx)`. Update Evolve code to explicitly call
rev instead.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Feb 2018 11:02:59 +0100] rev 3505
legacy-push: fix the code forbidding legacy obsmarkers pulling
changeset e69e65b2b4a9 in code remove a key try/except. We reintroduce it for
compatibility.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Feb 2018 17:45:50 +0100] rev 3504
updatecaches: handle any new parameters to the method
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 07 Feb 2018 13:42:30 +0530] rev 3503
evolvecmd: fix broken `evolve --continue` ran after `next --evolve`
Recent series broke `evolve --continue`in cases when run after `hg next
--evolve`. The previous patch adds test demonstarting the broken behaviour, this
patch fixes that by storing the command which leads us to evolve --continue in
the evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 07 Feb 2018 22:41:30 +0530] rev 3502
tests: add test showing `evolve --continue` after `next --evolve` is broken
Recent series fixing `hg evolve --continue` break the continue functionality
after a conflicting `hg next --evolve`. This patch adds a test to demonstrate
that. It will be fixed in the upcoming patch.
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 09:39:15 +0200] rev 3501
color: add some colors to evolve command itself
Boris Feld <boris.feld@octobus.net> [Wed, 14 Feb 2018 14:53:43 +0100] rev 3500
wireproto: fix *_capabilities for change of API types
Mercurial commit 2f7290555c96 introduced new types for *_capabilities, update
the code to use them.
Boris Feld <boris.feld@octobus.net> [Wed, 14 Feb 2018 09:46:56 +0100] rev 3499
obsfate: fix changeset description diff computing
Mercurial core 8b6dd3922f70 changed the mdiff.unidiff API. Add a new compat
method for all supported Mercurial versions.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 15:11:35 +0530] rev 3498
evolve: add comptability to read old evolvestate files
When a user runs `hg evolve` with old evolve where we used to write evolvestate
the old ways i.e. without using cbor, and faces conflicts, the evolve is
interrupted. If the user updates evolve before completing the evolve, that can
result in traceback as the new evolve cannot read the old evolvestate file.
The previous patch added function to read old evolvestate file and this patch
uses that when we encounter the above mentioned case.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 15:02:40 +0530] rev 3497
state: bring back the function to read old evolvestate files
Before introduction of this nice cmdstate file wrapper, we had individual
methods to write data to evolvestate file. Let's bring back the function which
used to read data from the old evolvestae file so that we can use it in next
patch for BC purposes.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 00:02:29 +0530] rev 3496
evolve: add entry in CHANGELOG about fixed behavior of `hg evolve --continue`
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 00:00:45 +0530] rev 3495
evolve: store the skippedrevs in evolvestate
While doing `hg evolve`, there are some revs which are skipped as they can't be
evolved. Before this patch, we did not store this information in evolvestate and
neither they were evolved, so `hg evolve --continue` will again try to stabilize
those revisions. As much time as we run `hg evolve --continue`, this will
happen which is not a good behavior.
This patch adds a skippedrevs list to evolvestate where we store such revisions
so that we don't try to stabilize them again.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 29 Jan 2018 00:09:44 +0530] rev 3494
evolve: show the updated working directory after `hg evolve --continue`
`hg evolve` shows a nice message about the new working directory when the evolve
ends but if the evolve is interrupted by conflicts and you continue the evolve
resolving the conflicts, that nice message is lost. Let's have that in case of
`--continue` too.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 28 Jan 2018 23:49:46 +0530] rev 3493
evolve: make `hg evolve --continue` respect `--confirm`
Previous patch added capability to `hg evolve --continue` to continue the rest
of the stack, not just the current revision but that was missing respecting the
`--confirm` flag which user passed earlier. This patch makes sure we respect the
`--confirm` flag.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 24 Jan 2018 13:20:18 +0530] rev 3492
evolve: make `--continue` continue evolving all remaining revisions
This patch makes `hg evolve --continue` to continue all remaining revisions
instead of just the current conflicted one.
There are some still improvements required to this behavior after which the
CHANGELOG entry will be added.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 04 Feb 2018 20:58:03 +0530] rev 3491
tests: add more tests to test-evolve-continue.t
This patch adds more tests for `hg evolve --continue`. The tests demonstrates
how the continuation handling of hg evolve is broken and the later patches fixes
that handling.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 18:52:27 +0530] rev 3490
evolve: handle case when newnode can be None while continuing evolve
There can be case when `hg evolve --continue` is run, when working directory is
clean and there is nothing to be included in the new commit. Let's make sure we
handle such cases correctly and obsolete the node which is evolved with parent
of wdir as successor. This is same as what rebase does.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 28 Jan 2018 19:28:08 +0530] rev 3489
tests: add tests for `hg evolve --continue`
This patch adds a new test file containing tests for `hg evolve --continue`.
The test file still does not contains all the tests related to `hg evolve
--continue` as one of the case is broken which needs to be fixed first. The case
is when resolving a conflicting evolve results in empty wdir.
Next patch will fix the traceback and then a later patch will add more tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Feb 2018 13:00:28 +0100] rev 3488
merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 04 Feb 2018 21:05:03 +0530] rev 3487
CHANGELOG: add an entry about resolve showing how to continue evolve
Matt Harbison <matt_harbison@yahoo.com> [Sun, 21 Jan 2018 16:55:02 -0500] rev 3486
test: explicitly run HGEDITOR shell command with `sh`
Otherwise Windows pops up the "What program do you want to use to open this?"
dialog.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 21 Jan 2018 16:46:31 -0500] rev 3485
test: conditionalize blackbox output for Windows
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Feb 2018 14:36:34 +0100] rev 3484
branching: merge with stable
Yuya Nishihara <yuya@tcha.org> [Mon, 05 Feb 2018 20:58:46 +0900] rev 3483
compat: add wrapper for logcmdutil functions
These classes and functions were bulk-renamed at hg c8e2d6ed1f9e.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 18:35:50 +0530] rev 3482
evolve: store the revs to be processed in the evolvestate
This will help us in getting a full functional `hg evolve` where `hg evolve
--continue` does not only continue one changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 18:18:11 +0530] rev 3481
evolve: store the replacements in the evolvestate
This will greatly help when we will be implementing `hg evolve --abort`.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 18:13:52 +0530] rev 3480
evolve: store the target category in evolvestate
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 17:54:27 +0530] rev 3479
evolvecmd: use the evolvestate object passed as argument in _solveunstable
Earlier if get a merge conflict, we used to initialize a new evolvestate object
and used to save it. Let's start using the state object which we get in as
argument as that will contain more data about the state.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 17:44:57 +0530] rev 3478
evolvecmd: pass evolvestate object to _solve* functions
This patchs adds an argument evolvestate to _solve* functions. This will help us
in having one evolvestate object which we can pass around various functions and
keep storing what's going on.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 17:29:56 +0530] rev 3477
evolve: create a state object in all case
Let's create a state object even when we are not in the continue mode. This will
help us passing the state object to rest of the functions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Feb 2018 14:29:18 +0100] rev 3476
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Feb 2018 13:59:33 +0530] rev 3475
grab: preserve phase of the grabbed changeset
This patch fixes the wrong behavior of loosing secret phase of the grabbed
changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Feb 2018 13:45:47 +0530] rev 3474
tests: add a test showing grabbing of secret changeset turn it into draft
This patch adds a test showing wrong behavior of `hg grab` command which looses
the secret phase while grabbing a secret changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 02 Feb 2018 15:37:00 +0530] rev 3473
grab: add grab info to cmdutil.afterresolvedstates
This will help us in showing how to continue the grab when user resolves all the
conflicts.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 27 Jan 2018 21:15:27 +0530] rev 3472
evolve: add evolve info to cmdutil.afterresolvedstates
Adding evolve info to cmdutil.afterresolvedstate will improve the ui when we run
into merge conflicts while evolving. Once we resolve all the conflicts using `hg
resolve`, this will show a message saying "continue: hg evolve --continue".
Other extensions like rebase and shelve also use it and it's very helpful.
Boris Feld <boris.feld@octobus.net> [Mon, 29 Jan 2018 17:32:08 +0100] rev 3471
doc: add link to roadmap
Add a link to the Evolution roadmap in the main page of the documentation.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 19:32:34 +0530] rev 3470
evolve: move the evolve command to evolvecmd.py
This patch moves finishes the code movement by moving the evolve command to
evolvecmd.py.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 21 Jan 2018 20:33:39 +0530] rev 3469
evolve: move _orderrevs() function evolvecmd.py
_orderrevs() is a function which is used to order the revs in which the
instability needs to be solved if we have multiple revisions to resolve.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 21 Jan 2018 20:28:06 +0530] rev 3468
evolve: move builddependencies() and _singlesuccessor() to utility module
The builddependencies() and _singlesuccessor() function are very useful
functions and can be used at a lot of places. They are also used in topic
extension also, so let's move them to utility. However moving them to utility
won't help anything in the topic extension.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 17:29:48 +0530] rev 3467
utility: move MultipleSuccessorsError from __init__.py
The MultipleSuccessorsError is required in multiple modules in upcoming patches,
so let's move it to utility first.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 16:44:00 +0530] rev 3466
evolvecmd: move more core from __init__.py to evolvecmd.py
We are done with moving helper code, we will now be moving the evolve command in
the new module.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 16:00:21 +0530] rev 3465
evolvecmd: move code from __init__.py to evolvecmd.py
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 15:55:38 +0530] rev 3464
evolvecmd: move more code from __init__.py to evolvecmd.py
We are now very close to have most of the evolve related code in evolvecmd.py.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 15:22:28 +0530] rev 3463
evolvecmd: move more chunks of code from __init__.py to evolvecmd.py
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 15:04:12 +0530] rev 3462
evolvecmd: move more functions from __init__.py to evolvecmd.py
If things are looking ugly, hold on.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 19 Jan 2018 14:42:46 +0530] rev 3461
evolvecmd: introduce a new module to handle `hg evolve` related code
__init__.py is to cluttered with wrapping and all, it's better to move code
related to evolve command to new a module which will help us in great
refactoring and introducing nice and better flow of data through functions.
There is a temporary import cycle is introduced which will be fixed in the
series.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 18 Jan 2018 16:57:19 +0530] rev 3460
evolve: remove not required calls to phases.retractboundary()
To make sure phases are preserved during evolve, we started using the
phases.new-commit config option. Now we don't need to call
phases.retractboundary(). Let's remove the redundant code.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 16 Jan 2018 17:14:32 +0530] rev 3459
evolve: store the replacements occurred during `hg evolve` at top level
This patch starts storing the replacements made during the `hg evolve` command.
The current dictionary is not used anywhere but will be used in future as we
want to introduce abort functionality, so we want to delay writing of
obsmarkers, storing these exchanges in statefile etc.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 27 Jan 2018 16:13:19 +0530] rev 3458
evolve: make the _solve* functions return a tuple
This patch makes _solve* functions return a tuple which will contain information
about whether we were able to solve the instability and if yes, then what was
the newnode. For more details about tuple, look the fn docs added.
There was some refactoring required in next command because of change in return
values. This also leds to omitting the wdir update message in case of dry-run
which is good.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 17 Jan 2018 19:12:32 +0530] rev 3457
evolvestate: rename the file to state.py and class name to cmdstate
The evolvestate.py and the evolvestate class in it were introduced to help `hg
evolve` grow continue and abort options. But the class and it's API can be
easily used to store state information for other state files like we stored the
information for grab state in the previous commit. Let's rename the the file and
class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 Jan 2018 17:55:16 +0100] rev 3456
branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 24 Jan 2018 09:55:12 -0800] rev 3455
update: show "use 'hg evolve' to..." hint iff evolve command enabled
Before this patch, one had to enable *all* commands (by including
"allnewcommands" in the experimental.evolution config) for the hint to
be shown.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Jan 2018 17:29:21 -0800] rev 3454
obslog: drop period from summary line in accordance with convention
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 20:03:20 +0530] rev 3453
grab: add a command to grab a commit and update to it
This patch adds anew command `hg grab` which will pick a commit and put it on
the top of the working directory parent and updates to it.
Earlier grab was an alias for `hg rebase -r <rev> -d .` which is now deleted to
make sure `hg grab` resolves to the grab command and that alias.
Continuing interrupted grab functionality is also there using the evolvestate
class.
Tests are also added for the new introduced command.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 14:10:59 +0530] rev 3452
amend: query the wdir parent after taking lock (issue5266)
If we query wdir parent without taking a lock, that can lead to bugs because the
wdir parent can change is another process has changed the wdir parent.
One such example of this was issue 5266. When a user is running amend and that
amend is waiting for commit message, the user runs another amend which waits for
lock. The second amend is waiting for lock, but has already read the description
from the parent of working directory to use. Once the first amend completes the
wdir parent changes but we still have the description from an old wdir parent.
This patch fixes the bug by querying the description after taking lock.
Attempts were made to add test for this but the results were unstable because
they depend on time in which lock is released.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 13:44:32 +0530] rev 3451
fold: make sure we move bookmarks after folding (issue5772)
The rewriteutil.rewrite() API currently only handles moving bookmark from a old
node to new node. In case on fold, we have multiple old nodes, from where a
bookmark move is possible. The rewriteutil.rewrite() API is used by another
commands also and it's not good to plug in some logic there. This patch handles
bookmark movement from all the old nodes to the new node.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 13:33:58 +0530] rev 3450
tests: add a test showing bookmark not moving in-case of `hg fold`
This patch adds a test showing that bookmark is not moved when doing `hg fold`.
This test represents issue 5772.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:20:29 +0100] rev 3449
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:19:17 +0100] rev 3448
test: update test output ot reply caps size change
CORE-TEST-OUTPUT-UPDATE: 2e703ed1c713
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:11:20 +0100] rev 3447
branching: merge default test output into stable
Mercurial 4.5 has been merged, we update the expected test output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Jan 2018 15:08:09 +0100] rev 3446
branching: open Mercurial 4.4 compatibility branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:55:23 +0100] rev 3445
branching: merge release 7.2.1 into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:48:26 +0100] rev 3444
packaging: mark source as development version
This help avoiding consusion
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:53:25 +0100] rev 3443
Added tag 7.2.1 for changeset 6c772398eb4e
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:11 +0100] rev 3442
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:10 +0100] rev 3441
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:38:09 +0100] rev 3440
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:32 +0100] rev 3439
packaging: prepare version 7.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:44:02 +0100] rev 3438
branching: merge with tutorial output update
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:53 +0100] rev 3437
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:52 +0100] rev 3436
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:28:40 +0100] rev 3435
test-compat: merge stable into mercurial-4.3
Boris Feld <boris.feld@octobus.net> [Sat, 20 Jan 2018 12:26:39 +0100] rev 3434
tutorial: docgraph output seems to have been dedented
Update the outputs following latest version of docgrpah and its dependencies.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 12:17:06 +0100] rev 3433
test: update output for more verbose blackbox
CORE-TEST-OUTPUT-UPDATE: 853bf7d90804
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:59:36 +0100] rev 3432
test: update with new 'update' hint about obsfate
CORE-TEST-OUTPUT-UPDATE: 35a0f6f31eef
Martin von Zweigbergk <martinvonz@google.com> [Sat, 13 Jan 2018 14:35:49 -0800] rev 3431
evolve: update output for wider reporting of troubled changesets
CORE-TEST-OUTPUT-UPDATE: 1a09dad8b85a
Boris Feld <boris.feld@octobus.net> [Fri, 19 Jan 2018 19:18:05 +0100] rev 3430
test: update output for new `merge --abort` message
Core have updated its command to cancel a failed merge, update the test output
to match it.
CORE-TEST-OUTPUT-UPDATE: 41ef02ba329b
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:13:21 +0100] rev 3429
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:11:48 +0100] rev 3428
changelog: mention 4.5 compatibility
Martin von Zweigbergk <martinvonz@google.com> [Sat, 20 Jan 2018 11:07:18 +0100] rev 3427
trouble-reports: yield to in code reporting of new troubles
Mercurial 4.5 has the feature in core, let core do the reporting in this case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Jan 2018 20:41:58 +0100] rev 3426
caches: fix automatic warming trigger
The caches were supposed to get warmed when we receive a push. However the
transaction created when we -issue- a push use a similar name and was confusing
the detection.
We now properly detect the case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Jan 2018 11:02:44 +0100] rev 3425
changelog: mention the packaging bugfix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Jan 2018 20:16:26 +0100] rev 3424
packaging: properly install the evolve.thirdparty module
It is properly added to the Manifest.in but that is not enough. We need to find
another tool capable of catching things.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:53:09 +0100] rev 3423
branching: merge release tags into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:50:38 +0100] rev 3422
packaging: mark source as development version
This help avoiding consusion
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:48:57 +0100] rev 3421
Added tag 7.2.0 for changeset bf6b859807ba
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:41:48 +0100] rev 3420
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:38:04 +0100] rev 3419
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:35:34 +0100] rev 3418
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 04:32:43 +0100] rev 3417
branching: merge stable back into default
The test change has to be reverted.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 03:35:24 +0100] rev 3416
branching: merge further compat change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 02:23:35 +0100] rev 3415
branching: merge further compat change into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 01:18:05 +0100] rev 3414
branching: merge more compatibility fix into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:47:40 +0100] rev 3413
packaging: merge 7.2.0 into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 20:45:13 +0100] rev 3412
tests: update test output to match 4.4
The stable branch is sitll 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 19:52:00 +0100] rev 3411
branching: backed out test output changes from core-1905aac253f0
This backs out evolve-ae6fddf39933
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 19:42:44 +0100] rev 3410
branching: backed out test output changes from core-02fdb8c018aa
This backs out evolve-1905aac253f0.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 03:34:31 +0100] rev 3409
compat: fix argument check for marker reading
The previous check was broken for 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 02:21:44 +0100] rev 3408
cachevfs: use a compatibility later for all access
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 01:11:47 +0100] rev 3407
diff: drop default argument value
This argument use the default value for an argument not available in earlier
version. So we just stop passing the argument.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Jan 2018 00:58:02 +0100] rev 3406
test: use hash in test-evolve-topic.t
This helps testing compat with older version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:45:46 +0100] rev 3405
packaging: prepare version 7.2.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 21:44:22 +0100] rev 3404
changelog: prepare for coming release
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 20:51:22 +0100] rev 3403
stablerange: add missing licence and copyright header
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:07:09 +0530] rev 3402
obshistory: pass the csets description in getmarkerdescriptionpatch
Previous patches removed any use of ctx in the function and we now just need the
cset description in the function. Let's pass that only. This will save couple
of calls of repo[node].
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 17:54:34 +0530] rev 3401
obshistory: remove the unused function
The function is not used anymore.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 17:11:10 +0530] rev 3400
obslog: add header to the changeset description diff
This patch adds `diff -r <hash> -r <hash> <filename>` header to the output of
the changeset description diff which is shown using the --patch flag of obslog
command.
This fixes the label/color issue for description diff also.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 16:30:46 +0530] rev 3399
obslog: colorize the description diff shown in obslog -p
This patch colorizes the description diff shown in `hg obslog -p`. The labels
for the header are different from that of the patch as the main header which
says `diff -r <somehash> -r <somehash> <filename>`. Next patch will hack to add
that.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 19:47:43 +0530] rev 3398
obslog: colorize the patch shown using `hg obslog -p`
This patch adds color support to the patch shown in obslog command.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 04:09:50 +0530] rev 3397
topic: suggest using topic when user creates a new head on branch
This patch adds a message to use topics when user creates a new head on a
branch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 15 Jan 2018 18:41:29 +0100] rev 3396
changelog: update changelog with some of the benefit from the new format
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:36:05 +0530] rev 3395
evolve: use better words in conflict markers of `hg evolve`
Though we call merge.graft internally, we still have the functionality to pass
the words we want to show up in conflict markers. So let's use better words
here.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 11 Jan 2018 18:38:09 +0530] rev 3394
tests: add a test demonstrating we still use graft in conflict markers
This patch adds a test which shows that we still use the word graft in the
conflict markers. Next patch will start using evolve instead of graft.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 15:59:35 +0530] rev 3393
evolve: remove the old functions for writing evolvestate
Previous patch made all the users of these functions to use the evolvestate
class and now they are not required. Let's remove them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 15:57:43 +0530] rev 3392
evolve: use the new evolvestate class in place of old methods
Earlier we had three methods, which used to handle all the storage around the
evolvestate but in previous patch we have introduced an evolvestate class
wrapper which can serve for all our needs. This patch replaces the existing
usage of the evolvestate with the new class introduced.
Upcoming patches will start using the class at more places.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Jan 2018 14:53:01 +0530] rev 3391
evolvestate: add a class to wrap the state of `hg evolve` command
This patch adds a new file which contains a class which will act as a wrapper
for the data to be stored or used during the `hg evolve` command. This patch
just introduces the file and does not use it at the moment. The upcoming patches
will start using it.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 12 Jan 2018 19:23:29 +0530] rev 3390
evolve: start vendoring third party package cbor
This patch adds a third party package named cbor. cbor is a data serialization
format and this library provides API to convert Python Objects into cbor
formatted data. To know more about cbor, hop onto cbor.io
The files are copied from it's official bitbucket repository which is at
https://bitbucket.org/bodhisnarkva/cbor/src/113f42203c941470c98f7174065ba9b384cff727/
cbor.py can be found at
https://bitbucket.org/bodhisnarkva/cbor/src/113f42203c941470c98f7174065ba9b384cff727/py/cbor/cbor.py
# no-check-commit as we are importing a third party package
Modified test-check-flake8.t to not lint on thirdparty packages.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 20:01:50 +0530] rev 3389
uncommit: add a new flag `--revert` to discard wdir changes after uncommit
This patch adds a new flag to `hg uncommit` using which one can discard the wdir
changes which are left after the operation. Both the changes, the ones which
were before the uncommit and the ones which were added to wdir as a result of
uncommit as cleared out.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 15:39:47 +0530] rev 3388
evolve: use phases.new-commit config to retain phase information (issue5720)
Since the previous patches replaced the use of graftstate with evolvestate and
we don't graft anymore on evolve --continue, we have now the capability to fix
underlying bugs. This patch makes sure we use the phases.new-commit config to
make a new commit of the same phase as that of the predecessor.
Tests added in the previous patch shows the bug being fixed.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 15:33:57 +0530] rev 3387
tests: add a test demonstarting lose of phase in `hg evolve`
This patch adds a new test file which demonstrates the lose of phase information
when hg evolve command runs into conflict. This is algo bug5720. The upcoming
patch will fix it.
A new test file is added as existing test files serve their own purpose and are
already cluttered.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 06 Jan 2018 19:07:43 +0530] rev 3386
evolve: add a utility fn to check validity of opts passed to `hg evolve`
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 06 Jan 2018 18:48:15 +0530] rev 3385
evolve: don't use graftstate for continuing `hg evolve`
Before this patch, if user runs `hg evolve`, we read the evolve state, write a
graftstate from that information and run graft command. This patch replaces that
logic with new logic which does not depends on the graft state.
The new logic is very filtered part of logic from graft command. We did not
require a lot of opts checking and filtering revs logic from the graft command
as our use case is fixed.
This is the start of series/work which will make `hg evolve` better and have
a good statefile for itself.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 09 Jan 2018 23:42:57 +0530] rev 3384
topics: add a new templatekeyword `topic`
This patch adds a new templatekeyword topic which can be used to list the topic
of the changeset when using commands which supports templating.
Boris Feld <boris.feld@octobus.net> [Wed, 10 Jan 2018 10:54:02 +0000] rev 3383
packaging: update MANIFEST.in to include new tutorial files
I forget to update the MANIFEST.in file when important the new tutorial files.
This commit fix that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:42 +0100] rev 3382
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:40 +0100] rev 3381
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:40:39 +0100] rev 3380
test-compat: merge stable into mercurial-4.3
Boris Feld <boris.feld@octobus.net> [Wed, 25 Oct 2017 11:27:04 +0200] rev 3379
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net> [Tue, 04 Jul 2017 14:55:50 +0200] rev 3378
test: add missing cycle test
Also fix precursors to break on obs markers cycles.
Boris Feld <boris.feld@octobus.net> [Mon, 08 Jan 2018 17:38:58 +0100] rev 3377
Small typos fixing in the topic tutorial
Boris Feld <boris.feld@octobus.net> [Mon, 08 Jan 2018 11:46:53 +0100] rev 3376
doc: import the training support
Import the training support which was stored in a private-repository before.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 23:20:30 +0100] rev 3375
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 05 Jan 2018 17:15:43 +0530] rev 3374
evolve: use new trouble names in commit messages
There is case when we add trouble to the commit message while using `hg evolve`.
This match makes sure, we use the new trouble names. The hash changed because it
depends on commit messages.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Dec 2017 08:19:07 +0530] rev 3373
evolve: use compat.TROUBLES to show troubles in user interface
compat.TROUBLES is a dict which contains the trouble name for each trouble
according to the hg version user is using.
All of the replacements are related to `hg evolve` command.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 04:09:02 +0530] rev 3372
topics: list only topic names in quiet mode
This will be helpful in bash completion.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 23:51:18 +0530] rev 3371
topics: take logic to parse username to a separate function
In next patch we will be adding support to `hg stack` to show users, and this
logic will be required there too. So let's take it out in a separate function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 22:50:21 +0100] rev 3370
changelog: fix a typo in the changelog
There is probably many others but that one is fixed now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:37:19 +0100] rev 3369
caches: switch to 'auto' warming by default
This options seems good let us make it the default.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:26:59 +0100] rev 3368
caches: add a 'auto' option for obshashrange cache warming
This option will only warm the cache when used as a server.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:26:51 +0100] rev 3367
caches: extract some config reading in 'shouldwarmcache'
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 03:35:07 +0100] rev 3366
caches: pass the transaction to the "shouldwarncache" logic
This will allow to have smarter mode about cache warming (eg: only warm them for
server transaction.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 22:17:27 +0100] rev 3365
caches: record 'desc' attribute on transaction
This is useful to know if a transaction if server side or not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 05 Jan 2018 04:37:49 +0100] rev 3364
caches: protect against missing connection
If the connection cannot be established, we should not try to use it.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 27 Dec 2017 05:01:30 +0530] rev 3363
evolve: don't show working directory obsolete message if we were on it
This patch tweaks showing wc obsolete message functionality to not show the
message if the operation led us to the same changeset we were on before and it
didn't obsoleted it. This make failed updates, update on current changeset and a
pull with no change omit showing the message.
This has some cons like if you are on rev 1 which is obsolete and you do `hg up
<revset>` where revset is some revset which resolves to the rev 1, we won't show
the warning as shown earlier.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 03:12:54 +0530] rev 3362
prev: jump to parent's successor if parent is obsolete and topic is involved
`hg stack` shows a linear chain of commits even when they are not linear chain
and some changesets are obsoleted and have successors as separate head. This is
very nice to have a post evolution view of the stack. However when `hg prev` is
run on an unstable changeset whose parent is obsolete and does not topic but
parents successor has the topic, it shows no parent on the topic.
This patch makes `hg prev` update to parent's successor and make things follow
the stack order.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Dec 2017 03:08:22 +0530] rev 3361
tests: add a test showing wrong behaviour doing `hg prev` on orphan cset
If there is an unstable changeset in the topic stack, whose parent is not a
part of stack but has a successor which is part of stack, hg stack does shows
them in linear order, but `hg prev` on that orphan changset says no parent on
that topic. However it should update to the successor of the changeset.
It will be fixed in the next patch.
Boris Feld <boris.feld@octobus.net> [Fri, 05 Jan 2018 09:51:07 +0100] rev 3360
test: update output to 02fdb8c018aa
Now that we have directaccess in core, we get a new warning message when
updating to a hidden changeset. Update the tests.
CORE-TEST-OUTPUT-UPDATE: 02fdb8c018aa
Boris Feld <boris.feld@octobus.net> [Fri, 05 Jan 2018 09:23:09 +0100] rev 3359
test: update output to 9b3f95d9783d
The unstable graph nodes are now shown with the character "*", update the test
outputs.
CORE-TEST-OUTPUT-UPDATE: 9b3f95d9783d
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 06:12:02 +0100] rev 3358
stablesort: use parent filtering in a place we forgot to
Freak merge striked again.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 06:18:50 +0100] rev 3357
obshashrange: add a progressbar to upgrade
This section is the slowest, have some progress idea would be useful.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:29:02 +0100] rev 3356
stablerange: add an sql index on subranges id too
This should speed up query that find super ranges.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:14:05 +0100] rev 3355
obshashrange: less brutal reset when receiving markers on existing node
We now target the affected ranges only. The implementation is still slow but
that should be better than what we had before.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:39:45 +0100] rev 3354
obshashrange: update the cache updating logic
Use the more modern option when available. (Same as the other caches).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:24:37 +0100] rev 3353
stablerange: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:23:45 +0100] rev 3352
stablesort: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:22:36 +0100] rev 3351
firstmergecache: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:21:53 +0100] rev 3350
depthcache: cleanup the update logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:12:02 +0100] rev 3349
changelog: add an entry about the obshashrange changes
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 04:35:40 +0100] rev 3348
stablerange: be more cautious when deleting the sql connection
This triggered some crash in further development. This also match what is done
elsewhere with this attribute.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:42:54 +0100] rev 3347
stablerange: clarify sql transaction logic
This should help concurrent access.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:30:13 +0100] rev 3346
stablerange: use mergepoint based algorithm for the official stable range
Changing the official stable range will impact all users of the infrastructure.
We update version number of the cache file and discovery methods to clarify
this.
We do no keep compatibility with the old method over the wire. The new algorithm
is much better and keeping compat is more work than we have time for right now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 03:07:14 +0100] rev 3345
stablerange: explicitly create a stablerange entry for branchpoint method
We are about to change the default.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 02:17:29 +0100] rev 3344
stablerange: have a mergepoint based sql backed class
Everything is so generic that getting a class is 3 line of codes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 02:11:34 +0100] rev 3343
stablerange: introduce a sql backed version of the generic on disk cache
This is getting use close to actually using the new sorting and algorithm for
real.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 01:11:01 +0100] rev 3342
stablerange: add a base class for on disk stored stablerange class
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 02:13:19 +0100] rev 3341
stablesort: use on disk cache for test
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 02:01:58 +0100] rev 3340
caches: factorise the cache warming check
The old conditional was duplicated and hard to read. We factorise everything
into the `utility` module.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 00:06:07 +0100] rev 3339
stablerange: use repo-carried stablesortcache
That one is common to all and disk persisted
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Dec 2017 00:34:31 +0100] rev 3338
stablesort: expose the cache through the repository
Let have a unique instance, keep it warm and accessible.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 10:38:52 -0500] rev 3337
stablesort: implement an ondisk cache
Persisting the cache on disk will be important for large repositories.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:45:11 +0100] rev 3336
stablesort: realign a misaligned continue
We should make a better use of the jump cache now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:42:28 +0100] rev 3335
stablesort: remove some dead code
This closure is no longer in use.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 23:08:31 +0100] rev 3334
stablesort: abstract all cache access
This prepare an on disk version of the cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 20:04:50 +0100] rev 3333
stablerange: use first merge cache to skip over linear section
If we are to skip over a large section of the range, skipping everything until
the first merge seems like a good idea.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 20:46:10 +0100] rev 3332
stablerange: add a new 'firstmerge' cache
This cache store the first merge ancestors of a changesets. This is useful to
avoid iteration over the changelog when building stablerange.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 20:17:11 +0100] rev 3331
stablerange: drop unused `until` utility
We no longer needs this function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 19:47:19 +0100] rev 3330
stablerange: use cached size data instead of walking the graph
Less iteration is better.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:56:38 +0100] rev 3329
stablesort: record previous segment size in the jump
That was, we can skip over a full jump without walking it. We'll make use of
this in the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:59:14 +0100] rev 3328
stablesort: move jump recording inside the exclusive function
This will allow use to record to cache size of segment in a later changeset. If
the exclusive set is empty, we need to record it outside that function.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 17:49:41 +0100] rev 3327
stablerange: compute jump size after jump retrieval only
This prepares the caching of jump sizes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:49:48 +0100] rev 3326
stablesort: warm jump cache more efficiently
We no longer for a full depth iteration for all request:
- we exit early for non-merge,
- for merge, we only iterate over the exclusive area.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:39:56 +0100] rev 3325
stablesort: use a regular dict for jumps
This will help knowing what revision we have already queried or not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 15:51:05 +0100] rev 3324
stablerange: use the jump information for faster iteration
Instead of doing a full iteration over the exclusive set, we compare the jump
information instead. This perform the same kind of logic than before but will
allow for much faster iteration once all the caches are in place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 02:46:05 +0100] rev 3323
stablesort: expose the jumps sequence to other code
The stable range needs it to build exclusive subrange efficiently.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 16:20:26 +0100] rev 3322
stablesort: use 'depth' in mergepoint tie breaker
The parents with the most depth will is considered lower. It has a couple of
advantages.
1) the more shallow parent probably have less exclusive revision,
2) it makes Oedipus merge behave like close to the linear case,
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:41:33 +0100] rev 3321
stablesort: rework jump gathering
The old code was buggy in some case, the new code give the same result as the
'headstart' version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:36:45 +0100] rev 3320
stablesort: stop recording jump type
There are no mature user of this "jump type" data and the current implementation
is known to be buggy. So we drop the logic for now. This will make on disk
storage simpler. The data will be reintroduced later
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:29:02 +0100] rev 3319
stablesort: pass a jump recording function instead of a list
This seems cleaner to abstract the underlying storage to the lower level. This
also makes use more flexible about jump detection.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:27:17 +0100] rev 3318
stablesort: minor indent fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 12:19:59 +0100] rev 3317
stablesort: clarify subcall to the exclusive side
Before doing deeper rework of this logic, we tackle the simplest parts.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 20 Dec 2017 13:18:49 +0100] rev 3316
docgraph: update test output with new output
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 09:04:16 +0100] rev 3315
stablesort: record, cache and reuse jump
Iterating below a merge means two things:
1) iterate over the part exclusive to the higher parents,
2) iterate from the lower parents.
While iterating on the exclusive part, there will be case were we just go the
next natural parent, and case were we'll have to "jump" to another revision. If
we record all point this "jump" happens and their target, we can easily
reproduce the iteration in the future. With that information we can iterate over
the exclusive part of the merge without having to compute it entirely.
In addition we store the reason of the jump. This will help the stable range
processing later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 18:49:34 +0100] rev 3314
stablesort: fix head start computation
The recursion was wrong and provided wrong result.
As a side effect, this seems to hint that `stablesort_mergepoint_bounded` is not
giving the right result for complex set.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 08:36:52 +0100] rev 3313
stablesort: avoid attempting to sort a tuple
This seems silly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 07:20:14 +0100] rev 3312
stablerange: use the filterparents utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 07:10:43 +0100] rev 3311
stablesort: use the filtered parents utility
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 06:50:57 +0100] rev 3310
depthcache: use parents filter in depth cache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 06:48:49 +0100] rev 3309
parents: add a utility to filter parents
There is various strange case of merge out there that needs to be handled. We
add an utility function to handle them all.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 01:53:20 +0100] rev 3308
stablerange: abstract the bit able to store cache into sql
The part about actually storing the range is independent of the algorithm, so we
should extract this before using it for the next iteration.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Dec 2017 00:40:07 +0100] rev 3307
stablerange: split pure algorithm part from the on disk cache
The stable cache file is getting long, we split the logic about keeping data on
disk into a dedicated file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 05:17:04 +0100] rev 3306
stablerange: add an assert to detect buggy range
Nothing can be negative in there, we add an assert to make sure it is so.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 04:57:19 +0100] rev 3305
stablerange: warn cache for all relevant ancestors range
Warming cache in the right order will prevent recursion to happens and unlock
usage on large repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 04:48:15 +0100] rev 3304
stablesort: move parent range computation into its own method
Now that we have running code, we'll need to avoid too deep recursion. We
extract the piece dealing with the parent range before we write more code to
warm it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:58:22 +0100] rev 3303
stablerange: drop the basic inheritance from the 'mergepoint' version
All necessary bits are implemented now (except for warmup which we explicitly
bypass for now).
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 12:12:12 +0100] rev 3302
stablerange: cache known subrange at the stablerangecached level
That way, the 'stablerange_mergepoint' class also benefit from it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Dec 2017 22:05:34 +0100] rev 3301
stablerange: use sort cache to build 'mergepoint' information
Using the walk cache gives use a better complexity we need to scale. There are
further improvement we could make, but this is a good first step.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 03:31:28 +0100] rev 3300
stablesort: make the iteration from head available to all
This will be useful for the stablerange code to work properly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Dec 2017 21:17:28 +0100] rev 3299
depth: fix compare mode for `debugdepth`
The compare mode was broken for silly reasons.
Boris Feld <boris.feld@octobus.net> [Fri, 15 Dec 2017 10:14:42 +0100] rev 3298
memfilectx: changectx argument is not mandatory
As changectx argument is now mandatory for memfilectx, add a compatibility
layer to pass it when necessary.
The commit that made the parament mandatory in core is 8a0cac20a1ad
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 16 Dec 2017 23:52:32 +0100] rev 3297
branching: merge stable into default
Boris Feld <boris.feld@octobus.net> [Thu, 14 Dec 2017 00:53:55 +0100] rev 3296
amend: fix a typo in amend help text related to the extract option
s/extra/extract/
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Dec 2017 13:19:56 +0100] rev 3295
topic: fix compatibility with 4.3
A compatibility fixes ended up being overlooked, we are bringing it back into
the main branch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:18:17 +0100] rev 3294
branching: merge stable back into default
New version has been released, hooray.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:16:54 +0100] rev 3293
packaging: mark stable change as bugfix dev version
This help reduce confusion when installing non-tagged changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:15:26 +0100] rev 3292
Added tag 7.1.0 for changeset 06a3cb594956
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 03:02:25 +0100] rev 3291
packaging: prepare release 7.1.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 04:08:22 +0100] rev 3290
branching: revert "stable" change into default
The expected output for "default" is still the same.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 18:30:15 +0100] rev 3289
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 18:30:14 +0100] rev 3288
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:32:03 +0100] rev 3287
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:12:38 +0100] rev 3286
test: backed out test change from changeset a18ca224e812
The related mercurial changeset, ad5f2b923b0d, is not in the stable branch yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 16:02:42 +0100] rev 3285
test: backed out output change from 85ab7d2d9fd6
Mercurial core default branch does not have the related changeset yet
(a7e49a5b3e6f).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 03:21:46 +0100] rev 3284
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 12 Dec 2017 00:27:08 +0530] rev 3283
obsnote: warn if user try to store a note in obsmarker on an older hg
Support to store a note in obsmarker is from hg>=4.4. We have added notes
support to all the evolve commands but we do support versions which don't
support storing note in obsmarker. Warn if user tries to store a note in older
hg.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 02:16:58 +0100] rev 3282
topic: use 'hookargs' over 'tr.changes' for flow control
The 'tr.changes' attribute do not exists until 4.2.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 01:27:12 +0100] rev 3281
topic: move function wrapping from reposetup to uisetup
Having the function un reposetup means they get wrapped over and over again for
long lived process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 00:16:55 +0100] rev 3280
test: publish the root of the repo in flow reject-untopiced
The lack of default branch confuses older version
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Dec 2017 01:10:44 +0100] rev 3279
genericcaches: handle the lack of util.timer in 4.1
We do the same trick as usual.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Dec 2017 23:47:25 +0530] rev 3278
topics: fix `hg stack` in case of split
This patch fixes the behaviour of hg stack which throws an error in some cases
when there are multiple successors. The case of divergence is not handled yet.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Dec 2017 23:33:50 +0530] rev 3277
tests: add a test showing traceback on `hg stack` in case of split
The traceback will be fixed in the next patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 15:49:22 +0100] rev 3276
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:32 +0100] rev 3275
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:16 +0100] rev 3274
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:33:04 +0100] rev 3273
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Dec 2017 09:21:47 +0100] rev 3272
changelog: add an entry for the split+branch fix
The world needs to know.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 22:08:54 +0100] rev 3271
branching: merge with stable
Boris Feld <boris.feld@octobus.net> [Sun, 10 Dec 2017 21:44:10 +0100] rev 3270
split: force the branch to fix the split bug
Also restore it after the split
Boris Feld <boris.feld@octobus.net> [Sun, 10 Dec 2017 21:41:56 +0100] rev 3269
split: add a test demonstrating that split doesn't take the right branch
Also add a test to check that the dirstate is in the right state in case the
user abort the split.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 05:04:41 +0100] rev 3268
stablerange: compute the subrange closure on an unfiltered repository
This avoid various overhead from filtering.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Nov 2017 10:34:46 -0500] rev 3267
stablesort: write a flat version of the algorithm
This new version never needs to iterate over the full repository even when merge
are encountered.
Having the algorithm flat also prepare caching works since the iteration
sequence can we expressed with a couple of flat loop.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:53:23 -0500] rev 3266
stablesort: simplify processing of non-merge changesets
As long as a changeset as only one parent, the next element in the sort (starting
from the head) has to be that parent. We detect and take advantage of that
shortcut in the non-merge case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:42:23 -0500] rev 3265
stablesort: extract a '_revsfrom' method
Walking from the revision is usually simple unless the revision is a merge.
Having this walking logic isolated will help us refine it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:48:32 +0100] rev 3264
stablerange: use the new cache object in the 'mergepoint' version
Every improvement to the cache should reflect on the stable range from there.
Since we no longer use the basic sort function, we can simplify the inheritance
by dropping one layer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 18:31:37 -0500] rev 3263
stablesort: introduce a cache object
The object is not caching anything yet, but the API are getting into place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 16:05:09 -0500] rev 3262
stablesort: start implementing more advanced version of headstart sorting
Now that we can validate the sort with a basic implementation, we can start
implementing a version that will support caching and other goodies.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:38:48 +0100] rev 3261
stablerange: make use of the limit argument in 'mergepoint'
This will eventually avoid doing full iteration on ancestors of the head when
retrieving the range content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:33:39 +0100] rev 3260
stablerange: introduce a smarte version of stablerange for 'mergepoint'
This implementation will using caching and smarter algorithm based on these
cache. For now it inherit most of it code from the dummy version for
convenience. The inheritance to the dummy version should be dropped eventually.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:26:40 +0100] rev 3259
stablerange: introduce an intermediary abstract class for caching
The 'branchpoint' and 'mergepoint' based stablerange class will need similar
cache, we introduce an abstract class to take care of that first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 01:06:16 +0100] rev 3258
stablerange: introduce a basic-mergepoint method
This method use the new 'mergepoint' based stable sorting. It is expected to be
eventually better than branch point to stable range: more stable, easier to
cache, etc. Having a basic implementation will allow use to validate more
advanced implementation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 26 Nov 2017 11:58:35 -0500] rev 3257
stablesort: add a new test to check for fully independant branches
Apparently, this was not covered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 17:37:37 -0500] rev 3256
stablesort: add a --limit argument
This will be useful when using stable sort within stable range.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 15:14:50 -0500] rev 3255
stablesort: introduce a mergepoint based method focused on head
The things we needs for stable range is head centric. So we simplify the issue
by focussing on head.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 04:09:17 -0500] rev 3254
stablesort: introduce a "mergepoint" method
The mergepoint method decide order from merge. This allow to directly reuse a
the full sort of one of the parent, and should simplify caching.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Dec 2017 00:20:06 +0100] rev 3253
stablerange: fallback to a more naive approach to find subrange
As suspected, using "bheads" was bit good enough in some case and we have to
fall back to the approach used in "basic".
On the evolve repo (about 3K changeset) this approach is about 60% slower than
the previous (wrong) code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:49:07 +0100] rev 3252
stablebranch: avoid overlap between subrange
Subrange overlap make things more complicated and less efficient. We fix the
computation done in the "cached" version of the stablerange cache. This bring
things in line with the result produced by the basic version.
Since we already bumped the format version since the last release, I don't
things we need to do anything else.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:37:10 +0100] rev 3251
stablerange: introduce an 'basicstablerange'
This class hold all the basic of stable range but the part specific to the
sorting.
This allow to clearly express what is expected from each method and to generate
tests output to be validated against the more complex implementation.
While writing this, we spotted a bug in the current stable range implementation.
Fix coming.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 11:18:53 -0500] rev 3250
stablerange: extract the core API into a 'stablerangecore' class
To clarify what the code is doing without all the caching and algorithmic
improvement, we extract a core class that highlight the basic API expected from
the class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 22:17:00 +0100] rev 3249
stable-branch: setup tests to use a specific method by default
This will make future test simpler.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 10:53:21 -0500] rev 3248
stablerange: rework the debug command to allow for multiple method
Similar to what we did for the other debug command related to sorting, we
prepare for the arrival of multiple method to produce the result (including
simple implementation that are easy to read but do not scale).
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 17:34:33 +0100] rev 3247
deptcache: make sure we warm the dept cache before warming the obsdiscovery
The depthcache need to a warmed a bit more agressively
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:37:24 +0100] rev 3246
stablesort: add a 'method' argument to the debugstablesort command
Let start experimenting with other way to do stable sorting.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 02:58:47 -0500] rev 3245
stablesort: rename function to stablesort_branchpoint
We are about to test different approach to stable sorting. We clarify that the
existing method is sorting from branch points.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 17:14:53 +0100] rev 3244
stablerange: update the filename to avoid cache confusion
The schema validation seems to not work as well as intended, we update the file
name to make sure there will be no confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:34:50 +0100] rev 3243
stablesort: extract in its own module
We are going to introduce variants, cache and more complex logic, we move that
in its own repository beforehand.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 29 Nov 2017 12:48:45 -0500] rev 3242
compat: in depth cache, only use cachevfs when available
We support older version without the new vfs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 16:53:29 +0100] rev 3241
depthcache: issue a progress bar when loading the depth cache
The operation can be in the minute order of magnitude of some larger repository.
We better keep the user entertain when he wait.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 15:05:15 +0100] rev 3240
depthcache: move to a dedicated object and storage
The SQL cache was overkill and fragile. We move to a dedicated storage using the
new generic class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:44:44 +0100] rev 3239
cache: adds debug details about what the content of the update
Having more data in debug is good, we add a small method to help providing them.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:40:47 +0100] rev 3238
cache: introduce a changelogsourcebase class
This abstract class will help code that need a cache tracking the changelog
content (eg: the branchmap cache). The cache key used is the same as what the
branchmap uses.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 13:40:05 +0100] rev 3237
cache: introduce an abstract class for cache we can upgrade incrementally
Right now each class implements their own mechanism for validation, and
update. We start introducing abstract class to ultimately allow more
unification of the cache code.
The end goal of this series is to introduce a cache for some obsolescence
property, not to actually implement the cache. However, taking advantage of
adding a new cache to introduce the abstract class seems like a win.
This code was headed for core during the 4.3 cycle but never made it there. So
we starts with a copy in the evolve repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 22 Nov 2017 16:57:07 +0100] rev 3236
depth: basic debugdepth implementation and test
This will come very handy to validate more advanced implementation later.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Dec 2017 06:13:28 +0100] rev 3235
topics: add a config to reject draft changeset without topic on a server
This patch adds a new config option experimental.topic-mode.server which if
sets to True, the server won't accept any draft changeset without topic on it.
In case both `experimental.topic-mode.server` and
`experimental.topic.publish-bare-branch` are set to True, the enforce-topic one
is respected.
Tests are added for it. The CHANGELOG file is also updated mentioning about the
config option.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Dec 2017 05:05:39 +0100] rev 3234
test: update output to ad5f2b923b0d
A new bundle2 capabilities have been added (related to bookmark). So we have to
update the test output.
CORE-TEST-OUTPUT-UPDATE: ad5f2b923b0d
Denis Laxalde <denis@laxalde.org> [Thu, 07 Dec 2017 20:34:18 +0100] rev 3233
touch: shorten touch's docstring to make it fit into a one line
This make it show completely (untruncated) in `hg help -e evolve`.
This follows up on fed946edc293 where the docstring got unwrap for that
purpose and thus made the line length exceed 80 columns.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 18:31:08 +0100] rev 3232
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Dec 2017 02:08:37 +0100] rev 3231
help: promote "amend" to important command
Recent change to what command we advertise as "basic". It turn out "amend" was
not part of one of them. Since "amend" is one of the core command of a rewriting
workflow, we promote it to "basic command".
Kyle Lippincott <spectral@google.com> [Tue, 05 Dec 2017 16:11:08 -0800] rev 3230
help: fix output for `hg help -e evolve` wrt 'touch' command
Currently, when running `hg help -e evolve`, the output looks like this on my
screen:
touch create successors that are identical to their predecessors
except
With this change, it looks like this:
touch create successors that are identical to their predecessors
except for the changeset ID
Kyle Lippincott <spectral@google.com> [Tue, 05 Dec 2017 16:08:50 -0800] rev 3229
help: remove a few commands from `hg` (no args) command list
According to `hg help -e evolve`, the following commands come from the evolve
extension:
amend
evolve
fold
metaedit
next
obslog
pdiff
previous
prune
pstatus
split
touch
uncommit
If one runs `hg` without arguments, commands that are prefixed with a ^
character are shown. From the previous list, this includes:
evolve
fold
metaedit
next
previous
prune
split
touch
uncommit
It feels several of these commands are not "basic commands" that someone who
has never used hg before might care about. They probably also do not come
close to passing the "toothbrush test": things that users are likely to use
every day. This commit removes these items from the list: metaedit, touch,
uncommit
This means the following are kept:
evolve
fold
next
previous
prune
split
Kyle Lippincott <spectral@google.com> [Mon, 04 Dec 2017 14:27:27 -0800] rev 3228
typos: fix typos in several locations
A user at Google attempted to fix our local copy because they had noticed a
typo (accross instead of across), but this will just get overwritten on our
next import. This commit fixes that case and a few others that my editor found.
Most of the typos were in comments, but user-visible output is changed in a few
cases:
- accross -> across
- splitted -> split
- ambigious -> ambiguous
- evolvestte -> evolvestate (this is in a ui.debug, so not often seen)
There is another typo that I wanted to fix, but didn't: 'supercede' is spelled
'superseed' in a few locations. I believe this is only internal to the
extension, instead of being user-visible, so while it could probably be fixed
easily, I wasn't 100% sure it didn't end up in a file on disk or something and
might cause problems, so I left it alone.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 13:53:04 +0100] rev 3227
topic: use more protective code to access current topic
There are some code path where the operation is not properly initialized and
lack the new attributes. While the lack of initialization, is suspicious and
I've not be able to pin point case where this happens.
Currently the code crash when it encounter this situation. So we make the code
more resistant to this case to prevent bad user experience.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Dec 2017 13:21:57 +0100] rev 3226
topic: use more protective code to access publishing code
There are some code path where the operation is not properly initialized and
lack the new attributes. While the lack of initialization, is suspicious and
I've not be able to pin point case where this happens.
Currently the code crash when it encounter this situation. So we make the code
more resistant to this case to prevent bad user experience.
Kyle Lippincott <spectral@google.com> [Mon, 04 Dec 2017 14:27:27 -0800] rev 3225
typos: fix typos in several locations
A user at Google attempted to fix our local copy because they had noticed a
typo (accross instead of across), but this will just get overwritten on our
next import. This commit fixes that case and a few others that my editor found.
Most of the typos were in comments, but user-visible output is changed in a few
cases:
- accross -> across
- splitted -> split
- ambigious -> ambiguous
- evolvestte -> evolvestate (this is in a ui.debug, so not often seen)
There is another typo that I wanted to fix, but didn't: 'supercede' is spelled
'superseed' in a few locations. I believe this is only internal to the
extension, instead of being user-visible, so while it could probably be fixed
easily, I wasn't 100% sure it didn't end up in a file on disk or something and
might cause problems, so I left it alone.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Dec 2017 17:16:01 +0530] rev 3224
tests: add a test for newline in obsnote
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Dec 2017 15:50:32 +0530] rev 3223
obsnote: don't add '' to note while showing it in obslog
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Dec 2017 23:40:08 +0530] rev 3222
obsnote: add an entry in CHANGELOG about it
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:14:47 +0530] rev 3221
amend: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:14:31 +0530] rev 3220
uncommit: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:14:20 +0530] rev 3219
fold: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:14:08 +0530] rev 3218
metaedit: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:13:52 +0530] rev 3217
prune: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 17 Nov 2017 03:06:06 +0530] rev 3216
split: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Nov 2017 01:54:13 +0530] rev 3215
touch: add support for storing a note in obsmarker
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Nov 2017 01:35:51 +0530] rev 3214
obslog: add initial support for showing note in obslog
This add a very basic and initial support for showing the note stored in the
obsmarker in obslog to test the upcoming changes which adds support. The UI is
not finalised and will be improved in the patches after support is added and we
have tests with the current output.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 12 Nov 2017 01:26:30 +0530] rev 3213
cmdrewrite: add a utility function to make sure note is of valid format
Upcoming patches will add support to store a note on various evolution related
commands by storing that in obsmarker. Since the obsmarker metadata field can't
store things above 255 bytes, this patch introduces a function which will be
used to make sure note is under 255 bytes and does not contain newlines. We
don't want notes to be multilines.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 30 Nov 2017 12:14:36 -0500] rev 3212
branching: merge with stable
Boris Feld <boris.feld@octobus.net> [Wed, 29 Nov 2017 20:50:37 -0500] rev 3211
test: remove dangling --config in test-metaedit.t
Martin von Zweigbergk <martinvonz@google.com> [Thu, 30 Nov 2017 21:31:14 -0800] rev 3210
tests: fix previously accidentally matching regexes in test-touch.t
Before Mercurial commit 6d5718e39657 (run-tests: make "| foo (re)" not
match everything, 2017-11-29), regexes like "| foo", which are common
in graphlog output, would incorrectly match anything. After that
commit, they match as they should, meaning that either "" or " foo"
would match, but not a "| foo". This commit fixes the test by
replacing the "|" by "." rather than escaping with "\|" since that
would make the graph harder to read.
Boris Feld <boris.feld@octobus.net> [Thu, 30 Nov 2017 12:09:21 -0500] rev 3209
test: update test-discovery-obshashrange.t
Boris Feld <boris.feld@octobus.net> [Wed, 29 Nov 2017 20:50:37 -0500] rev 3208
test: remove dangling --config in test-metaedit.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 24 Nov 2017 23:46:56 -0500] rev 3207
serverminitopic: also avoid reading
Avoiding to write cache for filter where topic applies is a good step, but we
need to also avoid reading it. Existing branchmap cache might exists before the
turned the feature on.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 08:00:17 +0100] rev 3206
topic: introduce a minimal extensions to enable topic on the server
This small extensions simply expose topic in the branch. This should help
getting minimal support for topic from various hosting solution (eg: bitbucket
maybe ?) See extensions help for details.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 25 Nov 2017 17:47:02 -0500] rev 3205
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 24 Nov 2017 22:36:57 +0100] rev 3204
pusoperation: wrap pushoperation __init__ directly
This is how remote names does it. Using the same method should helps with
compatibility when mixing the two extensions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 23 Nov 2017 00:29:52 +0100] rev 3203
hgignore: fix .err matching patterns
We don't want to ignore .err file outside of the 'tests/' directory.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 19 Nov 2017 04:47:10 +0100] rev 3202
changelog: fix 7.0.0 release date
We date was the same as 6.8.0 for some unkown reason. We now use the date of the
tag.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Nov 2017 00:51:31 +0100] rev 3201
changelog: mention the improved verbosity handling
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Nov 2017 00:49:09 +0100] rev 3200
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 17 Nov 2017 00:48:08 +0100] rev 3199
changelog: update missing release date
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Nov 2017 11:38:33 -0800] rev 3198
summaryhook: respect -q flag
There's no test coverage, but it seems pretty obvious and I don't care
enough to write a test.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Nov 2017 11:32:24 -0800] rev 3197
summaryhook: remove unused function
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Nov 2017 11:22:38 -0800] rev 3196
evolve: make prev/next respect --quiet flag (issue5742)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:30:15 +0100] rev 3195
packaging: merge 7.0.1 into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:16:37 +0100] rev 3194
packaging: mark version as development version.
This helps reduce confusion when installing non tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:15:29 +0100] rev 3193
Added tag 7.0.1 for changeset e7a2a6158077
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:14:01 +0100] rev 3192
packaging: prepare version 7.0.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:13:10 +0100] rev 3191
packaging: update tested-with version
Mercurial 4.4.1 is out.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Nov 2017 00:12:38 +0100] rev 3190
changelog: mention the --publish bugfix
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 23:15:20 +0100] rev 3189
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 23:15:19 +0100] rev 3188
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 23:15:18 +0100] rev 3187
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 23:11:00 +0100] rev 3186
compat: fix comp ability of the new phase logic for Mercurial < 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 19:08:36 +0100] rev 3185
config: clarify that config is only enabled on the repository is it setup for
This changeset change nothing but clarify a few thing. The ui passed to
'reposetup' is the same as 'repo.ui'. However we would like to clarify things a
bit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 23:04:04 +0100] rev 3184
branching: merge with an old and strange head
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 02:29:28 +0200] rev 3183
branching: default into stable
It is time for a new release
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Nov 2017 21:05:59 +0100] rev 3182
topic: fix new head detection when using --publish on a topic
I suspected a bug lurking around there and I found one.
Boris Feld <boris.feld@octobus.net> [Tue, 14 Nov 2017 18:35:25 +0100] rev 3181
effect-flag: fix obsfate verb hooking
Mercurial core commit b81ad5b78a81 renamed a the function we hooked on and
update its signature. Update the code to detect that, which fixes tests
errors.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 14:07:19 +0100] rev 3180
test: update test output for effect flag by default
Now that effect flag is in core and turned on by default, this affect topic test
that did not had the evolve extension turned on all the time.
CORE-TEST-OUTPUT-UPDATE: a7e49a5b3e6f
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 14:21:19 +0100] rev 3179
tests: add more testing of pulling with various setting
We checks for client/server with various combination:
* extensions enabled,
* extensions enabled but exchange disabled,
* extensions disabled,
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 13:05:39 +0100] rev 3178
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 13:05:38 +0100] rev 3177
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 13:05:37 +0100] rev 3176
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 13:04:58 +0100] rev 3175
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 12:57:43 +0100] rev 3174
changelog: add details about the pushkey related fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 12:36:27 +0100] rev 3173
wireproto: gracefully fail on http when trying to use older pushkey method
Previously the HTTP server would return a 500. It now returns a 410.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Nov 2017 12:10:22 +0100] rev 3172
wireproto: avoid exposing pushkey abort for server without evolution
Client with evolution enabled will query the 'obsolete' pushley namespace if no
other way to request obsmarkers have been found. They will do this
unconditionally as long as no other obsolescence related capabilities have been
advertised by the server.
The call is "harmless" since the namespace will be empty if obsmarkers exchange
is disabled. However, since we forbid the use of pushkey for obsmarkers this
lead to unexpected crash report for up to date client talking to a server with
the evolve extensions but exchange disabled.
We fix the issue by serving the expected empty namespace in this case. We keep
forbidding the query if obsmarker exchange is enabled since new client should
have picked another more effective was to fetch the data first.
We also add some tests for this logic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 19:22:32 +0100] rev 3171
obsdiscovery: enforce the config on the server too
Right now, setting 'experimental.evolution.obsdiscovery=no' disable obsolescence
markers discovery on client only. The server still advertise discovery related
capabilities.
We now also honor the config on the server side.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:48:25 +0100] rev 3170
packaging: mark default branch as development version
This help avoid confusion when installing version from the repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:47:11 +0100] rev 3169
branching: merge back stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 23:58:27 +0100] rev 3168
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 23:58:27 +0100] rev 3167
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 23:57:56 +0100] rev 3166
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:45:28 +0100] rev 3165
packaging: mark as development version
This help avoid confusion when installing non tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:43:57 +0100] rev 3164
Added tag 7.0.0 for changeset c56c028f3802
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:33:14 +0100] rev 3163
packaging: prepare version 7.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:32:47 +0100] rev 3162
debian: drop outdate part of the description
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 02 Nov 2017 00:32:24 +0100] rev 3161
debian: update Mercurial version dependencies
The debian package now reflect the actual requirement of the extension in its
current version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 23:51:55 +0100] rev 3160
branching: merge with stable to prepare version 7.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 16:23:13 +0100] rev 3159
push: add a --publish flag
The new flag turns all element in the push to public changeset. This will help
experiment with diverse publishing workflow.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 01 Nov 2017 16:26:33 +0100] rev 3158
topic: add an option to automatically publish topic-less changeset
This new option will help playing with merge based workflow.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 30 Oct 2017 19:24:14 +0100] rev 3157
topic: add an option to enforce a single head per name in a repository
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 00:07:21 +0530] rev 3156
revset: clean up some messy logic
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2017 09:03:48 +0200] rev 3155
evolve: rename --phasedivergent flag to --phase-divergent
This makes the whole things easier to read.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2017 09:02:25 +0200] rev 3154
evolve: rename --contentdivergent flag to --content-divergent
This makes the whole things easier to read.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2017 08:44:50 +0200] rev 3153
pushkey: forbid usage of pushley to exchange markers
The pushkey based protocol lacks many important feature and is very slow. We
disable it to prevent any usage by mistake.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 26 Oct 2017 08:29:36 +0200] rev 3152
changelog: add an entry for 7.0.0 with recent change
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2017 04:41:17 +0200] rev 3151
compat: drop compat code for smartrevs.first
The 'first' method have been around for years.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2017 07:32:06 +0200] rev 3150
compat: drop compatibility dance around configoverride
This was introduced in hg-4.1 and we do no longer support lower versions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Oct 2017 04:45:31 +0200] rev 3149
compat: drop support for older exchange protocol
Their have been better alternative for years. In addition they have been
officially deprecated for quite some time. So we official stop support them to
ease the maintainance.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:30:48 +0200] rev 3148
compat: drop compatibility for 'streamres' prior to 4.1
We no longer support these version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:24:29 +0200] rev 3147
compat: drop the directaccess hacky extension
The user of this extension has forked their own version. We lighten our
maintenance burden and drop it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:23:31 +0200] rev 3146
compat: drop the inhibit hacky extension
The user of this extension has forked their own version. We lighten our
maintenance burden and drop it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:17:14 +0200] rev 3145
compat: drop 'lru.get' work-around for 3.9
We no longer support this version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:13:57 +0200] rev 3144
compat: stop working around 3.8 file cache limitation
We no longer support this version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:13:23 +0200] rev 3143
compat: simply the wrapping of '_destmergebranch'
All the version we support now use the same interface.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:12:37 +0200] rev 3142
compat: drop support for 3.8's '_destrebase' function
We no longer support this version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Oct 2017 14:11:28 +0200] rev 3141
compat: mark version 4.1 as the minimum version required
We dropped compatibility for version 3.8, 3.9 and 4.0.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:08:29 +0200] rev 3140
compat: drop compatibility for Mercurial <= 4.0
We are dropping compatibility with older mercurial version. This will help us
to clean up the code base.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:07:09 +0200] rev 3139
packaging: mark as development version
This helps avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:05:57 +0200] rev 3138
branching: merge with stable
Prepare the 7.0.0 line.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:04:23 +0200] rev 3137
packaging: mark version as development version
This helps to avoid confusion.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:02:37 +0200] rev 3136
branching: close mercurial-4.0 branch
We are dropping support for older Mercurial version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:02:10 +0200] rev 3135
branching: close mercurial-3.9 branch
We are dropping support for older Mercurial version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 16:01:07 +0200] rev 3134
branching: close mercurial-3.8 branch
We are dropping support for older Mercurial version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:55:12 +0200] rev 3133
util: add a small script to help with the merging of branches
We have multiple test-compat branches merging them can be a bit tedious. We add
a nice script doing so for us.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:22 +0200] rev 3132
test-compat: merge mercurial-3.9 into mercurial-3.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:22 +0200] rev 3131
test-compat: merge mercurial-4.0 into mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:21 +0200] rev 3130
test-compat: merge mercurial-4.1 into mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:20 +0200] rev 3129
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:19 +0200] rev 3128
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:50:18 +0200] rev 3127
test-compat: merge stable into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:43:42 +0200] rev 3126
Added tag 6.8.0 for changeset ec0bbf26ce7f
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:41:58 +0200] rev 3125
packaging: prepare version 6.8.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:25:00 +0200] rev 3124
flake8: rename some ambiguous identifier
Apparently, pyflakes declared war on 'l'.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Oct 2017 15:11:48 +0200] rev 3123
topic: instroduce a fast path when computing stack
We do some stack related computation during transaction now. The current
inefficiency of the revset is hurting us too much. We pre-compute a subset using
native set operation to speed things up.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 23:03:11 +0200] rev 3122
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:56:52 +0200] rev 3121
test-compat: merge future 6.7.0 in mercurial-3.8 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:56:21 +0200] rev 3120
test-compat: merge future 6.7.0 in mercurial-3.9 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:54:58 +0200] rev 3119
test-compat: merge future 6.7.0 in mercurial-4.0 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:54:41 +0200] rev 3118
test-compat: merge future 6.7.0 in mercurial-4.1 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:54:08 +0200] rev 3117
test-compat: merge future 6.7.0 in mercurial-4.2 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:52:55 +0200] rev 3116
test-compat: merge future 6.7.0 in mercurial-4.3 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:44:12 +0200] rev 3115
obsfate: re-enables operation display in obsfate
Now that the compatibility checks are in a good shape we can re-enable more
noise in it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:31:07 +0200] rev 3114
changelog: update to reflect latest change
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:45:33 +0200] rev 3113
test-compat: merge with mercurial-3.9 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:44:52 +0200] rev 3112
test-compat: merge with mercurial-4.0 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 22:22:14 +0200] rev 3111
compat-test: remove topic related tests for 3.9
The extension is no longer supported for 3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:43:55 +0200] rev 3110
test-compat: merge with mercurial-4.1 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:41:05 +0200] rev 3109
test-compat: merge with mercurial-4.2 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:34:22 +0200] rev 3108
test-compat: merge with mercurial-4.3 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:25:05 +0200] rev 3107
branching: merge with mercurial-4.3 branch creation
The other changeset marks the point were 'stable' is no longer about Mercurial
version 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 20:04:13 +0200] rev 3106
test-compat: revert output changes from phase renaming
We keep using the old name for the older version. test has to reflect that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 19:32:18 +0200] rev 3105
test-compat: revert output changes related to temporary amend commit
This backed out changeset 06844693bb21 and other related changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 16:07:40 +0200] rev 3104
test-compat: revert ouput change to blackbox
This backed out changeset 86be70ae38b9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 16:07:06 +0200] rev 3103
test-compat: revert ouput related to operation
This effectively backs out 4b951a9a6895.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 17:30:20 +0200] rev 3102
test-compat: revert output change in rebase
This backed out changeset d12c82fd1143 and a couple of other changes.
The change are not relevant in Mercurial < 4.4/
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:31:06 +0200] rev 3101
test-compat: revert output change from bundle2 capability
This backout changeset dd3eda2f7a89 not relevant for verison < 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:30:42 +0200] rev 3100
test-compat: revert output change on pull report
The revert the changeset from 8feb2cae7eae. Not relevant for verison < 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:30:16 +0200] rev 3099
test-compat: revert output change from 'phase' part
The output change were introduced in changeset from 87e349f617f9 and it not
relevant for version lower than 4.4.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 17:23:12 +0200] rev 3098
test-compat: revert output change from using core obsfate
The output update arrives in e91ca8b5ecf7.
This output is only relevant for Mercurial 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 21:29:14 +0200] rev 3097
topic: do to check to topic while amending
Right know the 'topic-mode' mess with amend. Especially in case of amending
merge where the merge is not properly detected.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 21:43:13 +0200] rev 3096
topic-mode: add missing end line in topic-mode warning
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 20:58:35 +0200] rev 3095
compat: work around the lack of configoverride in mercurial 4.0
The phase preservation will stay broken on 4.0 and below
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 19:29:56 +0200] rev 3094
compat: add an abstraction for 'scmutil.cleanupnodes'
The usage of the function was added in 103244e34a9c but is not compatible with
Mercurial <= 4.2.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:56:15 +0200] rev 3093
compat: conditionally access config item
Version 4.2 and below do not have config items support. So the extensions helper
do not register anything.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:50:26 +0200] rev 3092
compat: handle version where obsutil is not available
Version older than 4.3 is do not have the obsutil option. We need to handle
that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 18:19:01 +0200] rev 3091
test: use node instead of rev in topic push tests
This makes the test more stable when revision number changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 17:12:03 +0200] rev 3090
test: use node instead of rev in uncommit -i test
This makes the test more stable when revision number changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:20:20 +0200] rev 3089
branching: create the mercurial-4.3 test compatibility branch
This branch will contains the expected test output with 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:18:51 +0200] rev 3088
branch: merge with stable to prepare 6.7 release
In addition, Mercurial 4.4-rc is out, so we need to update the expected output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 15:13:28 +0200] rev 3087
changeloge: add details about topic-mode
Boris Feld <boris.feld@octobus.net> [Fri, 20 Oct 2017 14:00:30 +0200] rev 3086
effect-flag: remove wrapping of createmarkers for Mercurial 4.4
Now that effect-flag has landed in Mercurial 4.4, we don't need to wrap
createmarkers for this version anymore.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 14:56:03 +0200] rev 3085
stack: order the adjective of changeset
The new order give more interesting result:
* base current
* base unstable
* current unstable
It seems more harmonious this way. Base seems the most core and immutable
adjective describing the element. Then current is a volatile but important one.
Finally, unstable is less information than current, so it goes last.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 00:03:59 +0530] rev 3084
stack: show current and unstable also for t0 and bases
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Oct 2017 12:04:45 +0200] rev 3083
obsfate: use core version of obsfate if available
Let us use the upstream version whenever available. The operation display is
currently disabled to ease with the test changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2017 18:18:43 +0200] rev 3082
topic: register config items
There is a couple more hoops to jump through but all config items used are now
registered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2017 18:17:47 +0200] rev 3081
directaccess: register config item if possible
Mercurial 4.4 warns about unregistered config.
Boris Feld <boris.feld@octobus.net> [Thu, 19 Oct 2017 14:46:06 +0200] rev 3080
evolve: registed configitems if available
The config are registered as 'dynamicdefault' because we still need to
explicitly pass the config option for older version of Mercurial. (4.2 and
before).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2017 21:23:21 +0200] rev 3079
inhibit: compatibility with 4.4-rc
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2017 20:01:00 +0200] rev 3078
branching: merge with stable
Merge with the inhibit fix.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Oct 2017 19:56:18 +0200] rev 3077
inhibit: respect '--keep' when handling rebase clean up
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 18 Oct 2017 19:00:56 +0200] rev 3076
test: adapt to change from 537de0b14030
If we use phase for pull/push this impact some debug output.
CORE-TEST-OUTPUT-UPDATE: 537de0b14030
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Oct 2017 17:12:38 +0200] rev 3075
test: adapt to output change from eb586ed5d8ce
Core have a more verbose output on pull. We have to update tests with it.
CORE-TEST-OUTPUT-UPDATE: eb586ed5d8ce
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Oct 2017 17:35:05 +0200] rev 3074
compat: fix compatibility with new duplicatecopies
Changeset 754b5117622f updated the signature of 'copies.duplicatecopies'.
We can now handle the multiple version of that code for compatiblity.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2017 19:14:27 +0200] rev 3073
topic: remove 'ass' from the random animal list
As much as I love donkey… this generate inappropriate names.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2017 19:08:22 +0200] rev 3072
config: stop passing useless default value to config
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2017 19:06:06 +0200] rev 3071
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 14 Oct 2017 18:56:42 +0200] rev 3070
changelog: add about fixed bookmark and phase handling while changing topics
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 14 Oct 2017 18:55:43 +0200] rev 3069
changelog: add about pager support
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 06:10:41 +0530] rev 3068
pager: add support to `hg evolve --list`
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 06:08:32 +0530] rev 3067
pager: add support to `hg obslog`
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 06:06:09 +0530] rev 3066
pager: add support to `hg topic`
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 06:02:56 +0530] rev 3065
pager: add support to `hg stack`
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 14 Oct 2017 20:17:25 +0530] rev 3064
pager: add a function in compats to start pager
This will help us enabling pager when ui.pager API exists. Also we can try
plugging in the old pager API in this function and we won't have to change
anything.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 14 Oct 2017 02:39:21 +0200] rev 3063
metadata: cleanup metadata file
I'm not sure how this conflict marker survived the pre-publish test run...
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2017 20:32:50 +0200] rev 3062
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 13 Oct 2017 20:28:21 +0200] rev 3061
topic: remove a silly duplicate in a revset
Spotted by Pulkit Goyal. More performance win seems to exists here, but we
starts with the obvious.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 10:18:52 +0530] rev 3060
topics: show changesetcount, troubledcount and headscount by default
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 13 Oct 2017 10:01:38 +0530] rev 3059
topics: use stack.stack() instead of stack.stackdata()
stack.stackdata() also calls stack.stack() internally. Moreover if we just want
to calculate changesetcount, troubled count, it will be cheap to calculate using
stack.stack rather than stackdata().
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 22:48:43 +0200] rev 3058
packaging: mark version as bugfix dev version
This avoid confusion when installing non tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 22:40:41 +0200] rev 3057
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 21:12:14 +0200] rev 3056
Added tag 6.7.1 for changeset 430ad68292d7
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 09 Oct 2017 19:39:13 +0530] rev 3055
obslog: remove the word "yet" from "No patch available yet"
"yet" was a bit confusing as it let me think that patch is currently not
available but can be available sometimes later. This is true for cases when it
says "context not local" but we have more messages like "no successors", "too
many successors", "changesets rebased" where we can't have a patch.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 09 Oct 2017 19:35:32 +0530] rev 3054
obslog: spell out successor completely
If the successor is not known locally, obslog says `succ is unknown locally`
which is not a good message. This patch makes sure succ is spelled out
completely as successor.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:28:50 +0200] rev 3053
readme: update readme with latest fix
(also more the stack one in the right location).
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 15:52:55 +0200] rev 3052
obsfate: make the user list more readable
Separate each user in the obsfate user list by a space for readability.
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 15:28:03 +0200] rev 3051
obsfate: fix user filtering in obsfate-printer
Only hide current user only if it's the only one that create obs-markers.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:22:21 +0200] rev 3050
obsfate: add a test with user both current and other
This will help highlight change in the next changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:12:44 +0200] rev 3049
obsfate: update test
The obsfate templatekw and the obsfateprinter behavior was different when
displaying or not the current user in obsfate users.
Update the test to makes the behavior fix more visible.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:06:22 +0200] rev 3048
packaging: prepare version 6.7.1
The are an important fix on evolve and another important fix for topic
performance, let us make a release.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:02:44 +0200] rev 3047
readme: add changelog for topic 0.3.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:02:23 +0200] rev 3046
add mention of the topic 0.3.0 version
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 16:02:04 +0200] rev 3045
readme: fix evolve 6.7.1 entry
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 10 Oct 2017 15:47:11 +0200] rev 3044
topic: reorder revset for faster evaluation
When running the revset on unfiltered repository, the mutable set can get huge.
So removing the obsolete changeset first provide a large speedup. This resolve
the performance regression we were seeing since the 6.7.0 release.
Aurélien Campéas [Mon, 09 Oct 2017 17:42:30 +0200] rev 3043
topics: use stack rather than stackdata when one only wants the changeset count
There might be a significant performance impact.
Might resolve #309.
Boris Feld <boris.feld@octobus.net> [Thu, 28 Sep 2017 21:35:29 +0100] rev 3042
log: update obsfate output order
Always display successors after the verb. So instead of "rewritten by boris as
X", display "rewritten as X by boris".
07b9fcf8b6d3 did update template-based obsfate but forget to update
obsfatelineprinter.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Oct 2017 10:28:09 +0200] rev 3041
test: remove bashism in test-topic-change.t
The test was broken on various machine using shell not supporting the
`{start..end}` construct.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 05 Oct 2017 19:35:58 +0530] rev 3040
topics: handle phase correctly while changing topics
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 05 Oct 2017 19:30:22 +0530] rev 3039
tests: add test showing change of phase while changing topic on secret commit
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 05 Oct 2017 19:20:20 +0530] rev 3038
topics: use scmutil.cleanupnodes to create markers while changing topics
Earlier if we change topics on changesets with bookmark, the bookmark is not
moved to the new changeset as we didn't add that logic and we were creating
obsmarkers directly. This patch calls scmutil.cleanupnodes to create obsmarkes
which also handles the bookmark movement.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 05 Oct 2017 18:13:52 +0530] rev 3037
tests: add a new test for testing changing or clearing topics
test-topic.t is getting bigger and bigger. This patch introduces a new test
which includes test for clearing and changing topics.
Since the tests are moved to a new file, this patch, removes those tests from
test-topic.t also.
Matt DeVore <matvore@google.com> [Tue, 03 Oct 2017 11:14:29 -0700] rev 3036
obscache: do not check of argument count of wrapped function
After talking with the original author of this check, it appears that it never
worked properly, since _readmarkers was always wrapped with @util.nogc.
Anton Shestakov <av6@dwimlabs.net> [Tue, 03 Oct 2017 22:51:00 +0800] rev 3035
legacy: rename lookup_errors to not be in all caps (flake8 warning)
flake8 has a plugin, pep8-naming, which is not installed by default, but is
used if available, no extra config required. This plugin checks names of
variables, classes, functions and so on against PEP-8, and it complained about
this variable:
N806 variable in function should be lowercase
Since this isn't a module-level constant, but just a helper variable used only
in one function, it's fine to just rename it.
With this error gone, flake8 output (used plugins: mccabe, naming, pycodestyle,
pyflakes) is totally clean.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 01 Oct 2017 15:32:29 +0530] rev 3034
randomname: fix the header of the file
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 01 Oct 2017 15:22:37 +0530] rev 3033
topics: move README-topic as hgext3rd/topic/README
Before improving the docs about topics, lets move them into the topics folder.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 01 Oct 2017 11:23:21 +0100] rev 3032
README: move CHANGELOG to a new file
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 11:18:36 +0100] rev 3031
test: small cleanup in test-topic-mode.t
remove the mention of "new" (this won't be new soon) and use the official config
name.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 11:13:38 +0100] rev 3030
test: add support for random-all topic mode
The 'random' mode no longer generate a random topic for merge.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 10:44:23 +0100] rev 3029
test: rename test-topicmode to test-topic-mode
This is easier to read.
Boris Feld <boris.feld@octobus.net> [Sun, 01 Oct 2017 00:35:28 +0100] rev 3028
topicmode: add 'random' topic mode
That mode will generate a random topic name when the user is about to commit an
untopiced changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 09:10:48 +0100] rev 3027
topic: update the topic-mode hint
The hint is now shorter and reference the documentation. That should provide
more concise output with more details for user who seeks it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 09:05:42 +0100] rev 3026
topic: rename the 'topic-mode' help subtopic
This will help making reference to it in warning.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 00:44:41 +0100] rev 3025
topic: add a 'enforce-all' mode
The mode abort for all commit without a topic, even merges.
Boris Feld <boris.feld@octobus.net> [Sat, 30 Sep 2017 23:18:29 +0100] rev 3024
topicmode: 'enforce' topic mode, no longer warn about untopiced merge
merging a topic back in a branch is common case, it seems sensible to not pester
the user about it.
Boris Feld <boris.feld@octobus.net> [Sat, 30 Sep 2017 23:00:21 +0100] rev 3023
topicmode: add new warning topicmode
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 01 Oct 2017 00:14:19 +0100] rev 3022
topic: add documentation for the 'topic-mode' option
This should help people to discover it.
Boris Feld <boris.feld@octobus.net> [Sat, 30 Sep 2017 22:42:52 +0100] rev 3021
test: update tests to use topic-mode enforce
Boris Feld <boris.feld@octobus.net> [Sat, 30 Sep 2017 22:24:24 +0100] rev 3020
topic: migrate experimental.enforce-topic to experimental.topic-mode
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Sep 2017 12:35:49 +0100] rev 3019
test: adapt to output change from 10e162bb9bf5
The changeset 10e162bb9bf5 in code extend the list of capabilities to include
"phases=['heads']" this has a minor impact on test output
CORE-TEST-OUTPUT-UPDATE: 10e162bb9bf5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Sep 2017 11:38:08 +0100] rev 3018
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 30 Sep 2017 11:11:04 +0100] rev 3017
stack: handle basic case of splitting with crash
hg stack used to crash horribly whenever a split was encountered. This is no
longer the case.
If the result of the split (or there successors) produce a sensible linear
result with on final head, we can just assume that head is the evolution
destination.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 02:29:41 +0530] rev 3016
tests: update test output with commit 4f969b9e0cf5 in core
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 02:23:36 +0530] rev 3015
tests: update test output with commit ecc96506c49d in core
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:30:43 +0200] rev 3014
packaging: update version to match development version
This helps avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:26:30 +0200] rev 3013
packaging: merge stable back into default
6.7.0 has been released.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:24:44 +0200] rev 3012
packaging: mark stable branch as dev bugfix version
This help avoiding confusion when installing evolve from sources.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:18:24 +0200] rev 3011
Added tag 6.7.0 for changeset 3a4f75c6619c
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:18:11 +0200] rev 3010
packaging: update debian changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 16:15:56 +0200] rev 3009
packaging: update version number and testedwith version
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:44:29 +0200] rev 3008
packaging: mark version 6.7.0 in the source
Version ready to be released.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:41:46 +0200] rev 3007
packaging: update compatible version
This has been tested with 4.3 too.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:37:21 +0200] rev 3006
readme: prepare readme
The feature that only work with 4.3+ are flagged as such.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:27:40 +0200] rev 3005
compat-test: merge future 6.7.0 into 3.8 compat branch
(merging through 3.9 compat branch)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:22:58 +0200] rev 3004
compat-test: merge future 6.7.0 into 3.9 compat branch
(merging through 4.0 compat branch)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:18:39 +0200] rev 3003
compat-test: merge future 6.7.0 into 4.0 compat branch
(merging through 4.1 compat branch)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:12:47 +0200] rev 3002
compat-test: merge future 6.7.0 into 4.1 compat branch
(mergeing through 4.2 compat branch)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 01:07:22 +0200] rev 3001
compat-test: merge future 6.7.0 into 4.2 compat branch
Couple feature to disable and other various test impact.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 00:54:28 +0200] rev 3000
branching: merge future 6.7.0 in the stable branch
We are getting ready to release a new version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Sep 2017 00:00:22 +0200] rev 2999
topic: fix topic message for mercurial 4.2 and below
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 26 Sep 2017 19:05:04 +0530] rev 2998
README: mention that --age also shows the user
While I was here, I fixed the a spelling mistake in previous commit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 24 Sep 2017 11:30:14 +0200] rev 2997
topic: try to clarify the "branch" part in stack
The idea is to clarify the meaning of "behind" with using the "target" word.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2017 13:01:21 +0200] rev 2996
readme: mention the message update
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 03:30:56 +0530] rev 2995
topics: make sure user don't pass both the age option and a topic name
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 03:29:45 +0530] rev 2994
topics: spell out topics completely in help
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 03:23:06 +0530] rev 2993
topics: show the user who last touched the topic in --age
This patch adds support for showing the user who last touched the topic in the
age option to `hg topics`.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 03:06:37 +0530] rev 2992
topics: initialize variable with default value instead of assigning later
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Sep 2017 03:04:42 +0530] rev 2991
topics: improve the function signature by accepting arguments as **opts
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2017 12:58:10 +0200] rev 2990
topic: merge with strip related fix
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Sep 2017 12:56:03 +0200] rev 2989
topic: skip topic movement message during strip
During strip transaction the repository is not in a great state. It is simpler
to skip the computation entirely.
Aurélien Campéas [Tue, 26 Sep 2017 12:39:11 +0200] rev 2988
topics/ui: detect and signal when an empty changeset becomes non-empty
Aurélien Campéas [Fri, 22 Sep 2017 18:01:29 +0200] rev 2987
topics/transaction: return immediately if we are in the middle of a transaction
Aurélien Campéas [Fri, 22 Sep 2017 16:41:37 +0200] rev 2986
topics/ui: signal when an operation entails voiding a topic
Typical situations may include:
* publish
* push (to publishing server)
* pull
* fold
Aurélien Campéas [Tue, 26 Sep 2017 12:29:15 +0200] rev 2985
topics/ui: signal when the topics command creates a new (empty) topic
Aurélien Campéas [Tue, 26 Sep 2017 12:27:43 +0200] rev 2984
topics: signal to the end user when a topic has been forgotten
Situation is:
* we're updating outside an empty topic.
* we've cleared topics
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Sep 2017 13:46:41 +0200] rev 2983
topic: add a --topic option to "outgoing" command
By symmetry with "push" in the previous changeset.
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 22 Sep 2017 13:43:38 +0200] rev 2982
topic: add a --topic option to "push" command
This is symmetrical with --bookmark or --branch; it selects changesets in
specified topic as revisions to push.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 22 Sep 2017 12:48:57 +0200] rev 2981
test-compat: adapt to core change in b90bd9a98c8b
Blackbox just got a little more chatty.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 19:34:37 +0200] rev 2980
readme: update about obslog update and documentation refresh
Aurélien Campéas [Thu, 21 Sep 2017 17:08:00 +0200] rev 2979
topic/tuto: be more precise in the top introduction about the publishing server
Indeed there is a chapter with a non-publishing one.
Aurélien Campéas [Thu, 21 Sep 2017 17:06:16 +0200] rev 2978
topics/tuto: prefer rebase over merge and remove the weird merge attempt
Aurélien Campéas [Thu, 21 Sep 2017 17:04:24 +0200] rev 2977
topics/tuto: typo fix and s/multiple/two
Aurélien Campéas [Thu, 21 Sep 2017 17:00:04 +0200] rev 2976
topics/tuto: be more complete over the de-orphaning action within a topic
Aurélien Campéas [Thu, 21 Sep 2017 16:52:05 +0200] rev 2975
topics/tuto: try to be more precise on why `hg log` output is hairy
Aurélien Campéas [Thu, 21 Sep 2017 16:42:45 +0200] rev 2974
topics/tuto: attempt to have a slightly more clear wording
Aurélien Campéas [Thu, 21 Sep 2017 16:41:42 +0200] rev 2973
topics/tuto: try to be more clear when explaining previous/next
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 18:35:22 +0200] rev 2972
test: fix the enforce-topic configuration
There have been an error while updating this patch.
Aurélien Campéas [Thu, 21 Sep 2017 16:25:58 +0200] rev 2971
topics/tuto: clarification on the scope of the tutorial
Also we try to remain the reader that push -> publish.
Aurélien Campéas [Thu, 21 Sep 2017 15:27:20 +0200] rev 2970
topics/tuto: slightly more verbose explanation of what we are seeing
Aurélien Campéas [Thu, 21 Sep 2017 15:15:24 +0200] rev 2969
topics/tuto: spell out `hg topics` entirely
Aurélien Campéas [Thu, 21 Sep 2017 15:09:14 +0200] rev 2968
topics/tuto: activate the `enforce-topic` option
This really help users to stick within topics.
Aurélien Campéas [Thu, 21 Sep 2017 14:05:27 +0200] rev 2967
topics/tuto: highlight the behaviour on publish + update
And the fact that empty topics vanish if we update out of them.
Aurélien Campéas [Thu, 21 Sep 2017 13:04:19 +0200] rev 2966
topics/tuto: fix title underline type introduced earlier
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 17:44:58 +0200] rev 2965
doc: update graph with latest version of doc-graph
Philippe Pepiot <phil@philpep.org> [Thu, 21 Sep 2017 17:13:46 +0200] rev 2964
flake8 docs/conf.py
Philippe Pepiot <phil@philpep.org> [Thu, 21 Sep 2017 17:13:09 +0200] rev 2963
doc: disable generating command documentation when mercurial is not up-to-date
Philippe Pepiot <phil@philpep.org> [Fri, 01 Sep 2017 08:32:17 +0200] rev 2962
doc: add documentation for evolve commands
By using a sphinx directive that call `hg help`.
Philippe Pepiot <phil@philpep.org> [Thu, 21 Sep 2017 16:11:59 +0200] rev 2961
doc: clarify undocumented features
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 16:55:17 +0200] rev 2960
test2rst: ignore the #if/#endif line in the output
They are not useful for the rest.
Boris Feld <boris.feld@octobus.net> [Thu, 21 Sep 2017 10:45:27 +0200] rev 2959
doc: integrate graphviz graphs in tutorials
Use the mercurial-docgraph extension (https://pypi.python.org/pypi/hg-
docgraph/) in tutorials in order to have some dot graphs in the tutorials .t
files.
Then generate the doc as usual, the sphinx-graphviz extension (http://www
.sphinx-doc.org/en/stable/ext/graphviz.html) has been added and it should
handle the generation of the graphs. Please be aware that you need the dot
binary installed in your system. Please refer to the extension documentation
for more configuration.
Boris Feld <boris.feld@octobus.net> [Thu, 21 Sep 2017 10:45:06 +0200] rev 2958
doc: add a special flag for content to ignore in the rst
The testfile to rest document convertion has a new way to ignore some commands.
Alain Leufroy [Fri, 08 Sep 2017 12:10:21 +0200] rev 2957
obslog: simplify formatter keys
The formatter field keys are all prefixed with
`debugobshistory.'. This is annoyingly useless as they are already in
the `debughistory` topic.
This patch simplify these keys. For examle, on this repository `hg obslog -Tdebug -r 31cbace4c0f1` :
```
debugobshistory = [
{
'node':'31cbace4c0f1',
'shortdescription':'topics: make sure we have some restrictions on topic names',
'rev':2904,
'markers':[
]
},
{
'node':'d439a6087434',
'markers':[
{
'date':(1504176329.83902,
-7200 ),
'verb':'rewritten',
'succnodes':[
'31cbace4c0f1'
],
'effect':[
'parent'
],
'user':'Pierre-Yves David <pierre-yves.david@octobus.net>'
}
]
},
{
'node':'1e1f651704d4',
'markers':[
{
'date':(1504175088.811924,
-7200 ),
'verb':'rewritten',
'succnodes':[
'd439a6087434'
],
'effect':[
'parent'
],
'user':'Pierre-Yves David <pierre-yves.david@octobus.net>'
}
]
},
{
'node':'eb6495cf6cb1',
'markers':[
{
'date':(1504015275.001643,
-19800 ),
'verb':'rewritten',
'succnodes':[
'1e1f651704d4'
],
'effect':[
'parent',
'content'
],
'user':'Pulkit Goyal <7895pulkit@gmail.com>'
}
]
},
{
'node':'761e446e0112',
'markers':[
{
'date':(1504015201.780276,
-19800 ),
'verb':'rewritten',
'succnodes':[
'eb6495cf6cb1'
],
'effect':[
'content'
],
'user':'Pulkit Goyal <7895pulkit@gmail.com>'
}
]
},
{
'node':'531a626950bd',
'markers':[
{
'date':(1504015017.897054,
-19800 ),
'verb':'rewritten',
'succnodes':[
'761e446e0112'
],
'effect':[
'meta',
'parent',
'content'
],
'user':'Pulkit Goyal <7895pulkit@gmail.com>'
}
]
},
{
'node':'c2f9ba7329ea',
'markers':[
{
'date':(1504014136.876537,
-19800 ),
'verb':'rewritten',
'succnodes':[
'531a626950bd'
],
'effect':[
'meta'
],
'user':'Pulkit Goyal <7895pulkit@gmail.com>'
}
]
},
]
```
We now able to ask `hg obslog -r 78debdfb3e4d -T '{label("log.summary", shortdescription)}\n{if(markers, markers % " {date|age} {user|person}\n")}'`
```
doc: simplify the reference to in-core features
9 days ago Pierre-Yves David
9 days ago Pierre-Yves David
9 days ago Pierre-Yves David
9 days ago Pierre-Yves David
9 days ago Philippe Pepiot
9 days ago Philippe Pepiot
```
Alain Leufroy [Fri, 08 Sep 2017 12:03:23 +0200] rev 2956
obslog: fix `--template` with `--graph` option
The `template` option was not propagated.
Alain Leufroy [Fri, 08 Sep 2017 12:24:22 +0200] rev 2955
obslog: uniformize `_debugobshistoryrevs` and `_debugobshistorygraph` arguments
`_debugobshistoryrevs` and `_debugobshistorygraph` perform quite the
same action, the latter simply add graph support. Consequently, it
looks better for them to have the same argument list.
Alain Leufroy [Sun, 17 Sep 2017 12:45:28 +0200] rev 2954
obslog: fix --patch with --no-graph options
The repo given to _debughistorydisplaymarker which computes the diff
was filtered when graph mode is disabled.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 15:18:28 +0200] rev 2953
commands: upgrade pdiff and pstatus to full commands
Doing so make them appears in the documentation, improving their
discoverability.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 14:50:55 +0200] rev 2952
gup/gdown: properly mark these commands as deprecated
They are no longer displayed in the documentation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 21 Sep 2017 10:39:49 +0200] rev 2951
Backed out changeset 1b4c92621e23
This got published by mistake.
Boris Feld <boris.feld@octobus.net> [Tue, 29 Aug 2017 16:42:40 +0200] rev 2950
doc: integrate graphviz graphs in tutorials
Use the mercurial-graphviz extension
(https://bitbucket.org/octobus/mercurial_graphviz) in tutorials in order to
have some dot graphs in the tutorials .t files.
In order to run the tests, export the GRAPHVIZ_EXTENSION variable which points
to your copy of the extension. Please be aware that pygraphviz should be
installed in your environment.
That should be sufficient for generating dot graphs in text format.
Then generate the doc as usual, the sphinx-graphviz extension (http://www
.sphinx-doc.org/en/stable/ext/graphviz.html) has been added and it should
handle the generation of the graphs. Please be aware that you need the dot
binary installed in your system. Please refer to the extension documentation
for more configuration.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 19 Sep 2017 12:52:22 +0200] rev 2949
amend: lift the --interactive constraint on `--extract`
The uncommit logic now supports interactive selection.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2017 04:31:59 +0200] rev 2948
readme: mention the topic output cleanup
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2017 04:30:57 +0200] rev 2947
readme: mention the new --interactive mode for uncommit
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2017 04:28:12 +0200] rev 2946
uncommit: minor comment cleanup in the test
Fix some of the sectionning and fix on comments.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Sep 2017 04:20:36 +0200] rev 2945
uncommit: small cleanup of the interactive test setup
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Sep 2017 18:12:06 +0200] rev 2944
tests: add tests for interactively uncommitting by mentioning files
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Sep 2017 17:41:53 +0200] rev 2943
uncommit: fix the dirstate handling in `uncommit -i`
This patch fixes the dirstate handling after `hg uncommit --interactive`. This
patch is bit verbose about the logic and efforts are not put to plug the logic
into existing logic as it's easier to understand like this. Plugging this into
non-interactive logic deserves a separate patch.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Sep 2017 14:35:00 +0530] rev 2942
uncommit: pre-indent a block in if-True
The block will be moved in if-else in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Sep 2017 17:23:24 +0530] rev 2941
uncommit: add an interactive option to uncommit
This patchs adds an interactive flag to uncommit command which lets you choose
hunks interactively. The implementation is as follows:
1) prompt user to select hunks to uncommit interactively
2) make a temporary commit of the hunks user selected
3) calculate the diff of temporary commit and changeset to be uncommitted
4) commit that diff which results in the changeset which should be there after
uncommiting
5) create obsmarkers as required, phases and bookmarks handling
6) reroute the working directory
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Sep 2017 15:54:39 +0200] rev 2940
uncommit: pre-indent a block in if-True for the next patch
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 17 Sep 2017 19:59:25 +0200] rev 2939
topic: provide more information when behind count cannot be computed
The behind count has been confusing for various user and the associated error
message is even worth. We try to clarify it to see if that helps.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Sep 2017 23:25:38 +0530] rev 2938
topic: show the t0 even if topic is not yet touched
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Sep 2017 23:13:05 +0530] rev 2937
topics: improve the description if topic is not touched
Instead of an empty stack in `hg stack` when topic does not contain any
changeset, we show `not yet touched`.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Sep 2017 22:48:55 +0530] rev 2936
topics: show working directory branch when topic is empty
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Sep 2017 15:09:59 +0530] rev 2935
topics: add tests for cases when a topic is empty
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Sep 2017 16:28:59 +0200] rev 2934
readme: mention compatibility with future 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Sep 2017 17:20:42 +0200] rev 2933
topic: update the message used with --age for empty topic
This clarify things when a topic got emptied by publishing.
Ryan McElroy <rmcelroy@fb.com> [Wed, 30 Aug 2017 17:32:32 +0200] rev 2932
sharing: edit pass
Ryan McElroy <rmcelroy@fb.com> [Wed, 30 Aug 2017 17:32:32 +0200] rev 2931
user-guide: edit pass
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Sep 2017 21:41:57 +0200] rev 2930
topic: stabilise the output of --age when date ties
We just needed to introduce sort to stabilize the output order.
Boris Feld <boris.feld@octobus.net> [Fri, 15 Sep 2017 15:48:18 +0200] rev 2929
tests: update after removing of redundant amend commit
Following e8a7c1a0565a, temporary amend commits has been removed impacting all
revision numbers in tests including amend operations.
Update tests case to use description or hashes when possible and update
revisions number when not.
Boris Feld <boris.feld@octobus.net> [Wed, 13 Sep 2017 15:13:51 +0200] rev 2928
topic: setup 'topic' value for working ctx
The way amend work in core change in e8a7c1a0565a. The intermediate commit
disappear and we can no longer rely on it to carry the topic value to amend. To
fix this, we ensure the current topic value can be retrieved through the
`workingctx.extra()` value. Since there is no way to carry a "missing" key
information in a way that survives and "dict.update" call. We also has to
introduce hacking behavior about a special empty value for topic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Sep 2017 20:33:03 +0200] rev 2927
tests: abstract version number for test-topic-stack.t
Using explicite version number always bring trouble, this is why we have unique
description that can select changesets.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 07 Aug 2017 23:22:41 +0900] rev 2926
evolve: use registrar.templatekeyword to register template keyword functions
Now, using registrar.templatekeyword of Mercurial directly in evolve
extension should be safe enough. because it has been available since
Mercurial 3.8, and minimum Mercurial version for evolve extension is
3.8, too.
BTW, this also fixes an issue of "hg help templates" output that
template keywords "precursors" and "successors" are not displayed as
same as others, because they do not have ":KEYWORD:" prefix in their
docstring.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Sep 2017 20:06:52 +0900] rev 2925
evolve: use registrar.revsetpredicate to register revset predicate functions
Now, using registrar.revsetpredicate of Mercurial directly in evolve
extension should be safe enough. because it has been available since
Mercurial 3.8, and minimum Mercurial version for evolve extension is
3.8, too.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 07 Aug 2017 23:17:13 +0900] rev 2924
topic: use registrar.revsetpredicate to register revset predicate functions
Now, using registrar.revsetpredicate of Mercurial directly in topic
extension should be safe enough. because it has been available since
Mercurial 3.8, and minimum Mercurial version for topic extension is
4.0.
This patch also removes modsetup() in topic/revset.py, because it is
useless.
BTW, this patch fixes an issue of "hg help revsets" output that custom
revset predicates are not displayed as same as others, because they
are not "inline literal" in reST syntax (``NAME``).
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 07 Aug 2017 23:24:57 +0900] rev 2923
doc: make paragraphs before example code end with "::" for reST syntax
This prevents lines in an example code from being treated as a part of
normal paragraph. For issue example, lines are folded into one
paragraph.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Sep 2017 22:41:54 +0900] rev 2922
topic: centralize compatibility logic between hg versions into compat module
This patch can delay loading obsutil and obsolete modules until they
are actually used at "hg topics" or so, if demandimport of Mercurial
is enabled.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Sep 2017 17:24:33 +0200] rev 2921
readme: mention the improvement to stack in the readme
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Sep 2017 19:18:05 +0200] rev 2920
test: issue a clarifying graph print in tests/test-stack-branch.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Sep 2017 22:32:50 +0530] rev 2919
stack: properly order stack when gaps existing inside it
We transitively search for the next "stack" ancestors, of changeset in the stack
not based on other revision of the stack. This should help having a consistent
display when topic are interleaved.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Sep 2017 19:43:07 +0200] rev 2918
stack: display both parent with displaying merge
This will help understanding merge in the stack. More test involving merge are
adding in the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 09 Sep 2017 22:32:44 +0530] rev 2917
tests: add tests for showing stack when merge is involved
This patch adds tests of showing stack when merges are involved. This will help
us in changing the behaviour and realising that in later patches.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Sep 2017 12:41:30 +0200] rev 2916
stack: move data computation on the object
We gather multiple data about the stack on the object. Let us move this on the
object and keep it cached there.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Sep 2017 12:23:03 +0200] rev 2915
stack: replace 'getstack' with direct call to 'stack'
The dedicated function do not add any value. We can update all the callers.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Sep 2017 12:19:49 +0200] rev 2914
stack: introduce a rich stack object
The logic around stack object become more and more complex. We great and object
to gather and abstract it.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 07 Sep 2017 16:45:57 +0200] rev 2913
tests: add tests for `hg stack` showing surprising behavior with gaps
The test will help us to analyse in next commit if the things are fixed or not.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 10 Sep 2017 22:22:06 +0900] rev 2912
topic: check availability of obsutil.getmarkers() for portability
Before this patch, topic extension causes unintentional failure with
Mercurial earlier than 4.3, because obsutil.getmarkers() has been
available since Mercurial 4.3 (tests for topic on mercurial-4.*
branches fail, too).
This breaks "minimumhgversion = '4.0'" declaration of topic extension.
This patch fixes this issue in a straightforward way for simplicity on
stable branch.
I'm planning to centralize such portability logic in topic extension
into topic/compat.py or so on default branch for efficiency at
runtime, like as evolve/compat.py.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Sep 2017 16:45:53 +0200] rev 2911
tests: add more explicit test about empty topic from publishing
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 19:29:04 +0200] rev 2910
convertbookmark: advertise the new command in the readme
The command is in a good enough shape now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 17:15:55 +0200] rev 2909
convertbookmark: properly convert stacked bookmarks
We ignores pure descendant when looking for revision to convert. This adds
support for cases were a linear stack contains multiple bookmark (or
un-bookmarked descendants exists).
In this case, some changeset are left orphan, but we'll consider the issue as
minor for now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 18:46:10 +0200] rev 2908
convertbookmark: perform all actions at the end
This will make the whole operation more deterministic and robust.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 18:33:08 +0200] rev 2907
converbookmark: split target computation from actual update
This will allow for further refactoring helping consistency.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 17:09:17 +0200] rev 2906
convertbookmark: extract the revset into a module level constant
This will make it easier to read and modify the query.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 17:04:21 +0200] rev 2905
convertbookmark: properly exclude public changeset
Public changeset are immutable and cannot have a topic anyway.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 16:51:49 +0200] rev 2904
test: add a new root changeset to all debugconvertbookmark test case
We'll make this root changeset public to check the debugconvertbookmark logic in
that regards. It is added in its own changeset since it massively impact all
output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 12:02:27 +0200] rev 2903
tests: import section in 'test-topic-debugcb.t'
We now have two levels of titles to clarify some aspect of the tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 16:22:49 +0200] rev 2902
test: avoid using debugdrawdag in 'test-topic-debugcb.t'
The 'debugdrawdag' utility adds local tags that prevent hidden changeset to get
hidden. We will do without that extension for now.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Aug 2017 18:13:33 +0530] rev 2901
tests: add more tests for debugconvertbookmark
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 14 Aug 2017 14:36:11 +0530] rev 2900
convertbookmark: add logic to skip revisions with multiple bookmarks
When a user tries to converts a bookmark to topic which is on a changeset with
more bookmarks we skip that.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Sep 2017 18:02:50 +0200] rev 2899
topics: add a new debugconvertbookmark command to convert bookmarks to topics
This new command, aliased to debugcb converts bookmarks to topics. This command
either accept name of a bookmark using flag '-b' or '--all'.
If a bookmark is passed using '-b', the whole stack defined by that bookmark is
converted to topics. If '--all' is passed, the above thing is repeated for every
bookmark in the repository.
If the revset which we are using unable to decides revisions of the stack and
return an expty set, in that cases we are not deleting the bookmark as we are
not writing any topics of the same name as that of bookmark. Also currently if a
changeset has two bookmarks, than there is buggy behaviour. So these are known
lackings in the current implementation which will be fixed in upcoming patches.
This also adds tests for the same.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 17:53:14 +0200] rev 2898
topic: support --rev argument and properly process then as user input
Revisions inputed by the users should be processed using `scmutil.revrange`.
This will take alias into account and allow extensions to monitor the user
inputs.
As a side effect, the '_changetopics' function takes revisions as argument.
make the API clearer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 01 Sep 2017 17:37:47 +0200] rev 2897
topic: move a status message in the right scope
The finally get runs on failure so we should not advertise rewrite topic in the
case. In addition the 'rewrote' variable can be undefined in the finally.
Boris Feld <boris.feld@octobus.net> [Wed, 09 Aug 2017 11:32:19 +0200] rev 2896
obsfate: use effect flag information for computing a better verb
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 17:30:07 +0200] rev 2895
compat: make it more clear that evolve need Mercurial >= minversion
The message is more clear when mercurial isn't installed at all.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 18:35:04 +0200] rev 2894
doc: record all the missings and strange bit we know
We know the doc is not as fresh as it could be. We make sure the reader is aware
too.
Boris Feld <boris.feld@octobus.net> [Thu, 31 Aug 2017 17:00:09 +0200] rev 2893
directaccess: fix with tree without order
1b28525e6698 removes order from tree, changing the indexes in gethashsymbols.
Fix that
Boris Feld <boris.feld@octobus.net> [Fri, 01 Sep 2017 11:08:22 +0200] rev 2892
compat: adapt to test output changes
different access pattern in 4.4 means different results.
Make evolve works with mercurial core 72b5f4d53c58
Boris Feld <boris.feld@octobus.net> [Fri, 01 Sep 2017 11:07:28 +0200] rev 2891
compat: adapt to rebase change in coming 4.4
Make evolve works with mercurial core 72b5f4d53c58
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Aug 2017 13:22:40 +0200] rev 2890
topics: import lock as lockmods
We'll need a 'lock' variable in the next changeset. we move the module out of
the way ahead of time for clarity.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Aug 2017 19:12:00 +0530] rev 2889
topics: make sure we have some restrictions on topic names
This patch makes sure we don't allow topic names with just whitespaces, and
other checks which we do for a bookmark.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 29 Aug 2017 19:03:59 +0530] rev 2888
topic: add test showing no restrictions on topic names
Currently we don't have any restrictions on topic names and each of the topic
name works. We want them to not work as some of them are used internally and
only integers can be rev numbers too.
Ryan McElroy <rmcelroy@fb.com> [Wed, 30 Aug 2017 17:32:32 +0200] rev 2887
index: edit pass by native english speaker
Aurélien Campéas [Wed, 30 Aug 2017 16:54:26 +0200] rev 2886
topic: reword and simplify explanation of "behind"
Aurélien Campéas [Wed, 30 Aug 2017 15:57:04 +0200] rev 2885
topic: tutorial grammar fixes
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 11:36:47 +0200] rev 2884
doc-front-page: link to the changeset evolution section in the document
The section is unlikely to be perfect, but at least it exists.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 11:26:00 +0200] rev 2883
doc-front-page: use a clearer statement about the experimental status
This text comes form the Mercurial wiki.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 11:25:51 +0200] rev 2882
doc-front-pagE: add a paragraph about "why the extension"
Let us clarify why there is an extension in the first place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 11:25:27 +0200] rev 2881
doc-front-page: expand the paragraph about changeset evolution
We clarify the part of the explanation about the changeset evolution concept.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 11:24:38 +0200] rev 2880
doc-front-page: rename the "next step" section
This are pointer to relevant section in the doc. It is a bit double usage with
the table of content. We at least clarify the title.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 10:30:48 +0200] rev 2879
doc-front-page: mention that "Changeset Evolution" is a specific concept
It will get it own paragraph soon.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 00:32:56 +0200] rev 2878
doc-front-page: include the index in the TOC
This will help important content to stand forward.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2017 00:35:44 +0200] rev 2877
doc-front-page: add a title to the part about the extension
We'll rework this section more in depth, but I would like it to have a title
first to have it show up in the table of content.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2017 17:25:01 +0200] rev 2876
doc-front-page: add a feature summary at the beginning of the page
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2017 17:11:18 +0200] rev 2875
doc-front-page: mention the mailing list in the documentation
It is an important tool to keep people up to date.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2017 16:58:22 +0200] rev 2874
doc-front-page: move installation instruction earliero
This is important for user.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2017 16:50:05 +0200] rev 2873
doc-front-page: move introduction before the table of content
This should make a friendlier landing.
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 16:15:02 +0200] rev 2872
doc: simplify the reference to in-core features
This should do the whole thing lighter.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 29 Aug 2017 16:14:28 +0200] rev 2871
doc: be less dramatic about changeset immutability
Quoting Phillipe: "This is not a Tolkien Novel".
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 16:14:15 +0200] rev 2870
doc: clarify the introduction sentence
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Aug 2017 17:16:16 +0200] rev 2869
topics: allow use a --current when setting a topic
This patch allow to use the current flag which can be used by user set existing
revs to the current topic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 28 Aug 2017 17:35:44 +0200] rev 2868
topic: make --clear + topicname invalid
The two flags are mutually exclusive.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Aug 2017 17:15:08 +0200] rev 2867
topics: add a current flag to display current topic
This patch adds a current flag which can be used by user to display the current
topic.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Aug 2017 17:10:41 +0200] rev 2866
topics: add a missing trailing comma on list of flag
This will make the next changeset easier to read.
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 14:19:31 +0200] rev 2865
doc: let mercurial find where evolve is installed
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 14:27:08 +0200] rev 2864
doc: use pip to install evolve
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 12:20:30 +0200] rev 2863
doc: reword "target repository" to "remote repository"
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 12:18:42 +0200] rev 2862
doc: typo fixes
Philippe Pepiot <phil@philpep.org> [Tue, 29 Aug 2017 12:17:48 +0200] rev 2861
doc: use "hidden" instead of "invisible"
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 28 Aug 2017 19:23:16 +0530] rev 2860
tests: add whitespaces in test-topic.t to make it more readable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 24 Aug 2017 11:00:13 -0700] rev 2859
evolve: undo change from "divergent" to "phasedivergent" for --divergent
Looks like an accidental update in feaa52680682 (log: bumped was
renamed into phasedivergent, 2017-08-10).
Martin von Zweigbergk <martinvonz@google.com> [Thu, 24 Aug 2017 10:57:32 -0700] rev 2858
messages: use hyphenated '{phase,content}-divergent' in user messages
The hyphenated version is more readable and it's what we use the
{instabilities} template.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 24 Aug 2017 10:48:38 -0700] rev 2857
warning: use 'divergent', not 'contentdivergent' on old Mercurial
This was just an oversight in f6517779a7c4 (warning: rename warning
message, 2017-08-24).
Boris Feld <boris.feld@octobus.net> [Thu, 24 Aug 2017 09:12:09 +0200] rev 2856
warning: rename warning message
divergent has been renamed into contentdivergent. Use their renamed
counterpart in warning message for new unstable changesets.
Renaming done according to
https://www.mercurial-scm.org/wiki/CEDVocabulary
Boris Feld <boris.feld@octobus.net> [Thu, 24 Aug 2017 09:11:54 +0200] rev 2855
warning: rename bumped warning message
bumped has been renamed into phasedivergent. Update the warning message when
new phasedivergent changesets are detected.
Renaming done according to
https://www.mercurial-scm.org/wiki/CEDVocabulary
Boris Feld <boris.feld@octobus.net> [Thu, 24 Aug 2017 09:11:06 +0200] rev 2854
warning: rename unstable warning message
unstable has been renamed into orphan. Update the warning message when new
orphan changesets are detected.
Renaming done according to
https://www.mercurial-scm.org/wiki/CEDVocabulary
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Aug 2017 23:44:36 +0200] rev 2853
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 Aug 2017 14:21:49 +0200] rev 2852
test: fix output of test-discovery-obshashrange.t
The username is now quoted in the output.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Aug 2017 10:59:19 -0700] rev 2851
obscache: use _readmarkers() from core with correct signature
The copied _readmarkers() went stale with Mercurial core commit
5d3ba4395288 (obsstore: let read marker API take a range of offsets,
2017-06-04). At the same time, the Mercurial core version of the
function gained the desired offset argument, so we can now use that
function.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 14 Aug 2017 11:39:06 +0530] rev 2850
topics: take locks and start transaction before calling _changetopics
This will help us in calling _changetopics in other transactions which already
started. Currently the _changetopics creates its own transaction and hence can't
be used it a same transaction with any other function or logic.
Boris Feld <boris.feld@octobus.net> [Mon, 21 Aug 2017 19:44:23 +0200] rev 2849
compat: fix instabilities compat
We added an instabilities method for old version of Mercurial. But we returned
an old value for orphan changesets, the one before the big evolve renaming.
Fix the return value to match the new return values.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 Aug 2017 14:21:49 +0200] rev 2848
test: fix output of test-discovery-obshashrange.t
The username is now quoted in the output.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 12:20:56 +0200] rev 2847
revset: bumped volatile set was deprecated
Use phasedivergent volatile set instead.
Match 07a76d4f2297 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 12:12:03 +0200] rev 2846
revset: divergent volatile set was deprecated
Use contentdivergent volatile set instead.
Match 31c922423f3f mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 11:55:07 +0200] rev 2845
revset: unstable volatile set was deprecated
Use orphan volatile set instead.
Match 5579864798c6 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 11:43:57 +0200] rev 2844
revset: bumped() is deprecated
Use phasedivergent() instead.
Match bd71c06eb62f mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 11:30:34 +0200] rev 2843
revset: divergent() is deprecated
Use contentdivergent() instead.
Match 4dd4757db73a mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 11:23:37 +0200] rev 2842
revset: unstable() is deprecated
Use orphan() instead.
Match c8c04a2b7bb4 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 10:52:44 +0200] rev 2841
obsolete: allprecursors was deprecated
Use allpredecessors instead.
Match e6d8ee3c9ec3 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 10:41:11 +0200] rev 2840
context: precursors was deprecated
Use predecessors instead.
Match d5acd967f95a mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 11 Aug 2017 09:32:23 +0200] rev 2839
context: troubled was deprecated
Use isunstable instead.
Match 52c5ff856b49ac8f2a4eadda6dc9dbb070f39a3f mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 20:40:57 +0200] rev 2838
context: unstable was deprecated
Use orphan instead.
Match f163edb45c47 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 20:31:39 +0200] rev 2837
context: troubles was deprecated
Use instabilities instead.
Match ab0c55c2ad9a mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 19:31:55 +0200] rev 2836
log: bumped was renamed into phasedivergent
Bumped was renamed into phasedivergent, update tests.
Match 9c27a2891b75 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 17:57:50 +0200] rev 2835
log: divergent was renamed into contentdivergent
Divergent was renamed into contentdivergent, update tests.
Match 2194a8723138 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 17:37:31 +0200] rev 2834
log: unstable was renamed into orphan
Unstable was renamed into orphan, update tests.
Match 03039ff3082b mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Thu, 10 Aug 2017 17:31:23 +0200] rev 2833
log: trouble was renamed into instability
Trouble was renamed into instability, update tests.
Match 6f4bc9688ca9 mercurial changeset.
Boris Feld <boris.feld@octobus.net> [Wed, 09 Aug 2017 16:01:20 +0200] rev 2832
output: update obsfate / obslog output order
Always display successors after the verb. So instead of "rewritten by boris as
X", display "rewritten as X by boris".
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 09 Aug 2017 13:21:44 +0200] rev 2831
branching: merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Sep 2016 18:23:04 +0200] rev 2830
doc: add part about exchanging drafts in topic tutorial
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Sep 2016 18:22:30 +0200] rev 2829
doc: add stack part in topic tutorial
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 09 Aug 2017 12:52:06 +0200] rev 2828
test: setup python path for topic tests
This make thing simpler and clearer.
Boris Feld <boris.feld@octobus.net> [Thu, 27 Jul 2017 17:38:37 +0200] rev 2827
doc: various improvements on topic tutorial
Boris Feld <boris.feld@octobus.net> [Thu, 27 Jul 2017 17:22:44 +0200] rev 2826
doc: various little improvements for rst export
Boris Feld <boris.feld@octobus.net> [Thu, 27 Jul 2017 17:16:02 +0200] rev 2825
doc: fix test2rst
Previous versions used to break on multi-lines texts and miss entirely single
lines of texts.
Use a simplest version without regex.
Boris Feld <boris.feld@octobus.net> [Thu, 27 Jul 2017 11:39:51 +0200] rev 2824
docs: move the topic tutorial in the documentation
Boris Feld <boris.feld@octobus.net> [Mon, 24 Jul 2017 16:55:56 +0200] rev 2823
test: fix typo in the topic tutorial
Boris Feld <boris.feld@octobus.net> [Mon, 24 Jul 2017 16:44:37 +0200] rev 2822
test: fix typos in evolve tutorial
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 20:16:33 +0200] rev 2821
topic: fix extension version variable
For some reason, this variable use '__xxx__'.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:58:31 +0200] rev 2820
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:58:04 +0200] rev 2819
branching: merge with other stable head
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:56:27 +0200] rev 2818
debian: add a 6.6.0-1 changelog entry
I forgot to do so while building the version :-/
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:55:27 +0200] rev 2817
debian: fix 6.5.0-1 changelog entry
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:36:58 +0200] rev 2816
packaging: update version to .dev
This avoid misleading version number when investigating.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:35:40 +0200] rev 2815
branching: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:30:44 +0200] rev 2814
packaging: mark the stable branch as bugfix version in development
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 16:24:08 +0200] rev 2813
Added tag 6.6.0 for changeset cc3e09e033a3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:18:24 +0200] rev 2812
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:18:09 +0200] rev 2811
test-compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:17:52 +0200] rev 2810
test-compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:17:42 +0200] rev 2809
test-compat: merge with mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:17:17 +0200] rev 2808
test-compat: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:15:42 +0200] rev 2807
packaging: prepare version 6.6.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 15:08:05 +0200] rev 2806
readme: mention the documentation update
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 23 Jul 2017 13:30:28 +0900] rev 2805
topic: make command names valid as expected, even if ui.strict=true
Before this patch, "hg topics" and "hg stack" cause unintentional
"unknown command" failure, if ui.strict=true.
In such case, "topics [TOPIC]" and "stack [TOPIC]" are required as a
canonical name, because synopsis-like string is used as command name
pattern of @command annotation for them.
This patch also specifies additional "synopsis" for @command
annotation, for intentional output in online help of these commands.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 14:56:52 +0200] rev 2804
readme: mention the work on API deprecated in 4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 14:55:24 +0200] rev 2803
next: use the utility to retrieve the current topic
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 04:02:16 +0200] rev 2802
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 04:01:10 +0200] rev 2801
test-compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 04:00:17 +0200] rev 2800
test-compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 03:59:22 +0200] rev 2799
test-compat: merge with mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 03:41:15 +0200] rev 2798
test-compat: merge mercurial-4.2 with the new stable branch content
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 05:52:14 +0200] rev 2797
branching: default into stable
It is time for a new release
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 05:51:44 +0200] rev 2796
compat: handle pre-4.2 compatibility for accessing vfs
The vfs module is quite new.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 05:14:37 +0200] rev 2795
compat: avoid using configoveride
This not supported before mercurial 4.1.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 04:19:55 +0200] rev 2794
compat: use old style method to update bookmark
The '_del' and '_set' method are new additions in 4.3 we should not use them in
the compatibility layers.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 25 Jul 2017 04:16:00 +0200] rev 2793
topic: wrap 'update' in a more flexible way
This ensure compatibility with mercurial 4.1 and below
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 20:53:30 +0200] rev 2792
branching: open the mercurial 4.2 compatibility branch
The freeze as started.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 05:50:43 +0200] rev 2791
readme: add an entry about the unified message
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 21:21:16 +0200] rev 2790
touch: use precheck to validate revision
This gives us standard check and standard error message.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 21:21:11 +0200] rev 2789
prune: use precheck to validate revision
This gives us standard check and standard error message.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 01:45:17 +0200] rev 2788
uncommit: use precheck to validate revision
This gives us standard check and standard error message.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 21:20:46 +0200] rev 2787
amend: use precheck to validate revision
This gives us standard check and standard error message.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 20:33:19 +0200] rev 2786
split: use precheck to validate revision
This gives us standard check and standard error message.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 01:45:03 +0200] rev 2785
precheck: handle rewrite attempt of nullrev
This is a common breaking case, so we handle and test it in the generic code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 19:45:28 +0200] rev 2784
precheck: update the orphan message to something me generic
This will help to reuse it for other commands.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 19:53:51 +0200] rev 2783
precheck: point to the instability doc when aborting
This will help user to understand what is going on.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 19:52:06 +0200] rev 2782
evolve: document the various instability/troubles
We need something to point people at.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 19:37:29 +0200] rev 2781
precheck: also check for unstability creation
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 03:04:20 +0200] rev 2780
prefetc: point at the offending changeset when aborting
We do our best to display comptact but usable information.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 02:06:14 +0200] rev 2779
precheck: point to 'phase' help when aborting
some of the error message already does that. It seems a good idea.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 01:04:40 +0200] rev 2778
precheck: use 'changesets' in the message instead of 'revisions'
This match the message `hg commit --amend` issue in core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 19:35:36 +0200] rev 2777
rewriteutil: add a precheck function to validate rewrite beforehand
For now this only checks for changeset mutability and this is only used by
'checkfold'. We'll expand the checking and usage as we go.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 04:41:31 +0200] rev 2776
test: remove reference to the graphlog extension
The feature is in core for ages.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 00:11:02 +0200] rev 2775
test: use common setup for test-split.t
This make things cleaner.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jul 2017 00:01:10 +0200] rev 2774
split: compute revision to split after locking
This would avoid strange behavior from race condition.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 20:25:26 +0200] rev 2773
split: basic code cleanup
We remove a useless extra variable since another one already hold the same
value.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 17:28:02 +0200] rev 2772
commands: rewrite the 'evocommands' module to 'cmdrewrite'
The remaining commands should get their own module, so we rename the module for
clarity. We update the module comments to better fits its purpose.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 07:34:18 +0200] rev 2771
split: add support for the -D and -U option
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 17:06:27 +0200] rev 2770
split: fix the --user option
The option ended up being ignored.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 07:33:36 +0200] rev 2769
metaedit: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 07:32:54 +0200] rev 2768
fold: add support for the -D and -U options
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 16:39:21 +0200] rev 2767
test: extract most fold testing into a test-fold module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 06:25:30 +0200] rev 2766
commands: move 'prune' to the 'evocommands' module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 06:14:09 +0200] rev 2765
rewriteutil: move 'deletebookmark' to the module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 06:11:33 +0200] rev 2764
rewriteutil: move 'reachablefrombookmark' to the module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 05:42:41 +0200] rev 2763
commands: move the touch to the 'evocommands' module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 05:32:23 +0200] rev 2762
commands: move split to the 'evocommands' module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 05:16:24 +0200] rev 2761
commands: move fold to the 'evocommands' module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 05:12:18 +0200] rev 2760
commands: move metaedit to the 'evocommands' module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 05:07:13 +0200] rev 2759
rewriteutil: move the 'rewrite' function
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 04:54:42 +0200] rev 2758
rewriteutil: move 'foldcheck' to the new module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 04:46:33 +0200] rev 2757
rewriteutil: move disallowednewunstable in the new module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Jul 2017 23:40:28 +0200] rev 2756
rewriteutil: create a rewriteutil module to host utility function
The ultimate goal of this module is to gather basic building block for rewriting
changesets. This is aimed at moving into core and being use by the core
extension.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jul 2017 06:47:34 +0200] rev 2755
interactive: fix the interractive option import
The move made in e6bc6eaa17c5 was buggy.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 10:51:37 +0200] rev 2754
test: update test output to match b11e8c67fb0f
hg debugobsolete now issues a message about the obsoleted changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 10:27:13 +0200] rev 2753
test: update test output from b47fef6d2365
We run this check for bundle1 too now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 10:07:15 +0200] rev 2752
compat: add a compatibility layer for bookmark move
The API was updated in 4.3 (712a85b3677f) we adapt to that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 09:50:26 +0200] rev 2751
compat: use 'safehasattr' over 'hasattr'
'hasattr' is broken in python 2.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 14 Jul 2017 07:19:15 +0530] rev 2750
stack: show short node of changesets in `hg stack -v`
After this patch, hg stack -v shows short nodes for changesets which have topic
index, i.e. excluding the bases except t0.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2017 01:04:32 +0200] rev 2749
compat: use 'repo.cachevfs' when available
In 4133c0b0fcd7 (core), the repository gained a new vfs dedicated to caches. We
update the code to follow this new pattern.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 16 Jul 2017 11:11:06 +0200] rev 2748
debugobsconvert: take the lock when writing the obsstore file
We were upgrading the store unprotected.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 14 Jul 2017 08:08:32 +0530] rev 2747
topics: add a test demonstarting sorting of topics by time using --age
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 03:16:06 +0200] rev 2746
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 02:46:28 +0200] rev 2745
prev: allow to update to 't0' from 't1'
When on the first changeset of a topic, one can move back one changeset to end
up on t0. The new working copy parent to not belong to the topic, but the topic
is still active. The next commit will create a new root to the active topic.
You can get the same result using `hg up t0`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 02:42:33 +0200] rev 2744
topic: add a 'topicidx()' to context
This will be useful for the `t0` logic in `hg prev`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 02:41:53 +0200] rev 2743
prev: retrieve the 'no-topic' result is a clear and reusable option
We'll use it more, so let us make it pretty first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 02:35:12 +0200] rev 2742
prev: add '_getcurrenttopic' helper and use it
We'll add more spot where this information is used.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 02:34:42 +0200] rev 2741
prev: explicitly use 'p1' as a variable name
This make the code clearer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:53:56 +0200] rev 2740
topic: rename the internal topic option
we'll use it more widely so I give it a more generic name. It is an internal option so not wories regarding compatibility.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:49:43 +0200] rev 2739
prev: extract the code computing the destination
This make the handling of the result simpler. The test agree as one return code
is fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:32:34 +0200] rev 2738
prev: issue a proper error when reaching repository root
(and adds the associated test)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:21:32 +0200] rev 2737
prev: stop creating a repository at the root of 'test-repo.t'
We run the test in a subdirectory now, this usually avoid various kind of future issue.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:12:20 +0200] rev 2736
prev: extract the function performing the update
That code is fairly independant so let us isolate it to simplify the rest of
the code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 01:01:22 +0200] rev 2735
prev: simplify the bookmark preserving logic
We can use 'None' as a special value and have a simpler code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 00:58:14 +0200] rev 2734
prev: rename 'p' to 'target'
This makes the code clearer.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 14 Jul 2017 00:54:48 +0530] rev 2733
topics: check for topic on commit before a user enters message
We have a enforce-topic cofig which can forbid user to commit without a topic on
it. We used to check topic on a commit after the user enters message, but we
should fail early.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jul 2017 03:14:27 +0200] rev 2732
packaging: update readme
I forgot again.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 11 Jul 2017 21:39:39 +0530] rev 2731
topics: add a new flag --age which will show last touched time for topics
This adds a new flag `--age` to `hg topic` command which will show topics
sorted by their last touched time and will also show the last touched time for
them.
This patch also adds a simple test to make sure the flag does not breaks by
future changes. Adding more tests showing output like "3 hours ago", "2 minutes
ago" etc will change as the code takes time.time() into account which will
increase with time, and hence the output will change, so we need some static
output like a date.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 11:24:43 +0200] rev 2730
uncommit: expose the feature with a '--extract' to amend
The name of the "uncommit" feature have been an ongoing issue, but no better
name have been found in the past year. We try another approach by exposing the
'uncommit' feature directly in `hg amend`. The command will not be able to do
both operation a the same time (add new change to the commit + extract should
change, but this is already the case with the two command today.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 12:00:45 +0200] rev 2729
uncommit: add support for -U and -D
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 11:59:18 +0200] rev 2728
uncommit: add support for --user and --date
This is also long overdue
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 11:58:07 +0200] rev 2727
uncommit: add support for --message and --logfile
This is long overdue.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 11:12:23 +0200] rev 2726
amend: drop the implementation details from the user help
This is not relevant to users.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 10:55:06 +0200] rev 2725
uncommit: move to the 'evocommands' module
We are about to play around with a UI mixing amend and uncommit, we take
advantage of this to split the __init__.py module a bit more.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jul 2017 10:38:01 +0200] rev 2724
amend: extract into a 'evolve.evocommands' module
We are about to play around with a UI mixing amend and uncommit, we take
advantage of this to split the __init__.py module a bit more.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Jul 2017 16:09:08 +0200] rev 2723
test: handle output change in 20f533a92eda
The bundle backup name has changed.
Josef 'Jeff' Sipek <jeffpc@josefsipek.net> [Sun, 09 Jul 2017 15:01:32 +0300] rev 2722
tutorial: fix grammar and spelling
Josef 'Jeff' Sipek <jeffpc@josefsipek.net> [Sun, 09 Jul 2017 14:23:27 +0300] rev 2721
tutorial: word wrap long lines
Josef 'Jeff' Sipek <jeffpc@josefsipek.net> [Sun, 09 Jul 2017 14:20:24 +0300] rev 2720
tutorial: use rm instead of 'hg rm' for an untracked temporary file
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 09 Jul 2017 14:41:13 +0200] rev 2719
readme: update with various topic improvement
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 06 Jul 2017 03:31:11 +0530] rev 2718
topics: add a config knob to forbid untopiced commit
After this patch one can add the following to their hgrc to stop allowing new
commits with no topic on it.
[experimental]
enforce-topic = yes
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 06 Jul 2017 03:56:36 +0530] rev 2717
topics: update the help for `hg topics` describing ways to use the command
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jul 2017 01:01:01 +0200] rev 2716
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jul 2017 23:33:28 +0200] rev 2715
obshashrange: add cache warming instruction to the documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jul 2017 10:49:14 +0200] rev 2714
evolve: explain how to disable markers discovery in the documentation
This is useful for large repository.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jul 2017 23:33:28 +0200] rev 2713
obshashrange: add cache warming instruction to the documentation
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 04 Jul 2017 01:30:14 +0530] rev 2712
topics: add t0 and b0 to the stack
t0 or b0 will be the base of the stack and it's the parent of t1 or b1. The cool
thing about this is that if you update to t0 using `hg up t0` or do `hg prev` on
t1, you will be updated to t0 with the current topic preserved.
This patch adds t0 to stack and implement the preserving topic case for t0 while
using `hg update`.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 04 Jul 2017 00:15:36 +0530] rev 2711
topics: wrap the update function to check if either t0 or b0 is passed as rev
t0 or b0, seriously, what's that. Do they even exist? Hold on and look for the
next commits what we are trying to do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jul 2017 00:42:18 +0200] rev 2710
compat: adapt to change in 53b3a1968aa6-core
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:43:44 +0200] rev 2709
merge back with stable
(version updated in the process)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:42:23 +0200] rev 2708
packaging: update versions to '.dev' one
This help to spot install from unreleased source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:40:56 +0200] rev 2707
Added tag 6.5.0 for changeset 734c0bc066cd
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:35:38 +0200] rev 2706
packaging: prepare version 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:34:30 +0200] rev 2705
topic: update extensions metadata
Let us assign a version number to this release and add some more data about the
extensions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 19:31:11 +0200] rev 2704
readme: prepare version 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:53 +0200] rev 2703
compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:38 +0200] rev 2702
compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:28:15 +0200] rev 2701
compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 18:22:39 +0200] rev 2700
compat: merge with stable
Nothing to report beside the drop of the obsfate related tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 18:07:23 +0200] rev 2699
evolve: preserve the branch of the original changeset when evolving merge
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:24:56 +0200] rev 2698
merge: default into stable to prepare next version
Let us prepare ourself for 6.5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 17:13:35 +0200] rev 2697
obslog: handle patch generation for mercurial 4.1-
The unidiff API changed, we detect and work around that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 16:39:48 +0200] rev 2696
topic: also have the revbranchcache during the discovery
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 16:00:38 +0200] rev 2695
topic: cleanup the repository wrapping logic in topic discovery
We are know overriding the class so we do not need to update and restore the
pushop itself.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 15:02:51 +0200] rev 2694
topic: adapt to function migrate to obsutil
Mercurial 4.3 has a new module "obsutil" and multiple functions moved there. We
handle the move for the one we care about.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 15:02:11 +0200] rev 2693
evolve: adapt to function migrate to obsutil
Mercurial 4.3 has a new module "obsutil" and multiple functions moved there. We
handle the move for the one we care about.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 14:10:44 +0200] rev 2692
topic: directly use the '_notpublic' revset
This is just more robust to achieve the same goal.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 13:49:32 +0200] rev 2691
topic: drop the message about running evolve after topic change
Topic change is no longer creating a mess that needs cleaning.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 02 Jul 2017 13:48:45 +0200] rev 2690
template: handle lack of "users" in the obsfate data
This can happens when their are no markers (or the markers has no user data?)
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 16:29:26 +0200] rev 2689
doc: update effect flag documentation
Boris Feld <boris.feld@octobus.net> [Mon, 26 Jun 2017 17:20:08 +0200] rev 2688
obsfate: override the default log output
Override the default log output by showing obsfate if not empty.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Jun 2017 23:42:29 +0200] rev 2687
evolve: fix documentation formatting
The config example were formatted as standard paragraph.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Jun 2017 18:22:06 +0200] rev 2686
compat: fix topicset for mercurial 4.1
The 'getrevset' method is not available there.
Boris Feld <boris.feld@octobus.net> [Mon, 26 Jun 2017 17:19:03 +0200] rev 2685
obsfate: refactor obsfate data computing
Refactor how obsfate data are computed in order to reuse this logic later when
hooking on default log output.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Jun 2017 16:49:33 +0200] rev 2684
topic: exclude public and topic changeset from branch stack
Stack use-case is to show the current work in progress, which are symbolized by
the phase draft and secret phase. Moreover showing public changesets in stack
output when displaying current branch would display a lot of changesets for
long-lived branches and would be quite useless.
We also exclude topic changeset form the stack since they already exist on their
own stack.
getstack revsets didn't needed update when displaying a topic as when a
changeset become public, its topic is no longer relevant.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Jun 2017 16:29:08 +0200] rev 2683
tests: use a more portable form for new lines
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 02:21:09 +0530] rev 2682
topic: don't abort if there is no current topic in stack() revset
Named branches support has been added and we should not abort if there is no
active topic.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 01:58:26 +0530] rev 2681
topics: return a parse error if stack() revset is passed with argument
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 00:11:07 +0530] rev 2680
tests: add test to show topics working with shelve
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Jun 2017 02:31:55 +0530] rev 2679
topics: update current topic to the topic of newly rebased commit (issue5551)
The rebase code passes branchmerge equals to True while updating to the rebased
commit. We need to make sure topic is preserved even after rebase and hence we
need to update the topic even when branchmerge argument is set to True. But
there is a twist in the tale, merge also uses this part of code and we allow to
update topic when brancmerge is True, in merge cases the topic after merge will
the topic of the destination commit, not the topic of working directory parent.
So we need the function to have information about whether a rebase is going on,
and we do it by wrapping the rebase command and storing some value in the
config. This is a bit hacky but works for now. This patch fixes issue related to
loosing of topic while rebase.
Thanks to Boris Feld for the rigourous tests.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 27 Jun 2017 23:28:58 +0530] rev 2678
docs: some fixes to the help text
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 26 Jun 2017 21:48:33 +0530] rev 2677
topics: pass 'topics' to ui.formatter instead of 'bookmarks'
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:28:56 +0200] rev 2676
topic: also insert the extra head check with using the new head checking
This will get the protection in place in all cases.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:38:04 +0200] rev 2675
topic: some document for an obscure function
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 18:18:59 +0200] rev 2674
topic: adjust head checking wrapping to not interfere with concurrent push
In the previous form, the new topic head was detected as affected and the push
was rejected.
We introduce a of 'test-topic-push.t' using the new race checker as there have
been many compatibility issue with this new checkers.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:23:43 +0200] rev 2673
topic: also detect head checking using the concurrent part
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 18:16:14 +0200] rev 2672
test: avoid 'test-check-commit.t' complaining copied code
We switch to git diff.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 17:20:36 +0200] rev 2671
topic: small test cleanuo
The section was repeated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 01:53:21 +0200] rev 2670
topic: move the heads data to the branch line when appropriates
The topic line is dropped as it is quite confusing.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 02:45:57 +0200] rev 2669
topic: add some initial support for using stack on named branch
Stack is a useful command that can make sense in other context. The current
support is hacky and awful, but we have something!
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 28 Jun 2017 01:58:09 +0200] rev 2668
topic: explicitly pass topic as a keyword argument
This clarify all callers before adding more logic related to bare branch in
stack.
Boris Feld <boris.feld@octobus.net> [Tue, 27 Jun 2017 15:21:38 +0200] rev 2667
topic: makes split keep the topic
Refactor split to extract the preparation of the working directory in a
separate function.
This helps topic wrap this function to save topic before update and restore it
after preparing the working directory just before the split.
Boris Feld <boris.feld@octobus.net> [Tue, 27 Jun 2017 09:49:35 +0200] rev 2666
topic: add tests for fold behavior with topics
Clarify the fold behavior for keeping topics.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 07:20:22 +0530] rev 2665
topics: pass quietempty=True to suppress useless output while changing topics
This will help in suppressing the output "0 files updated, 0 file removed, ..."
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 06:53:22 +0530] rev 2664
topics: return early so that other if conditions don't get execute (issue5600)
We were not returning after the _changetopics() call and hence the if's below it
were also executed which resulted in changing of current topic.
This prevent current topic to be updated even when we only affect changeset
unrelated to the working copy.
Not that the rebase output change as it expose a new bug (rebased changeset gain
a topic)
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 26 Jun 2017 17:47:04 +0200] rev 2663
test: extra output to understand the next changeset better
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 25 Jun 2017 06:47:59 +0530] rev 2662
topics: move the logic to change or clear current topic into a new function
It adds a new _changecurrenttopic which changes or clears the current topic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 26 Jun 2017 17:20:17 +0200] rev 2661
tests: expand output to check topic activation
This will help understanding later changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 25 Jun 2017 18:37:42 +0200] rev 2660
branching: merge stable into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 25 Jun 2017 16:37:56 +0200] rev 2659
split: preserve author of the original changeset in the successors
Previously, the new changesets were authored by the default user.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 24 Jun 2017 13:28:16 +0200] rev 2658
grab: properly quote hg executable in the alias
Breakage has been reported on Windows.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2017 10:51:18 +0200] rev 2657
topic: improve the revset used to return name->nodes mapping
The 'topic' version already filters public changeset out, and skipping 'changectx'
creation will helps performance.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:48:40 +0200] rev 2656
topic: update the changectx method to respect phases
The topic is no longer returned once the changeset is no longer mutable (unless
explicitly requested).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2017 10:21:37 +0200] rev 2655
topic: avoid crash when topic is loaded but not enabled for a repository
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 15:18:49 +0200] rev 2654
compat: update test to match core default state
This output changed in 560ceb654180.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 10:13:29 +0200] rev 2653
topicmap: massive rework
Massively rework the way we build and use topicmap. This bring massive performance
benefit.
Topic map use to be a fully independant thing that we would switch on and off
globaly. The caching on disk was broken so the performance were atrocious.
Intead, now the topic are inherited from the 'immutable' map. We gave up on
storing them on disk for now since the mutable set is usually small enough.
The activation is done by hacking new "filter" on the repository and detection
when they are one. This is hacky but core is hard to wrap here.
Overall this whole wrapping is really scary and we should massage core API to
help it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:47:14 +0200] rev 2652
topic: use the 'topic' revset in namespace
This revset performance just got improved.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:41:01 +0200] rev 2651
topic-revset: update the revset to no longer build changectx
Atribute access is expensive, and changectx are very expensive to build, so we
skip these for better performance.
Before:
! wall 0.012195 comb 0.020000 user 0.020000 sys 0.000000 (best of 217)
After:
! wall 0.008816 comb 0.010000 user 0.010000 sys 0.000000 (best of 303)
(Before this changeset parent)
! wall 0.213261 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2017 09:46:30 +0200] rev 2650
topic-revset: changectx creation in the revset
The current mutability filter is very expensive, we use a more direct and
efficent way to do so:
Before:
! wall 0.213261 comb 0.210000 user 0.210000 sys 0.000000 (best of 45)
After:
! wall 0.012195 comb 0.020000 user 0.020000 sys 0.000000 (best of 217)
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 07:32:11 +0530] rev 2649
topics: add some noise to rewrittent changeset to prevent hash cycle
If we have a changeset with topic `x`, we change it's topic to `y`, fine.
When we change it's topic back again to `x`, we get the hash of the the
obsoleted changeset which had the topic `x` initially. The same happens for few
more cases like clearing the topic of a changeset which initially had no topic.
This approach is influenced from cmdutil.amend and other commands (rebase, histedit, etc…)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 13:18:47 +0200] rev 2648
topic-change: update the working copy along when changing topic of '.'
This avoids leaving the working copy behind, removing another large parts of
issue5441.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 13:21:08 +0200] rev 2647
topic-change: cleanup the locking and transaction mechanism
The previous code did not garanted we would release all lock (and was a bit more
complicated than needed.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 07:21:50 +0530] rev 2646
topics: use a dict for successors of changesets produced by topic change
This patch adds a dictionary to store the successors of changesets which got
obsoleted when we change it's topic. This is an improvement in the fix for
issue5441.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:55:45 +0200] rev 2645
topic: further simplify the clear logic
We just set 'topic' to None and the rest should follow.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 03:28:25 +0530] rev 2644
topics: drop the clean argument from _changetopics()
After this commit, None will represent that we want to clean the topic.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 02:00:01 +0530] rev 2643
topics: rename '--change' flag to '--rev' flag
The --change flag was used to read a revset of which topic should be changed. In
mercurial we use --rev for this type of flag.
Now things will work as follows:
`hg topics topicname`: It will set the current topic
`hg topics topicname --rev revset`: Change topic of all the revs in the revset
to topicname
Further patches will try to achieve the following:
`hg topics --clear --rev revset`: clear topic from all the revisions in the
revset
`hg topics --clear`: clear the current topic (Current behavior)
`hg topics --rev revset`: show topics on the revisions in the revset
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Jun 2017 01:05:46 +0530] rev 2642
topics: factor out the logic to change topic in a new function
It will help to refactor and fix bugs. Moreover we can re-use the logic.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:45:15 +0200] rev 2641
obslog: update the readme
This is release not worthy
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:31:21 +0200] rev 2640
obslog: add a comment about the final new line of descriptions
Boris Feld <boris.feld@octobus.net> [Tue, 20 Jun 2017 16:22:16 +0200] rev 2639
obslog: also display description patch with --patch
When activating the --patch option, also display the description patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2017 11:11:37 +0200] rev 2638
obslog: extra patch indentation code
The code is simple and we need to reuse it.
Boris Feld <boris.feld@octobus.net> [Tue, 20 Jun 2017 13:49:40 +0200] rev 2637
obslog: add a patch option
Add support for '--patch' option in obslog for a similar effect than "hg log
--patch".
The patch support is only limited to a few basic cases that will be extended
in the future.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 19:00:31 +0200] rev 2636
obslog: clarify some sorting code
I'm not sure why Boris did it, but this belong to the next patch.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:56:28 +0200] rev 2635
obslog: pass directly unfiltered_repo
_debugobshistorydisplaynode used to create two times an unfiltered repo, makes
_debugobshistoryrevs create only one unfiltered repo and pass it directly.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:54:55 +0200] rev 2634
obslog: remove useless repo arg
_debugobshistorydisplaymarker used to takes repo as an argument but it isn't
needed anymore.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 15:32:25 +0200] rev 2633
obslog: small renaming of _debugobshistorysingle
Rename _debugobshistorysingle to _debugobshistoryrevs in order to better
reflect its purpose.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Jun 2017 10:33:36 +0200] rev 2632
refactoring: directly use 'ctx.unstable()' in showstack function
This is simpler and more efficient.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:46:30 +0200] rev 2631
packaging: flag default as version 6.5.0.dev
This helps to reduce confusion when installing intermediate version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:44:17 +0200] rev 2630
merge: get stable change back into default
Boris Feld <boris.feld@octobus.net> [Sat, 17 Jun 2017 01:02:37 +0200] rev 2629
obsfate: improve obsfate output
Improve obsfate output:
* Remove newline and replace it by '; '
* Improve the hybrid object for making join(obsfate, '|') working.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2017 18:37:28 +0200] rev 2628
packagin: mark stable branch as 6.4.1.dev
This help prevent confusion with installing intermediate version
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 03:13:35 +0530] rev 2627
topics: abort if user wants to show the stack of a non-existent topic
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 02:50:35 +0530] rev 2626
stack: show unstable state for the current revision if it is one (issue5553)
Before this patch if the current revision is unstable, hg stack does not show
the unstable state. This patch fixes that by showing both current and unstable
state for the current revision if that's unstable.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jun 2017 02:44:19 +0530] rev 2625
topics: some minute fixes to the documentation which shows up in help
I am not a native but these changes are simple and obvious.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Jun 2017 03:23:46 +0530] rev 2624
topics: make sure we commit on new parents while changing topics (issue5441)
While changing topics of a set of linear commits, we used to commit our new
changesets with new topic on parents of its predecessor i.e. changeset before
the topic change. If the topic of parent was also changed, that parent will
become obsolete and hence resulting the cnew commit in unstable state. For a set
of linear commits this repeats and we end up in a tree state as mentioned in the
bug.
This patch fixes the bug by checking whether the parent was obsoleted and if
yes, commit on the new parent.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Jun 2017 03:20:52 +0530] rev 2623
tests: add a test to show issue5441 in test-topic.t
The issue will be fixed in the next patch and the test will be helpful to show
that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 01:15:15 +0200] rev 2622
merge back with stable
(test change from stable has been reverted)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:15:17 +0200] rev 2621
Added tag 6.4.0 for changeset e60248f26f92
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:15:04 +0200] rev 2620
packaging: prepare version 6.4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 20:13:13 +0200] rev 2619
readme: fix readme for future 6.4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:48:24 +0200] rev 2618
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:48:10 +0200] rev 2617
test-compat: merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:47:35 +0200] rev 2616
test-compat: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:27:36 +0200] rev 2615
compat-test: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:37:13 +0200] rev 2614
test-compat: fix previous merge
The merge was a bit too heavy handed in dropping some part of the test.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 19:22:38 +0200] rev 2613
merge with default
Integrate new development around obsfate.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 18:38:04 +0200] rev 2612
obsfate: by default only display the username if differ from the current one
This will will keep the output simple in the simple case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 18:03:32 +0200] rev 2611
obsfate: display more data about direct prune markers
This does not handle all cases, but this should handle the most common ones.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:58:17 +0200] rev 2610
obsfate: split markers fetch from successor set annotation
This will help to improve support for pruned changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:55:55 +0200] rev 2609
obsfate: mark successorsetallmarkers public
We are about to use it in another module.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:54:27 +0200] rev 2608
obsfate: mark 'preparesuccessorset' as public
It is used in another module so it is not really private.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 16:51:31 +0200] rev 2607
obsfate: use 'split' as verb when appropriate
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 16:50:11 +0200] rev 2606
obsfate: improve prune support in _successorsetverb
In the prune case, still have markers (at least the prune markers). If we want
to be able to return these markers we need the underlying function to support
it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 12:37:03 +0200] rev 2605
obsfate: rename 'successorsset' to 'sset' in the loop
The old name make it too close to 'successorssets', and the shorter name is not
ambiguous in the context anyway.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:42:28 +0200] rev 2604
template: use hex node in the obsmarkers used in the obsfate template
This was pointed by Yuya and yuya is right.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:34:02 +0200] rev 2603
template: use hex successors in obsfate
This was spotted by Yuya.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:21:49 +0200] rev 2602
template: use hex-node in successors
AS pointed by yuya on the list, the raw data for the template should be hex and
not binary.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:16:26 +0200] rev 2601
template: update successors doc
I'm not very happy about it, but at lease there is a show description now
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:14:11 +0200] rev 2600
template: fix precursors documentation
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 17:11:20 +0200] rev 2599
template: used hex-node for the precursors underlying data
As pointed by yuya on mercurial-dev we should not use binary node here.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 11:55:40 +0200] rev 2598
compat-test: merge with mercurial-3.9
Boris Feld <boris.feld@octobus.net> [Fri, 16 Jun 2017 11:54:01 +0200] rev 2597
test-compat: merge with mercurial-4.0 branch
Minor merge conflict.
Boris Feld <boris.feld@octobus.net> [Fri, 16 Jun 2017 11:50:19 +0200] rev 2596
compat-test: merge with mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 16 Jun 2017 11:42:00 +0200] rev 2595
compat-test: merge with stable
* Blackbox format seems to have change when displaying config CLI options.
* As obsfate template is now only compatible with hg 4.2+, remove all references
to it in test files.
Boris Feld <boris.feld@octobus.net> [Fri, 16 Jun 2017 11:32:21 +0200] rev 2594
merge with stable
Boris Feld <boris.feld@octobus.net> [Fri, 16 Jun 2017 09:22:39 +0200] rev 2593
changelog: announce that obsfate is hg > 4.2 now
Update changelog to announce the fact that obsfate has been improved and is now
only compatible with mercurial version greater than 4.2.
Boris Feld <boris.feld@octobus.net> [Thu, 15 Jun 2017 20:40:07 +0200] rev 2592
compat: make obshistory._getdifflines compatible with mercurial 4.1
On Mercurial version 4.1 and lower, patch.diff seems to returns an empty list
when there is no change. Mercurial 4.2 returns None so we add a if for this
case.
Boris Feld <boris.feld@octobus.net> [Fri, 09 Jun 2017 00:52:54 +0100] rev 2591
obsfate: add a new obsfate template
The obsfate template display for each obsolete changeset a line summarizing
what changed between the changeset and its successors.
This dict is computed in obshistory._preparesuccessorset. It uses
obshistory.FORMATSSETSFUNCTIONS which is a list of function that
individually compute a part of each dict. You can override fields or add new
ones by adding your own function in this list.
The format of obsfate is computed in templatekw.obsfatedefaulttempl and can be
wrapped if necessary, the code is not quite extendable for the moment but can
be refactored later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jun 2017 00:31:00 +0100] rev 2590
obsfate: prepare fatelog tests
Prepare obsfate venue by adding new blank output, it will helps clarify which
are the new output due to obsfate or not.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jun 2017 00:10:27 +0100] rev 2589
obsfate: build more advanced markers for tests
Prepare obsfate venue by building more advanced markers by varying obs markers
users and dates.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 17:18:25 +0200] rev 2588
readme: fix entry for 6.4.0
some data were missing and some were in the wrong spot
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 16:29:51 +0200] rev 2587
test: drop now useless config about effect flag
The experiment is on by default now.
Boris Feld <boris.feld@octobus.net> [Wed, 14 Jun 2017 15:59:20 +0200] rev 2586
effectflag: activate effect flag by default
Remove forcing effect-flag in test files
Boris Feld <boris.feld@octobus.net> [Fri, 02 Jun 2017 19:08:50 +0200] rev 2585
effectflag: activate effect flag on test-evolve-obshistory test file
Prepare activation of effect flag by default by activating it on test-evolve-
obshistory.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 21:43:17 +0200] rev 2584
effectflag: activate effect flag on test-wireproto.t test file
Prepare activation of effect flag by default by activating it on test-
wireproto.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 21:35:17 +0200] rev 2583
effectflag: activate effect flag on test-uncommit.t test file
Prepare activation of effect flag by default by activating it on test-
uncommit.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 21:32:33 +0200] rev 2582
effectflag: activate effect flag on test-stabilize-order.t test file
Prepare activation of effect flag by default by activating it on test-
stabilize-order.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 21:30:08 +0200] rev 2581
effectflag: activate effect flag on test-obsconvert.t test file
Prepare activation of effect flag by default by activating it on test-
obsconvert.t test file first.
Boris Feld <boris.feld@octobus.net> [Wed, 14 Jun 2017 16:01:56 +0200] rev 2580
effectflag: activate effect flag for obsmarkers-case-*.t test files
Prepare activation of effect flag by default by activating it on test-
exchange-obsmarkers-case-*.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:53:36 +0200] rev 2579
effectflag: activate effect flag on test-drop.t test file
Prepare activation of effect flag by default by activating it on test-drop.t
test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:51:50 +0200] rev 2578
effectflag: activate effect flag on test-amend.t test file
Prepare activation of effect flag by default by activating it on test- amend.t
test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:47:04 +0200] rev 2577
effectflag: activate effect flag on test-stabilize-result.t test file
Prepare activation of effect flag by default by activating it on test-
stabilize-result.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:43:22 +0200] rev 2576
effectflag: activate effect flag on test-split.t test file
Prepare activation of effect flag by default by activating it on test-split.t
test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:38:04 +0200] rev 2575
effectflag: activate effect flag on test-evolve-cycles.t test file
Prepare activation of effect flag by default by activating it on test-evolve-
cycles.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:33:45 +0200] rev 2574
effectflag: activate effect flag on test-evolve-obshistory-complex.t test file
Prepare activation of effect flag by default by activating it on test-evolve-
obshistory-complex.t test file first.
Boris Feld <boris.feld@octobus.net> [Sun, 04 Jun 2017 20:30:46 +0200] rev 2573
effectflag: activate effect flag on test-prune.t test file
Prepare activation of effect flag by default by activating it on test-prune.t
test file first.
Boris Feld <boris.feld@octobus.net> [Fri, 02 Jun 2017 19:53:42 +0200] rev 2572
effectflag: activate effect flag on test-evolve.t test file
Prepare activation of effect flag by default by activating it on test-evolve.t
test file first.
Boris Feld <boris.feld@octobus.net> [Fri, 02 Jun 2017 19:33:21 +0200] rev 2571
effectflag: activate effect flag on test-obsolete test file
Prepare activation of effect flag by default by activating it on test-
obsolete.t test file first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jun 2017 01:39:42 +0100] rev 2570
obscache: directly allocate zeroed bytearray
This is much faster that incrementally appending to it. On mozilla central
without obsolescence markers this move full cache building from 0.3s to nothing
visible.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jun 2017 01:26:29 +0100] rev 2569
obscache: plug on core 'update cache' method if available
I was planning to have this implemented in core but since things are not getting
in I'm updating evolve.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 11:31:07 +0200] rev 2568
obscache: pre-indent code
This will make the next changeset clearer.
Boris Feld <boris.feld@octobus.net> [Thu, 15 Jun 2017 13:26:05 +0200] rev 2567
fix: fix _headssummary call to orig
65cf338258d2 one of two orig call wasn't compatible with mercurial version <
4.3, fix it.
Boris Feld <boris.feld@octobus.net> [Thu, 15 Jun 2017 14:44:45 +0200] rev 2566
test-update: update hg update output in test files
Following hg revision 1b5c61d38a52, hg update now show the commit to which we
updated in case of multiple heads. test-obsolete.t and test-sharing.t falls in
these situations, acknowledge the new outputted line.
Boris Feld <boris.feld@octobus.net> [Thu, 15 Jun 2017 14:36:54 +0200] rev 2565
test-drop: all obsmarkers are now dropped
Previously, hg drop may leave some obsmarkers behind, like with temporary
amend commit.
Following mercurial revision 71eb6a098315, strip now correctly remove the
associated obsmarkers and as drop is also calling strip, the bug is now
resolved.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 13:10:43 +0200] rev 2564
test-evolve: garbage collection changeset only, not obsmarkers
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 13:03:45 +0200] rev 2563
test-inhibit: adapt to 4.3
version 4.3 introduce markers stripping with strip. We adapt the test output to
the (harmless) consequence.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 13:00:16 +0200] rev 2562
test-exchange-case-D3: avoid stripping obsolescence marker
The test needs to have changeset unknown locally with obsolescence markers still
applying to them. So we make sure the markers are not stripped (future 4.3 strip
markers by default).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 12:59:59 +0200] rev 2561
test-exchange-case-D2: avoid stripping obsolescence marker
The test needs to have changeset unknown locally with obsolescence markers still
applying to them. So we make sure the markers are not stripped (future 4.3 strip
markers by default).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2017 12:59:38 +0200] rev 2560
test-exchange-case-D1: avoid stripping obsolescence marker
The test needs to have changeset unknown locally with obsolescence markers still
applying to them. So we make sure the markers are not stripped (future 4.3 strip
markers by default).
Boris Feld <boris.feld@octobus.net> [Wed, 14 Jun 2017 15:08:40 +0200] rev 2559
test: fix test-discovery-obshashrange.t new output
Update test-discovery-obshashrange.t test file with new mercurial dev output.
Boris Feld <boris.feld@octobus.net> [Wed, 14 Jun 2017 13:56:40 +0200] rev 2558
fix: fix _headssummary api
_headssummary now takes directly the pushop, update the topic extension
wrapping to fix the API.
André Sintzoff <andre.sintzoff@gmail.com> [Wed, 31 May 2017 22:15:34 +0200] rev 2557
url: update url to point to https://www.mercurial-scm.org/repo/evolve
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2017 20:52:40 +0100] rev 2556
doc: document the evolve templates
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jun 2017 02:58:54 +0100] rev 2555
test: fix template condition for obsfate
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jun 2017 10:22:00 +0100] rev 2554
obscache: add a missing "new line" at the end of a debug message
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jun 2017 01:38:48 +0100] rev 2553
default: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jun 2017 10:21:38 +0100] rev 2552
obscache: shortcut the attribute access for testing
The attribute access adds a significant overhead. we can gain -20% performance
by doing so.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jun 2017 00:48:12 +0100] rev 2551
obshashrange: add an option to protect from accidental activation
The new 'obshashrange.max-revs' option is meant to help large installation like
bitbucket to avoid impact on repositories that cannot handle it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jun 2017 00:12:08 +0100] rev 2550
obshashrange: basic proof reading of the documentation
Nothing major but this should be a bit better.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jun 2017 10:21:26 +0100] rev 2549
proofread
Boris Feld <boris.feld@octobus.net> [Fri, 02 Jun 2017 19:07:35 +0200] rev 2548
effectflag: fix content change detection for filtered revs
In some cases (like amended an obsolete changeset), computing the diff and
comparing them need to work with filtered revisions. We need to use unfiltered
change contexts to safely compute diffs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 05 Jun 2017 10:15:00 +0100] rev 2547
debugobsstorestat: adds static about actually obsolete changeses
Kyle Lippincott <spectral@google.com> [Tue, 06 Jun 2017 15:10:13 -0700] rev 2546
evolve: fix typo: -list -> --list
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 16:26:00 +0200] rev 2545
Added tag 6.3.1 for changeset e358c0263e46
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 16:25:50 +0200] rev 2544
prepare release 6.3.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 03:35:45 +0200] rev 2543
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 03:32:10 +0200] rev 2542
packaging: bump to 6.4.0.dev
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 03:19:07 +0200] rev 2541
serveronly: also backport the fixes from 5adb8bdb935e
The fixes to the computation of "relevant" markers. Was missing for server only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 02:48:58 +0200] rev 2540
merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 02:31:31 +0200] rev 2539
readme: merge 6.2.2 and 6.3.0 changelog
6.2.2 never happened.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 02:30:55 +0200] rev 2538
packaging: mark as version 6.3.1.dev
This reduce confusion when installing version from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2017 02:28:36 +0200] rev 2537
readme: clarify the branch policy
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:36:25 +0200] rev 2536
Added tag 6.3.0 for changeset 6da4ca7b3e4f
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:35:21 +0200] rev 2535
packaging: prepare release 6.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:29:16 +0200] rev 2534
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:28:14 +0200] rev 2533
test-compat: merge with mercurial-4.0 branch
The new 'olog' command is not working with 3.9 so we skill all mentions of it in
the tests. This also apply to the topic extensions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:23:45 +0200] rev 2532
test-compat: merge with mercurial-4.1
hg log has no trouble field in mercurial 4.0, output fixed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:21:18 +0200] rev 2531
test-compat: merge with stable
Nothing special to report, minor test-metaedit.t output change.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 31 May 2017 14:12:33 +0200] rev 2530
merge with default
Boris Feld <boris.feld@octobus.net> [Wed, 31 May 2017 12:09:24 +0200] rev 2529
compat: fix stablerange for mercurial 3.9
Lrudict.get change of api between mercurial 3.9 and mercurial 4.2. Bypass this
limitation by using lrudict.__getitem__ and catch the KeyError directly.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 22:09:28 +0200] rev 2528
template: fix successors and precursors templates
In mercurial 4.1-, the gen argument is expected to be an iterator and not an
iterable, fix successors and precursors templates.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 19:59:57 +0200] rev 2527
lint: remove double newline in test file
Test file test-stablesort-criss-cross.t contained two double newline, I remove
them.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 19:43:14 +0200] rev 2526
template: fix precursors template for older mercurial version
In mercurial 4.1 and below templatekw._hybrid require the gen argument to be different
than None. Manually compute the same default output for these older mercurial
versions.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 13:16:43 +0200] rev 2525
compatibility: backport mercurial 176d1a0ce385
Backport obsstore.relevantmarkers change for including previously forgotten
pruned obs markers. Target mercurial version lesser than 4.3.
This impact multiple tests. All test changes has been manually checked.
Since the computation of relevant obsmarkers have changed, we are bumping the
cache schema version. So that caches get recomputed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 17:39:00 +0200] rev 2524
evolve: fix import order
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 May 2017 14:47:33 +0200] rev 2523
compat: adapt to buildobsmarkerspart move
The function has been moved in e70d6dbde713 so we must we search in both
location.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 11:06:24 +0200] rev 2522
effetflag: detect other meta (extra) changes
Check other changeset meta other than branch and *_source and if there is a
change, set the METACHANGED effect flag.
Add a test for this scenario with a topic change.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 17:32:39 +0200] rev 2521
obsdiscovery: add an option to disable all obsdiscovery
On large repository, computing the obshashtree can we as slow as resending
everything. We give the option for people to opt out.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 11:39:45 +0200] rev 2520
effectflag: better diff detection
Improve the diff detection algorithm to have less false positive like in the
case of a rebase that move the hunk in the file but the hunk stays the same.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 11:38:30 +0200] rev 2519
effectflag: add a test for content detection
Add a test for diff detection when the diff is different but only because of
line numbers. The test is a append at the end of the file and we try to rebase
it. We shouldn't detect a content change, it will be done in the next patch.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 14:46:36 +0200] rev 2518
test: fix test-evolve-effectflags dates
Mercurial < 4.3 don't have default date so add globs in the test-metaedit.t
file.
Boris Feld <boris.feld@octobus.net> [Tue, 30 May 2017 14:43:20 +0200] rev 2517
test: fix metaedit tests by forcing dates
Mercurial < 4.3 don't have default date so restore aliases forcing date in the
test-metaedit.t file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 16:39:59 +0200] rev 2516
test: split test-stablesort.t in two
This is the longest running test so we split it in two to help with parallel
execution.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 13:01:11 +0200] rev 2515
obsdiscovery: automatically pick protocol in a list
This makes the code cleaner, clearer and more flexible. This also prepare the
ability to disable obsmarkers discover entirely.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 14:35:40 +0200] rev 2514
obsdiscovery: extract push-obshashtree discovery in a function
This will help use to simplify the code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 14:27:26 +0200] rev 2513
obsdiscovery: directly use the 'only' revset for obshashtree
The revset now exists and is fast. This remove the needs to hold a reference to
"revs" in that code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 14:21:10 +0200] rev 2512
obsdiscovery: extract push-obshashrange discovery in a function
This will help us to simplify the code. The code is updated to directly use
'outgoing' missing so that is no longer needs to access 'futureheads'.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 14:09:06 +0200] rev 2511
obsdiscovery: merge two distinct if statement
It did not made any sense for them to be split.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 12:32:14 +0200] rev 2510
obsdiscovery: extract '_canobshashtree'
having this as a simple function will help use to generalise the obsdiscovery
algorithm we use.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 12:26:57 +0200] rev 2509
obsdiscovery: move code inserting discovery at the end of the file
This makes it easier to reuser function defined earlier in the file.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 12:15:52 +0200] rev 2508
obsdiscovery: trust core to do the right thing if no discovery is available
This is fixed for a long time now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 12:13:14 +0200] rev 2507
obsdiscovery: factor the "do we push markers" check out
This clarify the code a bit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 11:55:58 +0200] rev 2506
stablerange: also respect the 'warm-cache' config
This will help large install to enable obshashrange as "opt-in" without
impacting other repositories.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 11:49:00 +0200] rev 2505
debugstablerange: cleanly "Abort" when no revision are specified
Previously we had a traceback from a max on an empty sequence.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 11:12:02 +0200] rev 2504
stablerange: use last recently used caching for revisions associated to ranges
This does not make things faster but at least it make them able to finish on
large repositories.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 30 May 2017 11:12:12 +0200] rev 2503
stablerange: report progress more often in slow case
For small repositories the time spent in progress was problematic. However on
large repository it quickly becomes negligible, so we add a way to detect this
case and report more often in this case.
Boris Feld <boris.feld@octobus.net> [Mon, 29 May 2017 14:03:31 +0200] rev 2502
template: update successors template output
Use templatekw._hybrid as return value for precursor template, it's nicer and
easier to play with than returning a formatted string.
Boris Feld <boris.feld@octobus.net> [Mon, 29 May 2017 17:54:14 +0200] rev 2501
test: extract metaedit tests into test-metaedit.t test file
The metaedit command deserver it own test file and this shave of 15% of the
runtime of test-evolve.t one of our longest tests.
Boris Feld <boris.feld@octobus.net> [Mon, 29 May 2017 12:15:47 +0200] rev 2500
template: update precursors template output
Use templatekw._hybrid as return value for precursor template, it's nicer and
easier to play with than returning a formatted string.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 May 2017 17:16:15 +0200] rev 2499
template: skip "fate" in test output when empty
This should clarify the test output a bit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 May 2017 17:13:21 +0200] rev 2498
template: skip "successors" in test output when empty
This should clarify the test output a bit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 May 2017 17:10:45 +0200] rev 2497
template: make the template definition more manageable
Readable config is readable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 May 2017 17:07:23 +0200] rev 2496
template: skip "Precursors" in test output when empty
This should clarify the test output a bit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 29 May 2017 16:59:59 +0200] rev 2495
template: move each template on its own line during tests
This will clarify the various coming changes around template.
Boris Feld <boris.feld@octobus.net> [Mon, 29 May 2017 11:03:13 +0200] rev 2494
refactoring: rename obsfate template to obsfate_quiet
As I don't know how to handle templates arguments, create different templates
for each verbosity level wanted.
Boris Feld <boris.feld@octobus.net> [Mon, 29 May 2017 16:39:32 +0200] rev 2493
doc: add documentation about effectflag experiment
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 18:27:59 +0200] rev 2492
effectflag: split effect flag meta
Split effect flag meta into 3 separate flags:
- USERCHANGED
- DATECHANGED
- BRANCHCHANGED
Also display them separately for the moment, they could be grouped back
together if we want later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 May 2017 21:31:07 +0200] rev 2491
tests: update missing amend
(I need a hook)
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 19:21:36 +0200] rev 2490
template: update obsfate to be more human friendly
Approach the obslog output for the moment.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 13:28:49 +0200] rev 2489
template: add the obsfate template
Reuse _getobsoletefate and nextvisiblesuccessors to easily get the
obsolescence fate of any node. The limitation is that obsfate is as precise as
these two functions, which is not great for nextvisiblesuccessors.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 13:18:26 +0200] rev 2488
refactor: extract obs fate algorithm from _getobsoletereason
Refactor _getobsoletereason to extract the obs fate computation into a
separate function, it will be used later and put it in obshistory as it will
be needed in other files.
Rename _getobsoletereason to _getobsoletefateandsuccessors.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 10:05:37 +0200] rev 2487
template: add successors template
The successors templates display the closest visible successors of each
changeset, we may have gap, like in this case:
A -> B -> C -> D
If we display A, C and D but not B, we can't display than B is the closest
successor of A because it's not displayed. We display C as the closest
successor of A instead.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 10:05:27 +0200] rev 2486
template: add precursors template
The precursors templates display the closest visible precursors of each
changeset, we may have gap, like in this case:
A -> B -> C
If we display A and C but not B, we can't display than B is the closest
precursor of C because it's not displayed. We display A as the closest
precursor of C instead.
Add a new test file as we will need to generate theses gaps and modifying
test-evolve-obshistory.t will lead to many unrelated lines changes.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 16:00:05 +0200] rev 2485
refactor: extract templates into a new file
Extract evolve template from evolve/__init__.py to evolve/templatekw.py as
more templates will come in the future.
Boris Feld <boris.feld@octobus.net> [Tue, 23 May 2017 19:48:04 +0200] rev 2484
obshistory: add the all option to obslog to show the while obs tree
Add a --all option to obslog in order to display also the successors of each
obs markers. It has the effect of showing a more comprehensive graph when a
split or a divergence happened.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 May 2017 16:12:07 +0200] rev 2483
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 26 May 2017 15:57:17 +0200] rev 2482
readme: update changelog for 6.2.2
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 15:01:21 +0200] rev 2481
test: fix test-evolve.t
Metaedit take the current date when no date is given. When we added default-
date, the date ended up to be the same and the behavior changed. Fix the text
by disabling default-date in the metaedit call and update the comment about
what is needed to fix correctly the test; take the changeset date when
metaediting only one changeset.
Boris Feld <boris.feld@octobus.net> [Fri, 26 May 2017 10:25:16 +0200] rev 2480
test: split evolve cycle tests in a separate test file
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 May 2017 21:14:04 +0200] rev 2479
evolve: fix --rev with --list
This was untested and never worked.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 May 2017 18:17:01 +0200] rev 2478
test: improve the globing for obsmarker date
If we force the date of obsmarkers, they will no longer include "20".
Boris Feld <boris.feld@octobus.net> [Tue, 23 May 2017 19:21:43 +0200] rev 2477
test: rename all olog references
Replace them by hg obslog which is more explicit.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 May 2017 18:17:01 +0200] rev 2476
test: improve the globing for obsmarker date
If we force the date of obsmarkers, they will no longer include "20".
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 May 2017 16:43:04 +0200] rev 2475
documentation: recomment using blackbox with the obshashrange experiment
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2017 10:50:56 +0200] rev 2474
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2017 10:49:59 +0200] rev 2473
packaging: update the development version number
This helps catch non-tagged version installed with pip.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2017 10:48:21 +0200] rev 2472
Added tag 6.2.1 for changeset 0af99106b075
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2017 10:48:14 +0200] rev 2471
packaging: prepare release 6.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 16:01:59 +0200] rev 2470
compat: merge with stable
Stable has multiple changeset that solve deprecation warning for the future
Mercurial 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 15:45:42 +0200] rev 2469
test-compat: merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 15:42:13 +0200] rev 2468
test-compat: merge with mercurial-4.0 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 15:34:36 +0200] rev 2467
test-compat: merge with mercurial-4.1
Nothing to report
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 May 2017 15:28:36 +0200] rev 2466
test-compat: merge with stable
Nothing special to report, minor blackbox output update and color extensions was
needed for test-prune.t
Boris Feld <boris.feld@octobus.net> [Mon, 22 May 2017 12:00:57 +0200] rev 2465
deprecation: fix dirstate.beginparentchange deprecation warning
Replace calls to dirstart.beginparentchange and
dirstate.endparentchange to dirstate.parentchange context manager.
Boris Feld <boris.feld@octobus.net> [Mon, 22 May 2017 14:57:47 +0200] rev 2464
deprecation: fix cmdutil.command deprecation warning
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 21 May 2017 23:58:55 +0200] rev 2463
obshistory: be more flexible about createmarkers API
The API got touched in core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 21 May 2017 23:56:33 +0200] rev 2462
inhibit: be more flexible on createmarkers API
This API got touched in core.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 21 May 2017 14:27:23 +0200] rev 2461
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 21 May 2017 14:20:24 +0200] rev 2460
obshashrange: document the experiment
This should help people jump in.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 21 May 2017 13:55:09 +0200] rev 2459
obshashrange: add an option to disable local cache warming
The cache still a bit too volatile an costly to update. This offer a way for
developer working copy to only compute it when used.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 May 2017 03:31:42 +0200] rev 2458
obshashrange: re-warm less revision after reset
rewarming every single revision get very expensive quickly. Instead we warm few
key revision and rely on the fact this will warm enough useful subrange.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:52:09 +0200] rev 2457
effectflag: simplify meta data change testing
Let us just do one larger test.
G: changed hgext3rd/evolve/obshistory.py
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:50:49 +0200] rev 2456
effectflag: add a small comment to suggest improvement
The code run but we will likely need something easier to extend.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:50:00 +0200] rev 2455
effectflag: handle invalid data
If we get a marker with an invalid input we should not crash the whole process.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:49:20 +0200] rev 2454
effetflag: move the flag back with the test of the creation logic
Previous changeset was published by mistake.
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 20:21:10 +0200] rev 2453
obshistory: display informations from the obs marker effect flag
Leverage the effect flag to actually show what change for each
obsmarker in the obslog command. (first basic version).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:43:16 +0200] rev 2452
test: add (glob) to globed line
Ingloriously forgot to amend.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 19:45:04 +0200] rev 2451
effectflag: add test combining multiple flag
We check that multiple changes might be detected a the same time.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 20:15:05 +0200] rev 2450
effectflag: basic diff change detection
We adds some basic diff detection.
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 19:52:57 +0200] rev 2449
effectflag: detect parent change
Add the detection of parent changes.
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 19:48:44 +0200] rev 2448
effectflag: detect meta changes
Add the detection of known meta field changes. The known meta
fields that we check are:
- user
- date
- branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 19:43:06 +0200] rev 2447
effect-flag: rework existing test to prepare for mor tests
Boris Feld <boris.feld@octobus.net> [Fri, 19 May 2017 18:43:21 +0200] rev 2446
effectflag: allow to save effect of change in obsmarkers
Obsmarkers lack a precious information, what are the changes between
the source and the destination. This could be several thing:
- The description has changed, with a amend -e for example
- The parent has changed, with a rebase for example
- The content has changed, with a amend for example
- The meta, like the user, has change, with a amend -u for example
Or any combination of them.
We hijack the createobsmarkers in order to compute the modification
and store the effect flag which is basically a bitfield of the
changes list above and we store it in the metadata for the moment.
The advantage of computing the flag just before creating the obs marker
is that all commands will immediately be compatible and we can start
working on the UI display of the flag. As a future optimization,
the commands will be able to pass the flag directly or data to help computing
them, for example amend knows if the description has changed or rebase now if
the parent has changed, virtually removing the overhead.
To start simple, this patch add the detection and storage of the effect flag
when the description has changed. And hide it behind an experimental flag
disabled by default 'experimental.evolution.effect-flags'. More flag will
follow.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 18:07:56 +0200] rev 2445
merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 17:48:44 +0200] rev 2444
readme: fix version number
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 17:34:45 +0200] rev 2443
next: prevent a color related crash when evolve
This was not caught by test because they run color less.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 17:33:27 +0200] rev 2442
prune: prevent a color related crash when the working copy is moved
This was not caught by test because they run color less.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 18 May 2017 22:40:17 -0700] rev 2441
evolve: adding longer aliases for olog
Novice users will likely find the longer versions more obvious to understand
what they're doing (olog only makes sense once you already know what it does).
Especially on the help page, "obslog" will be easier to find and make sense
of.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 11:16:22 +0200] rev 2440
debugobsstorestat: add markers size information
We adds some extra information about markers size in all known format.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 00:15:30 +0200] rev 2439
packaging: bump version to 6.3.0.dev
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 00:10:12 +0200] rev 2438
merge back with stable (post-release)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 00:14:20 +0200] rev 2437
packaging: bump version to 6.2.1.dev
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 May 2017 00:11:18 +0200] rev 2436
Added tag 6.2.0 for changeset d4ee0274a8ef
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:20:23 +0200] rev 2435
merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:55:02 +0200] rev 2434
merge with future 6.2.0
No extra change were needed compared to 3.9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:51:10 +0200] rev 2433
merge with future 6.2.0
The new 'olog' command is not working with 3.9 so we skill all mentions of it in
the tests. This also apply to the topic extensions.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:35:16 +0200] rev 2432
merge with future 6.2.0
Minor unrelated output adjustements were needed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:12:52 +0200] rev 2431
merge with future 6.2.0
There are been (multiple) minor output changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:26:29 +0200] rev 2430
packaging: prepare release 6.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:26:06 +0200] rev 2429
debian: fix email
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:58:19 +0200] rev 2428
topic: update 'tested with' and readme
We are compatible with Mercurial 4.0 and above
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:25:43 +0200] rev 2427
readme: rearrange readme before release
There won't be a bugfix release (and other cleanup)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 23:24:57 +0200] rev 2426
test: reduce output size to fight unstability
Until `hg touch` can be more stable, we have to do this :-/
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:57:20 +0200] rev 2425
tests: disable blackbox for 'getid'
This will significantly simplify the blackbox log.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:42:13 +0200] rev 2424
compat: handle lack of 'util.timer' for pre 4.2 version
We keep compatibility with previous Mercurial version by redefining the timer
when needed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:53:01 +0200] rev 2423
test: enforce color to be enabled
4.2 enable color by default and start to get used in test. So we add this to the
test for previous version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 22:12:05 +0200] rev 2422
merge with default
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 21:59:10 +0200] rev 2421
tests: add a test about strip with obshashrange enable
I've seen some traceback but I cannot reproduce them. This tests seems useful
anyway.
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 18:35:34 +0200] rev 2420
obshistory: add a json test with cycles
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:40:20 +0200] rev 2419
tests: glob an absolute path
The ssh command path was in full and pointing the mercurial checkout of the last
one who touched the test.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:34:26 +0200] rev 2418
olog: document the default value
We actually display the log for '.' which is useful.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:29:28 +0200] rev 2417
readme: rearrange changelog content
blackbox is more important than the various caches changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:18:01 +0200] rev 2416
obshistory: rename the command to "olog"
The command start to look good enough to be handed out to user. We replace the
old and useless "olog" alias in favor of the new command.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 18:04:47 +0200] rev 2415
obshistory: move the command into the obshistory module
The root module is far too large already.
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 17:40:07 +0200] rev 2414
obshistory: add docstring to cmddebugobshistory
Add debugobshistory command documentation based on the log command
documentation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:47:59 +0200] rev 2413
obshashrangecache: make sure we re-warm the cache after a reset
This will "mitigate" the effect of dropping existing entries when new markers
affect existing range.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:35:36 +0200] rev 2412
obshashrangecache: precisely track affected revs when adding new markers
This will be useful when we start doing finer grained invalidation (instead of
dropping all data).
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 14:58:22 +0200] rev 2411
debugobshistory: handle multiple cycles
We previously handled up to one cycle only. This is now fixed.
Boris Feld <boris.feld@octobus.net> [Thu, 18 May 2017 14:49:02 +0200] rev 2410
test: clean the debugobshistory cycle test
Use 'desc(...)' instead of revision numbers.
Also blank lines between commands in the same test
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 17:03:11 +0200] rev 2409
obsdiscovery: add more debug output
we add a summary debug output to help gathering data.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 16:59:25 +0200] rev 2408
discovery: log information about obshashrange
We augment the blackbox output to help with data gathering.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:29:27 +0200] rev 2407
obshistory: add a graph option on the debugobshistory command
Add a graph option (--graph) to the debugobshistory. The output is
like the 'hg log -G' output. The option is activated by default but
can be deactivated with '--no-graph' option.
There are various issue with the current implementation (multiple cycles
handling, N² complexity) but this can be fixed later.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:29:23 +0200] rev 2406
obshistory: import 'node' as 'nodemod'
This simplify the next changeset.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 11:00:06 +0200] rev 2405
label: add a label for the node in the "wc now at" message
MOAR COLOR FOR THE COLOR GOAD!
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 May 2017 10:56:08 +0200] rev 2404
label: rename 'evolve.short_node' to 'evolve.node'
A wider labelk will helps compatibility.
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 19:20:43 +0200] rev 2403
obshistory: refactor debugobshistory
Rename the function and extract the heavy work of the command
in a separate module named obshistory.py
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:54:48 +0200] rev 2402
test: adapt to change in cache warming in core
Core Mercurial has a more rational cache warming strategy now. 24f55686a63d
stopped warming of the cache after every changegroup application (in favor of
end of transaction warming). This reflect in the blackbox test output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:38:13 +0200] rev 2401
test: adapt to change in cache warming in core
Core Mercurial has a more rational cache warming strategy now. 2b6692df1bdf
stopped warming of the cache after every commit (in favor of end of transaction
warming). This reflect in the blackbox test output.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:47:22 +0200] rev 2400
stablerangecache: avoid crash when 'cache/' directory is missing
If the directory is missing, we create it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 18:40:48 +0200] rev 2399
obshashrange: avoid crash when 'cache/' directory is missing
If the directory is missing, we create it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 17:16:59 +0200] rev 2398
tests: apply output changes from core fix
Mercurial core fixed a bug were the obsolete set (and all depending data) stayed
invalid after markers were merged. Fixing this bug is fixing some bad output on
the evolve side so we apply the output change.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 15:49:21 +0200] rev 2397
packaging: mention 'dev' status in the version number
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 09:28:10 +0200] rev 2396
color: update the shorttemplate to use colors
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 14:49:02 +0200] rev 2395
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 14:40:18 +0200] rev 2394
obshashrange: cleanup 'valid' life cycle
- reset is only called when we detect a strip, the on disk data are invalid,
- after a reset, we should not keep using the data base connection,
- after a write, the on disk data are valid.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:27:13 +0200] rev 2393
obsrangecache: raise programming error when using an unwarmed cache
This will provide a better experience for developer using this the cache.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:27:29 +0200] rev 2392
obshashrange: stop marking on-disk data as invalid on clear
This was abusing and prevent proper use of the on disk cache.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:16:18 +0200] rev 2391
obshashcache: purge the meta line before writing a new one
Otherwise we get multiple lines and this gets messy.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 13:14:50 +0200] rev 2390
obshashrange: drop spurious whitespace
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:25:56 +0200] rev 2389
obshashcache: invalidate affected cache entries on side
Calling reset during upgrade is screwing up the cache key update.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:26:15 +0200] rev 2388
obshashcache: properly break out of all loops
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 12:23:10 +0200] rev 2387
dualsourcecache: simplify cachekey.clear
We do not needs the super call anymore and we can make the reset case more
explicit. So we do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 11:58:48 +0200] rev 2386
tests: small test update
This is a bit clearer.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 11:23:33 +0200] rev 2385
dualsourcecache: fix obskey return by _checkkey
The function was returning the old key instead of the new one. This is now
fixed.
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 11:47:14 +0200] rev 2384
test: update test-obsolete.t to use common.sh
The definition of getid() in the test file was wrong, use the one
from common.sh instead
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:23:31 +0200] rev 2383
obshashrange: log reset from new markers
This will help tracking performance impact from current limitation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:18:46 +0200] rev 2382
dualsourcecache: log cache reset
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 17:03:34 +0200] rev 2381
stablerange: log time spent updating the stable range
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 16:56:37 +0200] rev 2380
cache: track time spend updating various cache
This produce more useful blackbox log.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 15:20:53 +0200] rev 2379
obshashrange: adds blackbox usage in tests
This will help track the validation of the cache.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:45:08 +0200] rev 2378
obshashrange: test behavior in case of rollback
The cache should be properly invalidated.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:42:50 +0200] rev 2377
obshashrange: extend tests
We test more situations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:18:30 +0200] rev 2376
dualsourcecache: add a cache name
This will be used to automatically log message for blackbox
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 12:17:13 +0200] rev 2375
obscache: stop definition of the empty key
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:41:36 +0200] rev 2374
obshashrange: keep value fetched from sql in memory
This will reduce the number of roundtrip to the data base we need.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:37:45 +0200] rev 2373
obshashrange: stop inheriting from 'dict'
A simple dictionary attribute seems more simpler.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 09:52:06 +0200] rev 2372
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:23:19 +0200] rev 2371
obshashrange: to not overwrite the list with the set
We reusing the list variable lower in the code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:22:24 +0200] rev 2370
obshashrange: properly break out of the two loops
Otherwise we would continue to iterate even after we reseted the cache.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 May 2017 00:21:30 +0200] rev 2369
obshashrange: fix reset conditional
If the revision is in "revs" we should not reset the cache. The old code was
wrong (Thanks goes to new tests for catching this).
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 May 2017 11:21:41 +0200] rev 2368
cache: ensure we warm stablerange cache before the obshashrange cache
I've been seeing traceback that seems to be happening because of issues in this
area.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Tue, 16 May 2017 23:37:10 -0700] rev 2367
evolve: fixing obscache invalidation
This was missing a call to the parent's destroyed(), such that any transaction
after stripping some nodes would result in a crash (by attempting to read nodes
which were stripped).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:21:31 +0200] rev 2366
obshashrange: warm the cache at the end of each transaction
This will help having warmed cache for read only client.
The warming is still imperfect in case of markers that trigger a reset, but we
are in a better place than what we used to be.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:00:39 +0200] rev 2365
obshashrange: warm cache outside of loops
The performance impact will be lower
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:20:02 +0200] rev 2364
obshashrange: "update" the cache on each transaction close
Right now the "update" does not really file the cache, but it will detect
invalid situation and clean them.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:52:19 +0200] rev 2363
obshashrange: properly invalidate the cache on destroyed
Copy paste is the scurge of code source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:49:27 +0200] rev 2362
obshashrange: properly drop the current connection on clear
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:40:00 +0200] rev 2361
obshashrange: exit early if nothing to write
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:29:54 +0200] rev 2360
obshashrange: use the dualsourcecache as a base for the cache
This will easily open the way to incrementally updated obshashrange cache.
Small update are needed to the data base schema so be bump the version
Currently the update function is not warming the cache (but details case where
it is invalidated).
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 20:28:09 +0200] rev 2359
obscache: makes dualsourcecache compatible with obshashrange cache needs
The goal of the abstract method is to be reusable. So we make sure it is
reusable.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 21:20:40 +0200] rev 2358
readme: add a changelog entry about the more efficient obscache
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:18:49 +0200] rev 2357
obscache: extract a data agnostic class
We now have an independent class that we can reuse for other purpose
(eg: obshashrange cache)
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:07:14 +0200] rev 2356
obscache: extract the actual data update in a dedicated function
This will help extract a data agnostic class.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:05:46 +0200] rev 2355
obscache: move an assert to a lower level
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 19:04:13 +0200] rev 2354
obscache: use 'nullid' as the hash of an empty obsstore
This align this result with what we use for 'emptykey'
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:56:56 +0200] rev 2353
obcache: move empty on the class
We'll extract a smaller data agnostic class but we need to gather all method on
it first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:56:42 +0200] rev 2352
obcache: move _checkkey on the class
We'll extract a smaller data agnostic class but we need to gather all method on
it first.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 12 May 2017 18:52:59 +0200] rev 2351
obcache: move updateneeded on the class
We'll extract a smaller data agnostic class but we need to gather all method on
it first.
Boris Feld <boris.feld@octobus.net> [Fri, 12 May 2017 18:34:37 +0200] rev 2350
obshistory: only display each revision once in debugobshistory
When using a revision range, the same precursor could have been
displayed more than once. Use a cache to display each revision
only once.
It's a fix until we found the nicest way to display obs history.
Boris Feld <boris.feld@octobus.net> [Fri, 12 May 2017 11:39:41 +0200] rev 2349
obshistory: display a message when one marker node has no change ctx
When exchanging obs markers, there is some change contexts
referencing change contexts that are not available locally.
As we cannot display informations about them, instead print a
message saying so.
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 14:46:01 +0200] rev 2348
ui: hg topic now display if current revision is in bad state (issue5533)
Previously, hg topic didn't showed the state of the current
revision. Now if show both informations.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 17:00:55 +0200] rev 2347
obsstore: also guard agains changing object in '_checkkey'
The 'upgradeneeded' function needs to be able to pass the object it fetched once.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:58:43 +0200] rev 2346
obscache: guard from changing changelog or obsstore object
We access these object once to make sure they will never change through the
function (and their content will be fixed).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:45:13 +0200] rev 2345
obscache: return the new data along-side the upgrade needs (and cache key)
Having one function returning consistent data will help prevent race.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:06:31 +0200] rev 2344
obscache: use the smaller scope function
This make the function simpler and allow larger update on the 'upgradeneeded'
one.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 11 May 2017 16:05:50 +0200] rev 2343
obscache: extract the cache key validation in its own function
This help keep the "up to date logic" simpler and prepare a more complex
version of the "upgradeneeded" logic that would return the full data needed for
the upgrade.
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 11:52:11 +0200] rev 2342
obshistory: use formatter instead of ui.write in the debugobshistory command
Replace ui.write with a formater to have template support and json output.
Update tests to assert json outputs.
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 09:55:22 +0200] rev 2341
ui: Fix hg stack json output
Previously 'hg stack -Tjson' generated invalid output
like:
[
{
"isentry": true,
"topic.stack.desc": "...",
"topic.stack.index": 1,
"topic.stack.state": "current",
"topic.stack.state.symbol": "@"
}
]
,
{
"isentry": true,
"topic.stack.desc": "...",
"topic.stack.index": 1,
"topic.stack.state": "current",
"topic.stack.state.symbol": "@"
},
{
"isentry": false,
"topic.stack.desc": "...",
"topic.stack.state": "base",
"topic.stack.state.symbol": "^"
}
]
I de-indented the fmt.end() to generate this output:
[
{
"isentry": true,
"topic.stack.desc": "...",
"topic.stack.index": 1,
"topic.stack.state": "current",
"topic.stack.state.symbol": "@"
},
{
"isentry": false,
"topic.stack.desc": "...",
"topic.stack.state": "base",
"topic.stack.state.symbol": "^"
}
]
I've also added a test case.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:04:31 +0200] rev 2340
topic: configure some default color for topic
This makes thg usable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:03:05 +0200] rev 2339
topic: automatically configure thg to display topic
If no other config is set, we configure Tortoise-hg to display topic. This
should helps usability.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 13:08:45 +0200] rev 2338
readme: update readme to mention 'debugobshistory'
Boris Feld <boris.feld@octobus.net> [Tue, 09 May 2017 17:43:39 +0200] rev 2337
obshistory: add some color
Boris Feld <boris.feld@octobus.net> [Wed, 10 May 2017 12:26:33 +0200] rev 2336
obshistory: add a debugobshistory command to show obs history of a revs
Add the debugobshistory command that accept a revision range and display
the obsolescence containing each revision in the range.
For the moment, it only displays the predecessors.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 10 May 2017 12:16:01 +0200] rev 2335
tests: add the commit style checker from Mercurial
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 May 2017 19:13:12 +0200] rev 2334
obscache: update the cache key in place
Instead of computing the key in place, we update the existing one using the
data used for the incremental update of the content. This will help reaching
purely incremental cache eventually.
The 'getcachekey' function is dropped as it is no longer used.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 09 May 2017 19:02:04 +0200] rev 2333
obscache: distinct 'clear' and 'reset'
We make a difference between basic invalidatiton (or lack of loading) and
'reset' (current cache data are invalid).
We can now ensure a non-None key when we start the update. This will allow us
to "update" the existing key instead of recomputing one from scratch. This is
more efficient and less racy.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 21:24:02 +0200] rev 2332
merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 21:21:59 +0200] rev 2331
serveronly: also enable the obscache for server only setting
The obscache is useful and speeds things up. So we also enable for server only
setting.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 04 May 2017 14:02:30 +0200] rev 2330
obscache: document a possible way forward to skipping obsstore parsing
We document a possibly viable idea for updating the cache on new revs without
having to fully parse the obsstore.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 23:07:01 +0200] rev 2329
obscache: update some documentation
Update some data and do some proof reading.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 21:47:06 +0200] rev 2328
obscache: Only access the new obsmarkers for marker update
Since we know what what is the part of the file with "new" markers we can just
access these.
If the cache was up to date before the transaction, we'll re-parse data we just
wrote. See the inline comment for details. This is good enough for now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 20:56:26 +0200] rev 2327
obscache: extract _updatemarkers code into its own function
This split the update logic from the bit retrieving markers. That cannot be bad.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 18:46:48 +0200] rev 2326
obscache: extract code to update from new revision
Code cleanup and prepare upstreaming. The make the code more likely to work with
the key validation returning an iterator of revs to update the cache with.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 18:33:53 +0200] rev 2325
obscache: move assert earlier in the code
If we are to crash, let us crash earlier.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:58:32 +0200] rev 2324
merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:58:06 +0200] rev 2323
Added tag 6.1.0 for changeset 8510d3fd7c3b
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:57:55 +0200] rev 2322
packaging: prepare version 6.1.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:54:12 +0200] rev 2321
meta: update tested version to 4.1.2
We tested against the latest 4.1 too.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 03 May 2017 13:52:19 +0200] rev 2320
merge with future 6.1.0
No extra adjustment needed from hg-3.9 result
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:23:36 +0200] rev 2319
merge with future 6.1.0
No extra adjustment needed from hg-4.0 result
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:18:08 +0200] rev 2318
merge with future 6.1.0
In addition to the output reverted for 4.1, we also drop the "troubles:" entry
from the standard log.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:12:39 +0200] rev 2317
merge with future 6.1.0
test pass fine except for the removal of the extra data when accessing hidden
revision. The better message are 4.2+ only.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 13:27:26 +0200] rev 2316
compat: drop the context manager used to write the cache file
Mercurial 3.8 does not supports context manager on atomic temporary file.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:54:11 +0200] rev 2315
compat: make obscache code compatible with Mercurial version prior to 4.2
the phasecache.getrevset method is new in 4.2.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:41:54 +0200] rev 2314
evolve: record testing with 4.2
4.2 is now a things and tests pass fine.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:31:40 +0200] rev 2313
merge with default for 6.1.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:31:11 +0200] rev 2312
packaging first step toward 6.1.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 03 May 2017 12:25:53 +0200] rev 2311
auto-push: move config help in the extension help
That is a better spot than the extension itself.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 06:17:44 +0200] rev 2310
opening mercurial 4.1 compat branch
This branch will receive test update implied by the 4.2 → 4.1 changes.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 17:43:34 +0200] rev 2309
obscache: skip writing to disk if the data did not changed
This will avoid rewriting the cache for every single transaction.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:19:05 +0200] rev 2308
obscache: skip writing if the cache is empty
if the cache is empty, we can just skip writing to disk.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:17:03 +0200] rev 2307
obscache: set a valid "empty" cache key if the cache is missing
This avoid detecting bad cache when it just happens to be no cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:10:14 +0200] rev 2306
obscache: have the obsstore fix empty file cachekey
Before this change, the missing file and empty file returned different value.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 17:44:12 +0200] rev 2305
obscache: log case where the cache is not up to date
This will help track performance issue
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:13:04 +0200] rev 2304
obscache: still update and use the cache during transaction
Other code might access the obsolete set in the middle of a transaction. It is
better to use the case in that case since the update will eventually be written
when the transaction is committed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:15:01 +0200] rev 2303
obscache: warm the cache in all cases
There are case when the obsstore have been invalidated, but we still need to
update the cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:11:43 +0200] rev 2302
obscache: update the format to allow negative tiprev
If the changelog is empty (but the obsstore is not) the 'tiprev' will be -1.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 16:09:03 +0200] rev 2301
obscache: load the disk data before checking is the cache is up to date
This is actually required since non-loaded cache will never be up to date...
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 02 May 2017 02:13:33 +0200] rev 2300
obscache: skip the cache entirely if not up to date
The current update code has some race condition windows around updating. But we
also ensure the cache are up to date with every transaction. So outdated cache
mean another client have been mudding the repository but things will get back
in place at the next transaction.
So we just skip using the cache when not up to date. This is not the best we
could do. But this is good enough for now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 15:49:36 +0200] rev 2299
readme: mention that some improvement are enabled for 4.2 only
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:12:26 +0200] rev 2298
perf: use the cache to compute the obsolete set.
The official "obsolete" computation is switch to using the cache. This provide
noticable speed for operation that does not need to actually access the
obs markers. The part relating to obsolete changeset computation disappear from
the execution profile when it is used.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:14:00 +0200] rev 2297
perf: warm the cache after all transactions
This is the simplest way to ensure the data are up to date.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:13:24 +0200] rev 2296
perf: adds a cache to know if obsmarkers might affect a revision
Phase information still needs to be thrown in the mix to compute the final
information, but skipping reading the obsstore for most operation is a large
win.
Usage of this cache arrives in the next changeset.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:07:05 +0200] rev 2295
perf: adds cachekey utility to validate changelog+obsstore content
We adds more helper about cache key to prepare the arrival of a cache that can
be updated iteratively (similar to branchmap cache)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 08:05:45 +0200] rev 2294
perf: adds some cache key helper on the obsstore class
This will be useful to allow validating cache depending on obsstore without
parsing the whole obsstore.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 May 2017 06:06:41 +0200] rev 2293
compat: only install the better filtered message for mercurial 4.2 and above
The helper function does not exist in earlier version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Apr 2017 05:35:01 +0200] rev 2292
evolve: update extension help
I'm pretty sure there are some missing bits, but this cannot be worse than
before.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Apr 2017 05:44:07 +0200] rev 2291
merge with stable
Boris Feld <boris.feld@octobus.net> [Fri, 28 Apr 2017 16:56:09 +0200] rev 2290
ui: change the hidden revision error message
It now display the same details than the warning
when the working directory parent become obsolete
like:
$ hg update 0
abort: hidden revision '0' (successor: f301a99bd857)!
$ hg up 1
abort: hidden revision '1' (pruned)!
$ hg update 0
abort: hidden revision '0' (successors: 91311af6da10, 70653776ec4c)!
Boris Feld <boris.feld@octobus.net> [Fri, 28 Apr 2017 16:57:41 +0200] rev 2289
ui: add better messages when the working copy become obsolete.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Apr 2017 15:29:32 +0200] rev 2288
topic: directly use "super" call
That is how one is supposed to do it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 27 Apr 2017 20:52:09 +0200] rev 2287
repo: properly progate "destroyed" call to super class
The propagation of the 'destroyed' call was dropped. I'm not certain of the
consequences of having a partially broken "destroyed" call, but this can't be
good.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 25 Apr 2017 10:56:55 +0200] rev 2286
safeguard: add an option to disable automatic publishing
Pushing to publishing server by mistake is a bit too common in the current state
of evolve. Especially when the lack of good feature branch story make the use of
-f a bit too common.
So we add a very simple experimental option to allow warning (or abort) when
changeset are pushed to a publishing server. This is unlikely to survive as is,
but this is useful now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 13:05:45 +0200] rev 2285
merge back with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 13:04:31 +0200] rev 2284
Added tag 6.0.1 for changeset 5ef112a6eb87
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:59:19 +0200] rev 2283
pkg: prepare release 6.0.1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:58:27 +0200] rev 2282
debian: finalize 6.0.0 entry
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:54:57 +0200] rev 2281
readme: fix 6.0.0 release date
It was March, not February.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:50:22 +0200] rev 2280
merge with future 6.0.1
Nothing special to report
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:48:31 +0200] rev 2279
merge with future 6.0.1
Nothing special to report
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:45:02 +0200] rev 2278
merge with future 6.0.1
Nothing special to report
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 12:24:43 +0200] rev 2277
checkheads: update tests to match the one in core
These test now exists in core, so we update the evolve version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 11:43:57 +0200] rev 2276
serveronly: fix reposetup
The local 'reposetup' function was shadowing the extension helper one. We add a
test for obshashrange using 'serveronly' since this is the item that made use
discover the issue.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 11:41:20 +0200] rev 2275
extension: simplify the extensions helper hierarchy
If one mode depends on the other, its extensions helper is merged.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 20 Apr 2017 11:40:08 +0200] rev 2274
checkheads: do not overwrite code for Mercurial 4.2 and above
The fix has been ported to Mercurial core as c6cb21ddf74a.
Yuya Nishihara <yuya@tcha.org> [Thu, 20 Apr 2017 00:21:13 +0900] rev 2273
legacy: fix debugrecordpruneparents to call obsstore.create() with keywords
It appears the API was changed twice in Mercurial at
- 570f87422f54 "obsstore: add an explicit `date` argument to obsstore.create"
- adb3798dce49 "obsstore: add a `parents` argument to obsstore.create"
and metadata would be changed to a list of (key, value) pairs. Convert it back
to a dict as expected by create().
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Apr 2017 21:17:43 +0900] rev 2272
template: adapt to new showlist() API introduced by hg e5eab0fe69ee
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Apr 2017 21:12:09 +0900] rev 2271
template: pass all mapping data to showlist()
Otherwise a keyword depending on repo or ctx couldn't be rendered.
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Apr 2017 21:37:28 +0900] rev 2270
make: merge recipes for help
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Apr 2017 21:34:03 +0900] rev 2269
make: fix indent of ifeq-endif
ifeq() can't be a recipe.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 08 Apr 2017 12:48:20 +0200] rev 2268
tests: update test to match upstreamable version
Name have been clarified, documentation has been updated and some test-case have
been updated to match the intended test.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 08 Apr 2017 12:45:39 +0200] rev 2267
tests: fix directory names in exchange-D4 test
The test is based on another one and the directory name had not been updated.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 08 Apr 2017 12:43:36 +0200] rev 2266
tests: fix directory names in exchange-D3 test
The test is based on another one and the directory name had not been updated.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 01 Apr 2017 12:45:18 +0200] rev 2265
merge back with default
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:51:58 +0200] rev 2264
Added tag 6.0.0 for changeset 165ad227993d
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:51:27 +0200] rev 2263
packaging: prepare version 6.0.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:47:31 +0200] rev 2262
merged with future 6.0
No output changed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:44:10 +0200] rev 2261
test-compat-hg-3.9: merge with future 6.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:39:20 +0200] rev 2260
merge with future 6.0.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:33:59 +0200] rev 2259
merge with default
We are getting close to cutting a 6.0.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 14:50:50 +0200] rev 2258
readme: mention the fix for issue4354
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 15:02:39 +0200] rev 2257
checkheads: add a small debug message in case were we give up fast
When node is unknown we assume it will stay. Yet, we might have markers to it
that are going to be pushed. However, we do not have branch (ancestors)
information unless we are very lucky an all of them are pruned. So for now we do
not do anything assuming this will be rare.
We still add a small debug message to help detecting such situation in the
future.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 13:46:51 +0200] rev 2256
checkheahds: switch algorithm to use pushed markers instead
We now checks if markers involved in the push are relevant to nodes in the
branch we try to replace. The approach is simpler and more robust.
A test showing the limitation of the previous approach is added.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 13:47:14 +0200] rev 2255
checkheads: add test where the rewrite of the other branch is not direct
This will help testing that our logic is properly transitive.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 13:45:26 +0200] rev 2254
check-heads: add tests about old heads indirectly pruned
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 17:50:33 +0200] rev 2253
checkheads: add more complexe case where a branch is split on multiple ones
We extend case A-6 and A-7 with partial counterpart. These case are interesting
because some of the partial pushing will (rightfully) works and some other won't.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 17:35:55 +0200] rev 2252
checkheads: add a test of partially pushing a branch spread on multiple other
If a branch is fully obsolete but is result are spread on multiple branch,
pushing only one of them should detect we create new branches.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 31 Mar 2017 13:42:28 +0200] rev 2251
checkheads-tests: add missing parents recording for prune markers
It is a bit too easy to forget about theses :/ If they are missing, the
markers are not going to be exchanged on push.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 14:02:46 +0200] rev 2250
checkheads: add some extra tests about "partial push"
This adds a couple of test that checks that the head replacement code is
properly ignored replacement not relevant to the push.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 15:48:27 +0200] rev 2249
checkheads: handle partial obsolescence
We now properly detects situations were only parts of the remote branch is
obsoleted. To do so, we process children in the branch recursively to see if
they will be obsolete.
The current code has some trouble when the remote branch in unknown locally, or
when the prune happened on a successors that is not relevant to the push. These
case will be handled later.
The processing code is becoming more and more complex, a lighter approach would
be to check for the obsolescence markers that are relevant to the pushed set,
but I prefer to stick with the current approach until more test cases are
written.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 16:41:42 +0200] rev 2248
test: force a push in inhibit's test
Our checkheads detection code is becoming better and will prevent that push. As
we do not care about this for inhibit, we simply force the push.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 21 Mar 2017 12:30:53 +0100] rev 2247
checkheads: basic handling of pruned heads (and associated tests)
We now detect that heads was pruned and stop warning about it. Note that this
has the same shortcoming as the existing code and only looks at the heads.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 29 Mar 2017 16:28:15 +0200] rev 2246
checkheads: give up on processing locally unknown changeset
There are too many issue with locally unknown changesets, we ignore them for
now while we get the core feature of the detection working.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 21 Mar 2017 23:44:30 +0100] rev 2245
checkheads: import our own copy of the checkheads code
I expect enough change and experimental will be made that is it worthwhile
having them done in evolution close to the rest of the exchange tests make
sense.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 26 Mar 2017 04:59:36 +0200] rev 2244
compat: work around some filecache bug in 3.8
We are still compatible with this version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 18:21:48 +0100] rev 2243
obshashrange: have an half descent wireprotocol command
The previous implementation was extremely hacky. The new version is based on the
other discovery function and work!
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 18:37:03 +0100] rev 2242
obshashrange: improve message issued during discovery
This is a minor new message that help to understand what is going on.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 18:28:01 +0100] rev 2241
obshashrange: introduce basic sqlite caching
Same as for stablerange, this is far from perfect but already a win.
The cache is currently extremely volatile, but that will still be a win when
doing multiple consecutive request during discovery.
Better cache invalidation will happens "in the future".
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 15:57:54 +0100] rev 2240
stablerange: warm cache before using it server side
We make sure the cache is fully up to date before starting to use it. Updating
all value is more efficient and this give us a single point where we update and
write on disk. Hopefully the cache have been kept up to date as we go anyway.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 15:57:08 +0100] rev 2239
stablerange: warm cache before using it in findrangemissing
We make sure the cache is fully up to date before starting to use it. Updating
all value is more efficient and this give us a single point where we update and
write on disk. Hopefully the cache have been kept up to date as we go anyway.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 15:56:57 +0100] rev 2238
stablerange: warm cache on transaction (if obshashrange is enabled)
If we plan to use it (obshashrange is enabled) we better keep it up to date. If
a transaction adds node, we update the cache (this should also update the on
disk version).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 16:05:28 +0100] rev 2237
stablerange: introduce ondisk caching through sqlite
There is many short cut and limitation with this first version of a cache but
this allow use to envision some actual usage of the stablerange thingy so let us
got for it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 18:41:55 +0100] rev 2236
stablerange: drop the cache on 'destroyed'
if the repository have been strip, the cache is not usable as is. We could be
smarter in the invalidation but that is a prototype anyway.
G: changed hgext3rd/evolve/stablerange.py
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 11:27:56 +0100] rev 2235
stablerange: support loading the cache iteratively
We record how far we loaded so that we can resume from this point.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 11:20:42 +0100] rev 2234
stablerange: add some basic documentation about the cache
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 11:18:01 +0100] rev 2233
stablerange: warmup all upto a revision
Let us start doing more systemic warming of the cache before we start writing
things out. This prepare on disk caching.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 10:22:38 +0100] rev 2232
debugstablerange: add a --verify flag to the command
This should help us finding bugs.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 10:12:02 +0100] rev 2231
stablerange: add a proper debugstablerange commands
This commands allows to inspect the standard stable range of a range. That
should come handy.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:49:03 +0100] rev 2230
debugobshashrange: add a --subranges option
We stop displaying -everything- by default, since is is usually very large. This
will help getting better timing when measuring cache effect too, since we won't
need to dig out deep cache value that real life usage would not touch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:42:39 +0100] rev 2229
debug: rename 'debugstablerange' to 'debugobshashrange'
The command is more about the 'obshashrange' computation.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:40:50 +0100] rev 2228
debugstablerange: improve output spacing
On repo with a descent amount of changeset the number where overflowing in all
directions. We give use more room now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:21:05 +0100] rev 2227
subranges: add a utility function to set the cache
This is preparing on disk persistence for the value in this cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:18:50 +0100] rev 2226
subranges: add a utility function to access the cache
This is preparing on disk persistence for the value in this cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:15:18 +0100] rev 2225
depth: add a utility function to set the cache
This is preparing on disk persistence for the value in this cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:01:25 +0100] rev 2224
depth: add a utility function to access the cache
This is preparing on disk persistence for the value in this cache.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 03:20:29 +0100] rev 2223
stablerange: add warming of the subrange
Note that this means we build standard stable subrange for all changesets in the
repository this is significantly more than what we were computing before and
result is significantly more ranges being computed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 11:04:38 +0100] rev 2222
stablerange: fix merge slicing when range has multiple roots
The first element in the bottom set is not necessarly the one with the lowest
revision. We now properly compute and use the minimum value.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 09:04:34 +0100] rev 2221
stablerange: small style fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 08:16:00 +0100] rev 2220
merge-slicing: introduce and use "inheritance point" for merge
The first part of the stable sorted list of revision of a merge will shared with
the one of others. This means we can reuse subranges computed from that point to
compute some of the subranges from the merge.
That point is latest point in the stable sorted list where the depth of the
revisions match its index (that means all revision earlier in the stable sorted
list are its ancestors, no dangling unrelated branches exists). This is a bit
expensive to find since we have to walk all the revision, but being able to
reuse subranges in all case (not just regular changesets) provide a massive
speedup so the cost is worth it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 08:31:10 +0100] rev 2219
stablerange: rearrange the code picking subrange to warm
Same logic, as the previous changesets, we prepare the code before adding merge
support.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 08:20:36 +0100] rev 2218
stablerange: rearrange the reusing logic to prepare to merge
We'll soon be able to reuse some lower range when dealing with merge too. So we
prepare the code for this in advance for clarity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 06:24:02 +0100] rev 2217
merge-slicing: explain an alternative implementation in a comments
It has a better time complexity so a C implementation would likely out perform
the current implementation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 06:36:12 +0100] rev 2216
merge-slicing: use reachable roots to filter the various branches
Reachable roots does what we want and have a quite fast C implementation.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 05:51:20 +0100] rev 2215
merge-slicing: simplify various aspect of the code
Especially the case were the bottom have single heads is not more efficiently
handled.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 14:17:15 +0100] rev 2214
stablerange: soon it will not provide any benefit and it gets in the way
This was a bit strange and memory consuming anyway.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 06:31:32 +0100] rev 2213
revsfromrange: reuse information from the stablesort
We collaborate with the stablesort to store the order that led to a merge. That
way, when we needs to retrieve revision from that merge we can reuse that order.
We might need to filter to only retains ancestors of the merge we care about but
skipping the stablesort safe a large amount of time.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 03:22:56 +0100] rev 2212
stablesort: allow a callback to be triggered on merge
Storing some information as we sort is going to be useful to avoid performing
multiple sort while computing the stablerange.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 03:33:36 +0100] rev 2211
minor simplification around rangelength
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 03:30:14 +0100] rev 2210
more explicite name in revsfromrange
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Mar 2017 05:15:25 +0100] rev 2209
stablerange: cache parents
We happens to be doing and awful amount of parent call. We cache them locally
for efficiency.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 12:53:39 +0100] rev 2208
merge-slicing: avoid doing the same work twice
We have already computed the list of revision in that bottom slice as 'hrevs' so
we do not need to compute it a second time.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 14:16:43 +0100] rev 2207
stablerange: fix a bug when a top slice ended on a merge
Our "smart" detection of merge was buggy if the top slice ended on a merge. This
is not fixed and tested.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 10:49:03 +0100] rev 2206
slicesrangeat: stop double setting the revsinranges cache
The cache should have already been filled by the logic warming the cache for the
parent.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 10:44:12 +0100] rev 2205
subranges: remove the recursivity of the call to isubranges(parentrange)
We add some logic to ensure we'll have hot cache for the parent ranges when that
matters, the cache is filled from ancestors to descendant to ensure this. The
range are still 'created from descendant to ancestors to fill the revsfromrange
cache since it important.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 10:19:59 +0100] rev 2204
subranges: detach cache logic from computation logic
Having both the logic around cache checking and setting makes is a bit harder to
follow. In addition, this allow to gather the computation logic next to the
other related function.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 10:07:21 +0100] rev 2203
findmissingrange: properly queue new subrange for slicing
The previous code was buggy and used the wrong variable leading to no extra
slicing being performed to file the sample at the requested size.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 10:06:20 +0100] rev 2202
findmissingrange: fix reversed value in debug output
"oops"
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 22:05:30 +0100] rev 2201
stablecache: warmup on unfiltered repository
We only looks at ancestors revision so filtering will not have any effect. This
reduce overhead from the filtering.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 21:11:35 +0100] rev 2200
stablerange: rename the class
This is much more than just a cache now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Mar 2017 09:40:04 +0100] rev 2199
stablerange: do not inherit from dict
This seems like and old cargo cult that when unnoticed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 21:10:01 +0100] rev 2198
stablerange: move a utility function around
It make more sense to have this small function earlier in the series
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 21:09:28 +0100] rev 2197
stablerange: remove the now unused individual range class
That class is now longer necessary, we dropped its usage for performance reason.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 21:08:58 +0100] rev 2196
stablerange: directly use tuple to refer to a stable range
Now that all advance logic lives in the unified class we no longer needs the
individual class. Creating and operating on this cache introduce a significant
overhead that we can not stop having.
From now on, a range a is pair tuple '(headrev, index)'. Long live the tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 21:28:18 +0100] rev 2195
obshash: properly cache obshash value
The code was buggy and only cached non-nullid/non-inherited value. This was
previous hidden because we were using a 'propertycache' to cache the value on
the range object. This fixes it and restore a lot of performance.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:59:42 +0100] rev 2194
stablerange: directly use 'self' when possible
Code movement introduced multiple silly case were we where accessing 'self'
though 'repo.stablerange' for no good reasons.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:56:17 +0100] rev 2193
revsfromrange: set the cache for the multiple bottom ranges in merge slicing
We no longer rely on the object magic here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:55:43 +0100] rev 2192
revsfromrange: set the cache for the single bottom range in merge slicing
We no longer rely on the object magic here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:55:23 +0100] rev 2191
revsfromrange: set the cache for the top range in merge slicing
We no longer rely on the object magic here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:44:29 +0100] rev 2190
revsfromrange: remove reference to '_revs' in merge slicing
Given '_revs' is a property from the cache, we use the official method of the
object we are on instead. That method should be using the same cache than the
property if available.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:37:27 +0100] rev 2189
revsfromcache: update cache for the top slice if possible
Same logic, we update the cache if have the data.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:37:03 +0100] rev 2188
revsfromrange: skip setting the cache for length-1 top entry
The content of the range is trivial to compute.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:36:19 +0100] rev 2187
revsfromrange: update cache for parentrange directly in the code
We update it where it matters if we detect that we have the data.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:34:07 +0100] rev 2186
revsfromramge: hard code the single changeset range case
That case is trivial and triggering and full stable sort for it seems a bit
silly.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:18:01 +0100] rev 2185
stablerange: introduce caching for the full revision in a set
Such cache proved handy in the "per-range" class so we carry it along to the
unified class. cf documentation for details.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:11:19 +0100] rev 2184
stablerange: add a cache for stablesort ordering
This will be very handy for merge, cf inline documentation for details.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 20:05:21 +0100] rev 2183
stablerange: move revs computation within the main class
We still need to compute the revision withing a range when we slice a merge.
This is the last large logic that remains in the individual class and we migrate
is on the main class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:42:37 +0100] rev 2182
stablerange: minor method reorders on the main class
We put the public method first for clarify.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:30:23 +0100] rev 2181
stablerange: drop "key" and "id" logic form the class
We can restrict to the bare minimun for equality and hashing now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:28:14 +0100] rev 2180
stablerange: drop length from the class
There is not remaining user.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:26:40 +0100] rev 2179
stablerange: drop _depth
Nothing uses it anymore.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:25:12 +0100] rev 2178
stablerange: drop __repr__
IT was used for debug and the class is on it way out.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:23:32 +0100] rev 2177
stablerange: drop the subranges method on the small class
Nobody use it anymore.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:21:41 +0100] rev 2176
stablerange: use subranges from the main class in subrangesclosure
This is the last method used on the class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:21:18 +0100] rev 2175
stablerange: use subranges from the main class in _obshashrange
This is the last method used on the class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 19:20:30 +0100] rev 2174
stablerange: use subranges from the main class in findrangemissing
This is the last method used on the class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:55:26 +0100] rev 2173
stablerange: make sure nobody use '.depth' anymore
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:54:45 +0100] rev 2172
stablerange: use depthrevs in range slicing
We stop using the property from the class to get us closer to tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:53:25 +0100] rev 2171
stablerange: use depthrevs in debugstablerange
We stop using the property from the class to get us closer to tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:41:26 +0100] rev 2170
stablerange: use rangelength inside the class itself
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:40:54 +0100] rev 2169
stablerange: use rangelength in '_slicesatrange'
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:40:19 +0100] rev 2168
stablerange: use rangelength in '_slicepoint'
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:39:47 +0100] rev 2167
stablerange: use rangelength in subrangesclosure
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:37:11 +0100] rev 2166
stablerange: use rangelength in _obshashrange
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:36:37 +0100] rev 2165
stablerange: use rangelength in debugstablerange
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 18:35:05 +0100] rev 2164
stablerange: use rangelength in findmissingrange
We stop using the building '__len__' this get use closer to be able to use a
tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:59:21 +0100] rev 2163
stablerange: make sure nobody use '.index' anymore
We rename the attribute for good measure.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:57:04 +0100] rev 2162
stablerange: stop using '.index' inside the class itself
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:55:57 +0100] rev 2161
stablerange: stop using '.index' in '_slicesrangeat'
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:53:39 +0100] rev 2160
stablerange: stop using '.index' in '_slicepoint'
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:52:53 +0100] rev 2159
stablerange: stop using '.index' in 'rangelength'
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:52:29 +0100] rev 2158
stablerange: stop using '.index' in '_queryrange'
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:52:08 +0100] rev 2157
stablerange: stop using '.index' in debugstablerange
We now access '[1]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:48:39 +0100] rev 2156
stablerange: make sure nobody use the 'stablekey' property outside the class
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:47:09 +0100] rev 2155
stablerange: make sure nobody use '.head' anymore
We rename the attribute for good measure.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:45:39 +0100] rev 2154
stablerange: stop using '.head' inside the class
We now access '[0]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:45:21 +0100] rev 2153
stablerange: stop using '.head' in '_slicesrangeat'
We now access '[0]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:44:10 +0100] rev 2152
stablerange: stop using '.head' in '_slicepoint'
We now access '[0]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:43:36 +0100] rev 2151
stablerange: stop using '.head' in rangelength
We now access '[0]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:43:18 +0100] rev 2150
stablerange: stop using '.head' in debugstablerange
We now access '[0]' as we'll do with the future tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:38:28 +0100] rev 2149
stablerange: remove node unused 'node' property
Close to killing that object.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:35:08 +0100] rev 2148
stablerange: stop using '.node' in __repr__
This remove the last user to this method.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 17:33:41 +0100] rev 2147
stablerange: change the key to use the revision number
Using node is more stable but for now do not have on disk caching and revision
number should be find in memory. This makes the data used for the file cache
closer to what it will be when we use tuple.
We might reintroduce node in the future but let us keep it simple for now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 06:05:44 +0100] rev 2146
stablerange: stop using '.node' in _queryrange
We access the range-head revision number by index and convert it on site.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 06:05:32 +0100] rev 2145
stablerange: stop using '.node' in debugstablerange
We access the range-head revision number by index and convert it on site.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 06:04:30 +0100] rev 2144
stablerange: stop using '.node' in findmissingrange
We access the range-head revision number by index and convert it on site.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 06:03:57 +0100] rev 2143
stablerange: stop using '.node' in obshashrange
We access the range-head revision number by index and convert it on site.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 06:02:45 +0100] rev 2142
stablerange: stop using '.node' in subrangesclosure
We access the range-head revision number by index and convert it on site.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 05:15:49 +0100] rev 2141
stablerange: have the class behave as a tuple
If we want people to use a tuple, we should offer them a tuple. This should help
update most of the code iteratively.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 05:44:39 +0100] rev 2140
obshashrange: extract computation back into the discovery module
This obshash is related to discovery and it seems more appropriate to have to
live there. This remove the last large piece of logic from the class. We'll now
be able to slowly turn it into a tuple.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 05:36:45 +0100] rev 2139
obshashrange: use a small utility function to access the obshash
If we want the object to disappear we needs the top level code to stop accessing
its attribute.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 05:32:25 +0100] rev 2138
debugstablerange: minor code reformat
The content of that list will become more complex as we drop the object so we
make sure to have one value per line for clarity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 05:09:21 +0100] rev 2137
stablerange: move the subrangesclosure inside the module
This seems more suitable and open the way to simple update of how we build
things without too much impact outside the module. The debug command is still in
the 'obsdiscovery' module because it also deal to obshash and I'm not sure of
were this should live yet.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 05:33:52 +0100] rev 2136
stablerange: compute subranges from parent when possible
Unless we are a merge, we can infer the standard subranges of a range by reusing
the subranger of its parent. We update the implementation to do so.
We still needs the "old way" for merge. We move that code in a dedicated
function for the sake of simplicity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 04:27:42 +0100] rev 2135
stablerange: add an official warmup function
The function is responsible for making sure we have the necessary data for a
sets of heads. For now this only warm the depth cache. More will follow soon.
Such explicite warmup will be usefull for on disck caching as an early point of
writing will be easier.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 04:47:31 +0100] rev 2134
stablerange: remove now unnecessary setter
The class is handling all computations and cache access by itself now. So we can
drop this method.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 04:45:28 +0100] rev 2133
stablerange: directly perform slicing in the getting method
Now that all necessary functions are available, we simply apply the standard
slicing on cache miss and proceed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 04:43:33 +0100] rev 2132
stablerange: move standard slice point definition in main class
More migration of code away from the doomed individual class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 04:39:00 +0100] rev 2131
stablerange: move the slicing method on the central class
We migrate code away for the individual range class.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 03:07:01 +0100] rev 2130
stablerange: move the range class in the new module
Our ultimate goal is to remove this class for performance reason. however for
now, it contains most of the code we care about so we migrate it as a block
first.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 03:06:53 +0100] rev 2129
stablesort: move into the stablerange module
The stable range rely on the stable sort so it make senses to move it there.
Will need direct access to it in the future.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 03:49:40 +0100] rev 2128
subranges: migrate handling of single element range
This is the simplest case by far, so we start with that one. We still use the
rich object as an argument, but we'll do our best to not relying on that. This
is important for performance reason.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 03:47:28 +0100] rev 2127
stablerange: move the subrange cache into our new class
This is the first step toward having more logic in that class
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 19 Mar 2017 00:44:31 +0100] rev 2126
depth: extract code dedicated to depth of a merge in its own function
The merge case is more complicated than the regular one, we extract is for the sake of
clarity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 18 Mar 2017 22:48:26 +0100] rev 2125
stablerange: move 'depth' inside a new 'stablerange' module
The stablerange used for discovery requires significant amount of code. There is
algorithme, cache, cache persistence, etc. So we create a dedicated module for
it.
The function is directly moved into a rich class handling cache (for now in
memory) because we know we will need it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 03:15:58 +0100] rev 2124
obsdiscovery: document the status of the module
I figured i would be useful to document what we expect from the code in each
module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 03:13:15 +0100] rev 2123
split: move the debugcommand into a dedicated module
The code related to debugobsstorestat is fairly independant, we move it into its
own module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 22 Mar 2017 03:00:11 +0100] rev 2122
legacy: move 'debugrecordpruneparents' in the extensions
The transition is a couple of year old now, repository with the old format must
be quite hard to find by now.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 16 Mar 2017 21:16:57 -0400] rev 2121
checks: correct the shebang line filtering for python files
As it is, the only related file is docs/test2rst.py, which was covered by **.py.
Not sure if it matters, but most patterns in core tests are for "#!.*?python".
(Though there are a couple "#!.*python" tests.)
Matt Harbison <matt_harbison@yahoo.com> [Thu, 16 Mar 2017 23:17:07 -0400] rev 2120
tests: add glob for Windows
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 21 Mar 2017 11:58:55 +0100] rev 2119
tests: adds simple test case for heads checking
This is the start of some systemic testing of the head superceeding detection
mechanism.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 21 Mar 2017 10:25:12 +0100] rev 2118
tests: move exchange utility in testlib
We have a testlib directory now lets use it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 16:56:48 -0700] rev 2117
exchange: fix some wrong reference to serveronly
The function have all moved into 'obsexchange' now, so we do not need (and
actually cannot) seek them in 'evolve.serveronly'.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 15:50:43 -0700] rev 2116
checks: add a test that check MANIFEST.in content
This make sure we keep the things updated.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 15:43:19 -0700] rev 2115
README: add a link to mercurial devel
This will help people to find the mailing list details.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 15:42:51 -0700] rev 2114
README: tries to improve the title about server only
This seems a bit better.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 15:42:21 -0700] rev 2113
README: remove mention of make
Using pip in all cases seems a better direction.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 15:02:06 -0700] rev 2112
version: mark the current source as development version for 6.0.0
This is useful to distinguish the development version from the latest tagged
version. In this particular case, this will allow us to publish a pre-version on
pypi.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:52:56 -0700] rev 2111
mercurial-3.8: merge with future evolve-6.0.0
We introduces the new code on the compat branch to check the tests.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:47:20 -0700] rev 2110
mercurial-3.9: merge with hg-4.0 branch
We merge with the code for the future evolve 6.0.0 code to check for
compatibility.
Only minor test output change (" -> ') have been noted.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:38:10 -0700] rev 2109
mercurial-4.0: merge with future 6.0.0
A new version will be released soon, we start handling mismatch in test output
to make the actual release time smoother.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:27:43 -0700] rev 2108
checks: update pyflakes matching too
We make sure to not select removed files.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 14:19:11 -0700] rev 2107
checks: do not run pyflake on removed file
The fileset matches removed files. This confuses pyflakes for good reasons.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:31:03 -0700] rev 2106
compat: closing mercurial-3.7 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.7. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:30:41 -0700] rev 2105
compat: closing mercurial-3.6 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.6. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:30:13 -0700] rev 2104
compat: closing mercurial-3.4 compatibility branch
The "evolve-6.0.0" release drop compatibility with Mercurial 3.4. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:28:58 -0700] rev 2103
compat: closing mercurial-3.5 compatibility branch
The "evolve-6.0.0" release drop compatibility with mercurial 3.5. No new commit
are expected on this branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 11:26:55 -0700] rev 2102
README: timeless typo fixes
This applies some feedback timeless provided me from IRC.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 09:51:25 -0700] rev 2101
cleanup: drop an empty section header
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 14 Mar 2017 09:50:55 -0700] rev 2100
compat: drop some <hg-3.4 compatibility code
The `hg commit` commands has a -i flag for ages now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 23:28:57 -0700] rev 2099
README: more update to prepare for pypi upload
* mention the evolve.serveronly extension,
* remove help related to topic into a different README file.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 16:53:42 -0700] rev 2098
evolve: update the capabilities and commands name for obshashrange
We makes is clear that these version are useful for earlier testing but they are
not ready for any kind of real usage yet.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 16:05:33 -0700] rev 2097
README: more change to have a pretty rendering on pypi
We moves section around and fixes some markup.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:41:02 -0700] rev 2096
MANIFEST.in: fix various mismatch
check-manifest is no longer complaining
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:33:00 -0700] rev 2095
README: rework install instruction
For both evolve and topic. The topic introduction is updated too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 13 Mar 2017 15:09:21 -0700] rev 2094
README: rework the intro
Less scary wording (similar to the wiki changes) and point to the user mailing
list.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 14:59:09 -0800] rev 2093
rangeobshash: minor cleanup of the obshash code
We achieved minor speedup by delaying the hashing until we know it is needed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 14:46:27 -0800] rev 2092
stablerange: remove call to 'repo.revs'
It turned out that the percentage of time spend parsing the revset string was
two digits, so we compute de heads inline.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 12 Mar 2017 08:38:39 -0700] rev 2091
stablerange: reuse node calculation as much as possible
We have a property cache with that value, so we just reuse it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:21:22 -0800] rev 2090
stablerange: adds some caching of the subranges
The goal of subranges is to be as reusable as possible, so we cache the subrange
relationship to take advantage of this.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:15:56 -0800] rev 2089
stablerange: operate on an unfiltered repository
We only do operation on ancestors so using unfiltered is fine.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 12:15:08 -0800] rev 2088
depth: use lower lever function to compute missing
The time spend parsing the revset is noticeable.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 10:26:30 -0800] rev 2087
depth: update depth to code to reuse ancestors depth
Computing the depth of all N revs is no longer 'O(N**2)'
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 09:08:20 -0800] rev 2086
obsdiscovery: extract a smarted depth in utility
The function is reusing previous depth for ancestors unless this is a merge.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 11 Mar 2017 08:46:21 -0800] rev 2085
obsdiscovery: simply some of the missing computation
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 12 Mar 2017 08:15:14 -0700] rev 2084
discovery: implement some range based discovery
This use the previously implemented methods to implement some discovery and
fetch method using ranges.
There is currently major performance issue and some aspect of the protocol will
changes.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 10 Mar 2017 10:36:46 -0800] rev 2083
discovery: introduce a official 'obshash associated to a range
The hash in a combination of the hash a its subrange. If the range is a leaf,
we have the obsmarker relevant to the node in that leaf range.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 22:57:41 -0800] rev 2082
discovery: introduce "stable slicing" methods
We introduce new code that leverage the stable sorting to slices a graph in a
way "stable" accross repository. This should allow us to use theses slices for
obsolescence markers discovery.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 19:18:11 -0800] rev 2081
discovery: adds a function doing revnum independant sorting
The function is doing a topological sort without depending on revision number.
This make the sort independent of the repository and suitable for discovery.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:36:46 -0800] rev 2080
hgignore: also ignore the 'dist' directory
This is generated by the 'sdist' command
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:31:55 -0800] rev 2079
obsexchange: drop unused module
shame shame shame
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:08:45 -0800] rev 2078
MANIFEST.in: also includes topic
That was also overlooked when we added topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 18:07:58 -0800] rev 2077
MANIFEST.in: fix to include all evolve submodule
This was overlooked before.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:58:15 +0100] rev 2076
obsdiscovery: organize the code by category
A private function get promoted to public since another module uses it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:50:50 -0800] rev 2075
evolution: drop the old __temporary__.advertiseobsolete option
Mercurial code supports such feature directly though its
'experimental.evolution' config option. So we drop the old code and config.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:34:30 -0800] rev 2074
README: mention the 'serveronly' extensions
It is now properly installed with the package.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 17:33:57 -0800] rev 2073
server only: test a more standard method of disabling exchange
We have an "official" config option from core so lets just use it.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 Mar 2017 12:47:31 -0800] rev 2072
debian: don't delete evolve and topic extensions
The debian packaging rules deletes all __init__.py to avoid
conflicting with the __init__.py that declares the namespace
package. Now that the evolve and topic extensions also live in
__init__.py files, we clearly don't want to delete all __init__.py
files anymore; only the hgext3rd/__init__.py should be deleted.
Arun Kulshreshtha <kulshrax@fb.com> [Thu, 09 Mar 2017 12:20:27 -0800] rev 2071
serveronly: replace exc.message with str(exc)
BaseException.message is deprecated in Python 2.6, so use str() instead.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 13:11:20 -0800] rev 2070
cleanup: stop using 'repo.join' methods
These repository method might get deprecated soon. In addition, accessing the
vfs-s is not that hard.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 10:42:50 -0800] rev 2069
setup: add author_email
The 'sdist' command complains about it otherwise.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 09 Mar 2017 10:42:25 -0800] rev 2068
readme: make it valid rst
That will eventually please pypi
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 Mar 2017 08:33:00 -0800] rev 2067
setup.py: remove unused and harmful code importing mercurial
This was failing on some build system we have. The import seemed to
succeed, but then mercurial.__all__ would fail. I don't know why, but
since it's unused anyway, let's just drop it.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 08 Mar 2017 13:48:35 -0800] rev 2066
docs: update references to installation path
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 17:07:38 -0800] rev 2065
test: rename serveronly tests to reflect the new extension name
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:52:04 +0100] rev 2064
evolve: stop running 'serveronly' setup
Since there is no common logic remaining the smaller extension we can stop
running its setup in the main extensions
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:49:22 +0100] rev 2063
discovery: directly merge the 'obsdiscovery' exthelper in top level extensions
There is no reason to proxy it through the 'obsexchange' submodule.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:47:09 +0100] rev 2062
compat: drop advertising of unsupported experimental bundle2 part
The support for this part was dropped long ago in 74bc8a0c2c02. But we forgot
to remove it from the 'simple4server' extension.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:45:21 +0100] rev 2061
exchange: dispatch all code in 'serveronly' to the appropriate submodule
All code related to exchange is now in either 'evolve.obsexchange' or
'evolve.obsdiscovery', and the 'serveronly' extension is using their 'exthelper'
to set itself up. As a side effect, the 'serveronly' extensions now enable
better exchange when pushing from that server too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 15:35:16 -0800] rev 2060
capabilities: properly sort capabilities after updating them
Capabilities are usually sorted. This is especially useful to avoid silly error
in test.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:10:57 +0100] rev 2059
pull: also issue warning for old mercurial version
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 15:04:58 +0100] rev 2058
exchange: split between modern and legacy code
We make it clearer what code is old crust and what code is the cutting edge
part.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:59:00 +0100] rev 2057
push: add extra warning about pushing to old server
Pushing using old method is slow and racy. We adds warning to point this to the
user.
We also add inline comment to clarify the function purpose.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:45:02 +0100] rev 2056
push: exit obsexchange early if disabled
We were exiting the function later, in particular -after- issuing a message
about exchanging obsmarkers.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:41:53 +0100] rev 2055
compat: drop special code handling change in push/pull op API
All version of Mercurial we support have the same API.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:29:43 +0100] rev 2054
discovery: split discovery related code in 'obsdiscovery'
More code splitting for more clarity.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 14:19:12 +0100] rev 2053
exchange: rename the module
Let's add a 'obs' prefix to make the module role clearer.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 08 Mar 2017 23:04:45 +0100] rev 2052
setup.py: include all evolve submodule
We are splitting more and more code into submodule, we make sure their are
properly installed.
As a side effect the 'legacy' module is now installed, that is not too
important. The 'evolve.hack' package is still non installed by default, as
intended.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Mar 2017 09:47:37 -0800] rev 2051
evolve: switch away from deprecated repo.opener
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:31:19 +0100] rev 2050
serveronly: use the same extensions metadata than evolve
This will avoid them to drift out of sync with evolve.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:24:07 +0100] rev 2049
evolve: move extension metadata in their own module
This will allow the server only extension to reuse them. As a side effect we can
now simplify the config parsing in setup.py
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 13:12:27 +0100] rev 2048
evolve: specify the 'minimalhgversion'
3.7 added a new nice and shinny variable to help user know when they use the
wrong version of Mercurial with an extension. We now use it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:27:01 +0100] rev 2047
serveronly: give the sub extension a way to access to the 'evolve' module
We keep it as clean as possible but if the extension is specified with a direct
path, we have to be a bit hacky.
Being able to access the whole evolve extension from the 'serveronly' extension
will lift multiple constraints on how we organise the code and will allow for
cleaner and clearer code.
We extract a minor function into a 'utility' module to have something to depends
on.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:10:05 +0100] rev 2046
test: update test to check for various way to import the serveronly things
We add a "setup script" that update the PYTHONPATH to allow direct import of
the extension code. Then we tests that all way to import the extensions works.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 07 Mar 2017 12:04:05 +0100] rev 2045
tests: move "test setup" script into a 'testlib' directory
This will avoid cluttering the tests directory.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 02:56:50 +0100] rev 2044
exchange: move code related to exchange into a 'evolve.exchange' submodule
The evolve extension is HUGE, we split exchange code appart before doing more work on it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 03:37:32 +0100] rev 2043
exthelper: move command declaration into the exthelper
This is necessary to allow sub module to declare commands too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 01:43:36 +0100] rev 2042
exthelper: add a 'merge' method
This will help us spread more code in different sub module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 04 Mar 2017 01:21:43 +0100] rev 2041
exthelper: extract into its own submodule
That code is fairly independant, we extract it into its own extensions to
clarify the code
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Mar 2017 10:58:59 +0100] rev 2040
makefile: add an 'install-home' target
It is similar to the Mercurial one.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 03 Mar 2017 10:58:30 +0100] rev 2039
makefile: only check for HGROOT when running tests
Otherwise we breaks other target that do not needs HGROOT.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:13:47 +0100] rev 2038
tests: split pyflake and flake8 tests
This allow more parallelism and better skip message
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:24:17 +0100] rev 2037
flake8: run on all python file
We can now run it on all file in the repository to catch potential regression.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:23:45 +0100] rev 2036
flake8: fix error in 'setup.py'
Some strange indentation in there.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:23:18 +0100] rev 2035
flake8: fix error in 'test2rst.py'
There is variosu dead code in there :-/ but we just fix flake8 complains for
now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 20:22:29 +0100] rev 2034
flake8: remove "error" in documentation configuration
The "error" are debatable but cheap to fix.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:14:33 +0100] rev 2033
flake8: enable on evolve too
Now that all error are fixed we can run it on all file to prevent regression.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:29:37 +0100] rev 2032
flake8: update the code sources to fixes a horde of pyflake warnings
There is many of them, they all fixed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:28:52 +0100] rev 2031
flake8: register 'xrange' as a builtins
For some reason, flake8 thinks is is undefined.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:28:12 +0100] rev 2030
flake8: ignore an addition rules related to import
Our initialization code is too complex to make flake8 happy
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 19:25:54 +0100] rev 2029
flake8: document all the exception we added
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:28:14 +0100] rev 2028
README: mention the addition of the topic extensions
That is probably worth noting.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:14:21 +0100] rev 2027
tests: run pyflake on all python files
We have fixed the handfull of error pyflakes found on evolve so we can setup
the test to prevent regression. Next stop flake8.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:57 +0100] rev 2026
serveronly: fix undefined variable
This is a legit bug caught by pyflake
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:45 +0100] rev 2025
legacy: properly test for mercurial version in the legacy extensions
Otherwise 'demandimport' would delay the raising of ImportError.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:20 +0100] rev 2024
evolve: prevent global variable shadowing
Small and harmless pyflake complains.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:13:03 +0100] rev 2023
evolve: drop some unused variables
More pyflakes catches.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:12:47 +0100] rev 2022
evolve: drop some unused import
topic came with pyflake checking, let us make use of it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:26:47 +0100] rev 2021
README: fix evolve installation path
We forgot to do so when we moved things to hgext3rd.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Mar 2017 18:07:46 +0100] rev 2020
topic: merge the topic extension in the evolve repository
There is a lot of synergy between the two concepts. Topic is expected to be able
to smooth multiple of evolution sharp edge. Having them both in the same
repository will make this collaboration easier.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 15:19:31 +0100] rev 2019
test: adapt to new core output
Troubles are now displayed by log so we have to update the test.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 14:56:22 +0100] rev 2018
test: adapt to change in mercurial output
Nothing major here.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 23 Feb 2017 13:58:52 +0100] rev 2017
compat: handle difference of signature for update destination hooks
The 'check' argument have been dropped in 11c253997b0e. So we make it optional
for compatibility.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 14 Oct 2016 00:54:04 +0200] rev 2016
setup.py: also install 'hgext3rd/__init__.py'
This file is needed for the namespace package to work. (And also for the package
to work on its own at all).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 07 Oct 2016 04:10:23 +0200] rev 2015
tutorial: add a very basic pointer in the readme
Ideally we should at least build the html from the rst.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 30 Sep 2016 18:21:50 +0200] rev 2014
tutorial: add a second part about having multiple topic
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 29 Sep 2016 16:48:13 +0200] rev 2013
tutorial: add a first version of the tutorial with the basics
This is probably not wonderful but at least we have a base.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 13 Sep 2016 17:58:22 +0200] rev 2012
doc: add more details about the head checking
Once again, probably not great, but better than nothing.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 07 Sep 2016 12:45:23 +0200] rev 2011
documentation: some basic update of the documentation
So far the documentation was pretty scarce and a lot of important information
was missing.
The new content is probably not great but it is an improvement.
Anton Shestakov <av6@dwimlabs.net> [Wed, 07 Sep 2016 10:40:18 +0800] rev 2010
flake8: ignore N801
N801 is "class names should use CapWords convention"
The message comes from a pep8 plugin "pep8-naming" which cares about naming
conventions. If the plugin is installed, it is automatically used by pep8 and
flake8.
Anton Shestakov <av6@dwimlabs.net> [Wed, 07 Sep 2016 10:35:47 +0800] rev 2009
flake8: don't ignore E713 now that it's fixed
E713 is "test for membership should be ‘not in’"
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:23:03 -0700] rev 2008
flake8: fix E713 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:22:24 -0700] rev 2007
flake8: fix E301 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:18:43 -0700] rev 2006
flake8: fix E111 style
OFF BY ONE ERRORS ARE THE WORST
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 15:15:05 -0700] rev 2005
flake8: fix E222 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:10:16 -0700] rev 2004
flake8: fix E127 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:12:49 -0700] rev 2003
flake8: fix W391 style
Sean Farley <sean@farley.io> [Tue, 30 Aug 2016 14:05:36 -0700] rev 2002
tests: add flake8 check
This test will hopefully help prevent style errors. To be determined:
which errors / warnings to ignore?
Sean Farley <sean@farley.io> [Sun, 15 May 2016 22:23:16 -0300] rev 2001
flake8: add file for rules to ignore
This will help prevent users that have an editor with flake8
capabilities from fixing linter errors for rules that are not wanted by
the project.
Initially, this ignore list includes everything in the project that
violates pep8. I'll try to ween this list down to something a little
more manageable.
timeless@gmail.com [Fri, 26 Aug 2016 16:57:45 +0000] rev 2000
init: guard _namemap with repo.topics (issue5351)
This prevents reading extra data on all repo commits
when there is no topic for a given name.
_namemap is called a lot, and it is often called for commit
shas -- which should pretty much never be names of topics...
timeless@gmail.com [Fri, 26 Aug 2016 16:52:02 +0000] rev 1999
init: cache repo.topics
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 21:57:48 +0200] rev 1998
stack: add warning about multiple heads
This seems a good spot to nudge people toward reducing there head count.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:55:58 +0200] rev 1997
stack: add some behind information
This is the next useful thing after branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:23:31 +0200] rev 1996
stack: add some basic branch information
In the same spirit as knowing the topic you are on, having some branch data seem
useful (yet, this smell a bit like summary)
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:14:04 +0200] rev 1995
stack: add some header with the topic name
This is the first step of a move to add more data about a stack in the command
output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:58:18 +0200] rev 1994
test: add testing of stack output in 'stack-data' test.
We are going to display common information, so we reuse test case.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 14:58:49 +0200] rev 1993
test: rename 'list' test to 'stack-data'
We are about to add stack data information to 'hg stack'. As we'll re-use the
test data creating the 'test-topic-list.t' we need to rename it first to embrace
its new semantic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:58:16 +0200] rev 1992
stack: also dim bases
Now that they may have index it seems better to have a stronger marking for
bases.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:52:06 +0200] rev 1991
stack: reusing the index number in base when applicable
This clarify the branching when it is easy to track back the branching point.
This does not takes the evolution graph into account yet.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 26 Aug 2016 12:37:52 +0200] rev 1990
stack: extra argument validation logic outside of showstack
It seems sensible keep the 'showstack' function purely about actually displaying
and existing stack.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 23 Aug 2016 21:18:47 +0200] rev 1989
summary: properly label the topic name in summary
This should be labelled 'topic.active' so that color can pick it up properly.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 23 Aug 2016 23:38:28 +0200] rev 1988
topic: list the branches this topic belong to when verbose
Using the verbose listing a bit more, this seems to be useful information.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Aug 2016 15:43:06 +0200] rev 1987
topic: properly justify the verbose data when listing topic
We align all data to the widest topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 16 Aug 2016 15:32:54 +0200] rev 1986
ngtip: rely on topicmap for 'ngtip'
ngtip is an old function that predates the introduction of a more proper topic
aware 'topicmap'. We replace the old code with a call to the new one. This
change set function return type and have minor effect in a couple of place.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 19:57:58 +0200] rev 1985
topic: list the number of 'behind' changeset when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of 'behind' changesets. This 'behind' count the number of new changesets on
the default rebase destination. This will highlight topics that need rebasing.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 00:19:44 +0200] rev 1984
destination: honor the sourceset argument of _destmerge
Mercurial gained a "sourceset" argument to compute the merge destination of any
changeset (the one in the 'sourceset'). This now works for the version
in topic too. The support is quite basic (because we pick only one changeset
from the sourceset) but that's a start.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 05:25:53 +0200] rev 1983
destmerge: improve topic head computation and handling
This rework get use two benefits:
- heads are now computed on a "stabilized" state,
- heads above the 'source' are now properly cleaned up,
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 05:15:19 +0200] rev 1982
evolve: extract the code copied from evolve in a submodule
This will allow us to use that code in other module.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 15 Aug 2016 01:50:15 +0200] rev 1981
destmerge: honor the 'onheadcheck' argument
This argument was introduced in Mercurial some time ago but the topic extension
was never updated to take it in account. This is now fixed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 23:17:09 +0200] rev 1980
destination: use the correct abort class for error
These errors have been in Mercurial long enough. Having them will make the coming
changesets simpler.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 19:40:53 +0200] rev 1979
topic: list the number of head when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of heads on the topics, this will help highlight the problem to users. We
only display head if there is more than one.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 01:24:10 +0200] rev 1978
topic: list the number of troubled changesets when --verbose is used
Displaying more information in the topic list is useful, we continue with the
number of troubled changesets. This will help people to spot topics that needs
evolution, for example after a pull.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Aug 2016 23:59:37 +0200] rev 1977
topic: list the number of changesets when --verbose is used
Displaying more information in the topic list is useful, we start with the most
obvious: number of non-obsolete changeset in the topic.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 14 Aug 2016 20:40:46 +0200] rev 1976
topic: add color for the active topic
We reuse the same color that the one used for the active bookmark.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 00:37:33 +0200] rev 1975
topic: add formatter support
Using formatter to output the list of topic will add support for color and
richer templater. We add some test for output control.
We introduce a dedicated test to help with coming more complexe output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 13 Aug 2016 00:13:05 +0200] rev 1974
topic: extract the code listing all topics
The code will become more complexe with formatter support and additional data in
the verbose output. We extract the code in its own function first.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 12 Aug 2016 11:09:26 +0200] rev 1973
stack: introduce and explicite command to display the stack
If is worth testing having the feature lives outside 'hg topic --list'. The
'stack' name is sub optimal because the conflict with 'status'. using "hg st"
would still work as 'st' is hard coded, but this mean 'hg stack' has no short
version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Aug 2016 22:52:49 +0200] rev 1972
testedwith: update to 3.9
This is might still 3.7 compatible but I'm no longer running the test and I
would says the user base is small enough to not care.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Aug 2016 22:50:58 +0200] rev 1971
topic: make sure we have the 'wlock' when setting topic
We where writing the '.hg/topic' file without a lot. That was bad.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 13 Jul 2016 16:19:41 +0200] rev 1970
cleanup: removed unused mercurial.util import
timeless@gmail.com [Fri, 08 Jul 2016 16:59:43 +0000] rev 1969
compat: tolerate missing rebase extension
timeless@gmail.com [Fri, 08 Jul 2016 16:09:55 +0000] rev 1968
compat: mercurial dropped alias for hashlib.sha1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 16:22:52 +0200] rev 1967
destination: add an XXX about handling destspace in destmerge
This that we hopefully do not forget about this.
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 21:24:20 -0700] rev 1966
update: calculate 'partial' as core does
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 20:00:19 -0700] rev 1965
discovery: flake8
Sean Farley <sean@farley.io> [Mon, 25 Apr 2016 19:59:05 -0700] rev 1964
destination: flake8
Sean Farley <sean@farley.io> [Tue, 22 Mar 2016 14:51:35 -0700] rev 1963
style: update __init__.py
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 11 May 2016 16:06:58 +0200] rev 1962
compat: adapt to the new destspace argument of destmerge
The argument is currently ignored in the topic case for simplicity, but we
properly accept it and propagate it to the original function to prevent crash
and behavior regression in the non-topic case.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:28:03 -0700] rev 1961
stack: prevent crash when topic is rooted on nullid
We exclude null from displayed base. This was causing a crash when trying to
display its description (we'll still have to handle the empty description case,
but it is now less urgent).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:22:20 -0700] rev 1960
test: add topic on the first 2 changesets too
This will be used to add a test for topic rooted on nullid. We introduce this in
its own changeset to reduce the noise if the actual changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 Apr 2016 00:17:54 -0700] rev 1959
test: remove comment about new head warning
The new head warning was buggy. This was fixed in bdc5bb223b50.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Apr 2016 21:41:38 -0700] rev 1958
stack: also change the indexing of the t# reference
Changeset 61f36480740f changed the index displayed (we now index from 1), but
forgot to update the logic used to resolve the 't#' name.
This changeset fixes it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:58:52 -0700] rev 1957
stack: change the ascii symbold for base
Now that the children line go upward, '_' is no longer clear as is take the lower part of the line. We go for '^' that use the upper part.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:57:11 -0700] rev 1956
stack: reverse the display order
Most mercurial command display the most recent changeset first. We put `hg topic --list` inline with this.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:55:24 -0700] rev 1955
topic: extract display from entry computation
We are about to reverse the order of the output (most recent first) so it will
be useful.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 01 Apr 2016 16:40:19 -0700] rev 1954
stack: start indexing at 't1' instead of 't0'
I think 't0' could have special meaning (eg: before 't1', but still with topic
activated) so let's keep room for that. Indexing from 1 is not crazy anyway.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 23:58:30 -0700] rev 1953
commit: wrap "commitstatus" to take topic into account
The "created new head" message was appearing for every single commit made on a
topic. It should now properly only appears when a new head is actually created
on a topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 23:55:31 -0700] rev 1952
uisetup: add call to 'topicmap.modsetup'
this was forgotten in 99c1a26abf3f. Tests did not broke because the wrapping of
cg.apply only have performance impact (cache warmup).
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:33:06 -0700] rev 1951
uisetup: move all remaining wrapping into uisetup
All our wrapping is now properly done at uisetup time. Hooray.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:31:24 -0700] rev 1950
topicmap: move 'cgapply' wrapping into the topicmap module
More gathering of related logic.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:25:17 -0700] rev 1949
topicmap: move the 'usetopicmap' context manager into the topicmap module
There is no good reason to not have it gathered with the rest.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:05:49 -0700] rev 1948
patch: move setup of import/export logic into a function
The function is now called during uisetup.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:04:25 -0700] rev 1947
patch: remove version compatibility check
We don't support anything under 3.7.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:03:44 -0700] rev 1946
patch: document the section about import/export
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 22:02:52 -0700] rev 1945
patch: move import/export wrapping close to the function definition
This gather similar logic together.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 21:53:55 -0700] rev 1944
discovery: move all setup into a 'modsetup' function
The various wrappings are moved into a function that live in the module and the
function is now properly called during 'uisetup'.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:22:50 -0700] rev 1943
revset: add a ui argument to 'modsetup'
This is a gratuitous change for consistency with the function that use it.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:21:44 -0700] rev 1942
revset: run 'modsetup' at uisetup time
We are slowly moving away from module time wrapping. These thing should be done
in the dedicated 'setup' method called by Mercurial.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:20:16 -0700] rev 1941
destination: rename 'setupdest' to 'modsetup'
the topic.revset module use 'modsetup' as a name for its setup function. It
looks like a good name, lets unify names toward that.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:16:19 -0700] rev 1940
destination: document 'setupdest'
Let's make the role of this function clear.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:15:47 -0700] rev 1939
destination: add a ui argument to 'setupdest'
This is a gratuitous change for consistency.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:12:43 -0700] rev 1938
destination: make sure 'setupdest' is the latest function in the module
Let's introduce some consistency, end of module seems fine.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:29 -0700] rev 1937
topicmap: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:18 -0700] rev 1936
stack: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:45:10 -0700] rev 1935
revset: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:59 -0700] rev 1934
discovery: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:47 -0700] rev 1933
destination: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:44:37 -0700] rev 1932
init: move to new style import
This unify with the new core Mercurial usage and this will make future changes
to the imports easier to track.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Mar 2016 03:56:14 -0700] rev 1931
test: disable the new style rendering for "missing parent"
The style kicks in when we display a partial tree. Supporting test running both
3.7 and default with this is painful, we disable the new feature for now.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:39:14 -0700] rev 1930
tests: add pyflakes test
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 00:50:36 -0700] rev 1929
setup: make sure we use the imported module
This prevent pyflakes to complains about it (and work around any possible demand
import magic.
I'm not sure why we do this important dance at all, but I'm leaving it there in
doubt.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:38:56 -0700] rev 1928
topicmap: whitespace
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Mar 2016 00:47:14 -0700] rev 1927
topiccache: directly instantiate a topiccache object when reading
There is no need to rely on a temporary monkey patching.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Mar 2016 15:29:05 -0700] rev 1926
readme: fix instruction to enable topic
We moved the source code in 85390446f8c1 but we messed up the readme update. We
are fixing it here.
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:30:14 -0700] rev 1925
stack: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:29:35 -0700] rev 1924
stack: remove unused import
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:28:29 -0700] rev 1923
revset: add missing imports
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:28:12 -0700] rev 1922
revset: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:26:45 -0700] rev 1921
discovery: whitespace
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:25:04 -0700] rev 1920
discovery: removed unused oldgetitem
Sean Farley <sean@farley.io> [Mon, 21 Mar 2016 21:07:41 -0700] rev 1919
setup: break long line
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:15:57 -0700] rev 1918
init: indent correctly
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:15:45 -0700] rev 1917
init: whitespace fixups
Sean Farley <sean@farley.io> [Sat, 19 Mar 2016 14:09:59 -0700] rev 1916
init: remove unused module
timeless@gmail.com [Fri, 18 Mar 2016 15:03:40 +0000] rev 1915
spelling: histedit
timeless@gmail.com [Fri, 18 Mar 2016 15:00:58 +0000] rev 1914
spelling: changeset
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 18 Mar 2016 08:14:45 -0700] rev 1913
readme: remove the part about 3.7 and hgext3rd
We are using direct path already so we don't need any magic here. The
'hgext3rd.'bit is only required (for 3.7) when the module is installed and we
rely on sys.path to find it.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Mar 2016 00:19:14 -0700] rev 1912
merge with other duplicate head
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:14:57 -0700] rev 1911
histedit: restrict default edited set to current topic when possible
If we have an active topic, we restrict the edit within that topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:13:12 -0700] rev 1910
stack: add a 'stack()' revset
We give access to the list of relevant commit with a revset. Benefits over
'topic(.)' are the filtering of obsolete changeset and the reordering (to
topological as-in unstability were resolved).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 23:37:58 +0000] rev 1909
stack: display the base of the stack
Displaying the first parent of the stack seems useful. I'm even tempted to call
it 't0' and have the topic still active when 'hg up t0' is used to move to the
base.
As a side effect we gain a way to denote that the stack is not linear. I'm not
super convinced that it is the right way to display it, but this is better than
no information.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 19:22:21 +0000] rev 1908
stack: add some default color configuration
We can make the output more insightful with some default colors, let's do it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 19:03:32 +0000] rev 1907
stack: add basic formatter and label support
This still is not great, especially I would like '-T' to be able to control how
we display the changeset, but this is useful progress.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:43:23 +0000] rev 1906
stack: show the currently active changeset and unstable ones
Still super basic, but give a basic idea of the feature. We use both symbols and
explicit text because symbols are cool but text is more explicit
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:40:00 +0000] rev 1905
stack: add "t" prefix to index in the output
This make the existance and meaning of "t2" reference clearer.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:39:19 +0000] rev 1904
stack: allow to refer to changeset using "t2" form
hg up "t0" is seen as "update to the first changeset of my current topic".
Eventually we'll drop the "t2" form in favor of the planned generic indexing
operator '.{t2}'.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Mar 2016 17:26:57 +0000] rev 1903
topic: don't take topic into account when pushing to non-topic repo
Previously, pushing to a non-publishing repository without topic support would
wrongfully use topic when searching for new heads.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Mar 2016 12:14:20 -0700] rev 1902
destination: fix 'hg pull --rebase'
I'm not sure why sometime functions do not have func_default but this is easy
to fix. I've added a test to catch such stuffs it in the future.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:12:18 -0700] rev 1901
packaging: fix setup.py and install as hgext3rd.topic
This changeset is doing two things (gasp):
- It fixes various errors in the setup.py
- It move the topic source and install into hgext3rd.topic.
This last part (code source move) use hgext3rd as namespace package to prevent
installation nightmare. This won't be officially supported until Mercurial 3.8,
but in the meantime, 3.7 user can enable it using the full package name:
[extensions]
hgext3rd.topic=
Thanks goes to Julien Cristau <julien.cristau@logilab.fr> for the initial
version of this.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 16 Mar 2016 12:14:20 -0700] rev 1900
destination: fix 'hg pull --rebase'
I'm not sure why sometime functions does not have func_default but this is easy
to fix. I've added a test to catch such stuff it in the future.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Mar 2016 17:25:18 +0000] rev 1899
discovery: remove a spurious print
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:24:33 +0000] rev 1898
task: add index number to the output
We are doing to use these number for easy movement in later changesets. The
numbering will probably evolve over time but this is a good start.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 18:11:52 +0000] rev 1897
stack: fix printing order in case of unstability
The stack was displayed using revision number order, this give good result in
the simple case (straight stack) but give bad result when the stack is not
linear because of unstability.
We fixes it by reusing the evolution logic for sorting. As we do not live next
to evolution yet, we duplicated this logic for now.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:48:31 +0000] rev 1896
stack: exclude obsolete changeset from the set
We care about relevant changeset, obsolete have a new version somewhere and we
don't care about the old one in our display.
In case of unstability, the ordering used is still wrong.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:37:39 +0000] rev 1895
stack: add a very first version of stack display with 'hg topic --list'
This mark the first step toward a set of feature dedicated to displaying and
moving within the current stack of work. Everything is still super basic so
don't look too much at the feature.
The goals of this changeset are:
* having a flag to trigger the feature
* having a basic (imperfect selection mechanism)
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 17:09:02 +0000] rev 1894
topic: get 'Abort' from error, not 'util'
The class live in 'mercurial.error'.
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 21:22:56 -0400] rev 1893
Makefile: meant tests-@ not tests-tip
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 12:29:43 +0000] rev 1892
update: change default update destination to take topic in account
When within a branch update to ngtip(branch). When within a topic update to the
top topic.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 13:07:54 +0000] rev 1891
rebase: test default rebase destination behavior
In future mercurial 3.8, rebase and merge share the same destination logic. So
if merge work, rebase should work as well. However, we double test it to be
sure.
Especially, in 3.7 the logic is not shared so we have to introduce an extra hack
to share it in this case.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Mar 2016 23:44:04 +0000] rev 1890
topicmap: write and read format from disc
To prevent too awful performance we allow writing and reading topicmap cache.
This is done with a lot of code duplication from core because core is not
extensible enough.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 00:15:54 +0000] rev 1889
topicmap: ensure that 'served' view is updated with topicmap
There is multiple place that explicitly update the 'served' branchmap to ensure
it stay up to date. We ensure it use the proper topicmap in this case.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 00:12:22 +0000] rev 1888
topicmap: move the monkey patching into a context manager
There is a couple of other place doing branchmap/topicmap update (of the served
set), we'll have to set the monkey patching for them.
This changeset is just doing the move to a context manager to make sure it is
correct.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 18:42:16 +0000] rev 1887
push: hackish handeling of new branch head from phase move
The current head checking mechanism is not expecting "head change" from phase
movement. Topic allows that, changeset with a topic moving to public can
create a new head. We introduce a hack to double check that no head were added
at the transaction level to work around this.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 18:19:27 +0000] rev 1886
push: allow pushing new topic to non-publishing server by default
This improves and fix the behavior change introduced by the new "topicmap".
* Topics are properly ignored when pushing to a publishing server,
* pushing new topics is allowed without --force a non-publishing server,
* Pushing extra heads on a topic requires --force.
Create of new head on a branch by phase movement is not properly detected for
now. We'll improve that part in a later changesets.
There is more awful monkey patching going on. We'll have to refactor core to get
rid of them.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 15:36:17 +0000] rev 1885
topic: take topic in account for all branch head computation
This changeset introduce a "topicmap" that is tracking not just the head of all
branches, but the heads of all branch+topic pair. Including the head of the part
of the branch without any topic. In practice this means that BRANCHNAME now
resolve to the tipmost part for the branch without topic and impact various
other logic like head checking during push and default destination for update and
merge (these aspect will need adjustment in later changesets).
The on-the-fly-temporary-monkey-patching process is pretty horrible, but allow
to move forward without waiting on having core patched.
We use 'branch:topic' as the branchmap key, this is a small and easy hack that
help use a lot for (future) support of heads discovery/checking and on disc
cache. I'm not sure it is worthwhile to improve this until an implementation
into core.
Note that this changeset change the branchmap in all cases, including during
exchange, see next changeset for improved behavior.
We also currently have the on-disk cache disabled because the core branchmap is
lacking phase information in its cache key. This will get done in a later
changesets
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:18:09 -0400] rev 1884
testedwith: declare compatibility with Mercurial 3.7
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:17:18 -0400] rev 1883
Makefile: update all-version-tests to explicitly test 3.7
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:13:44 -0400] rev 1882
hgignore: also ignore testtimes
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:12:39 -0400] rev 1881
killdaemons: discard now that it's unused
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Mar 2016 14:38:40 +0000] rev 1880
test: drop custom run-tests.py
We should use the one provided by Mercurial core directly.
Augie Fackler <raf@durin42.com> [Mon, 14 Mar 2016 20:11:47 -0400] rev 1879
Makefile: rework running of tests
This makes running tests easier without depending on our own copy of
run-tests.py (though I'd still prefer to keep that around.)
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 12 Mar 2016 12:36:25 +0000] rev 1878
compat: adapt to change in mercurial core
The code around merge destination have been changed in core, we do some basic
adaptation to make sure we don't crash.
Further rework to adapt//take advantage of core change would probably be useful
but this is not the point of this commit.
Augie Fackler <raf@durin42.com> [Thu, 31 Dec 2015 11:23:19 -0500] rev 1877
topic: handle merge.update function signature change
I think this is backwards compatible with how it used to be called,
but I didn't worry about it too much either.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 13:12:23 -0500] rev 1876
Merge.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 13:09:29 -0500] rev 1875
test-topic-dest: test fixes I should have put in the previous change
I split a bigger change from marmoute that included some rebase
support that I wanted to discuss more, but I didn't correctly commit
my fixes to the tests before pushing. Oops.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:53:20 -0500] rev 1874
topic: fix changing topics of commits that have an amend_source
Includes a test for this specific case, but we should probably spend
more time squinting at the interactions between the current topic
wrapper function and commitctx for memctx instances.
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:53:38 -0500] rev 1873
topic: remove useless call to c.parents()
Augie Fackler <raf@durin42.com> [Fri, 11 Dec 2015 12:56:23 -0500] rev 1872
topic: fix up change logic a little and add debug logging
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 21 Oct 2015 01:09:15 +0200] rev 1871
merge: use topic to pick default destination
If the topic have multiple heads, reduce that. Otherwise, pick the
branch we are on.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 21 Oct 2015 01:12:32 +0200] rev 1870
topic: introduce a 'ngtip' concept
The concept is to be massively used in naming and default destination logic.
The name is horrible so that people find a better one.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 21:09:47 -0700] rev 1869
template: test that topic is accessible through template
This comes free with the namespace feature but it is good to have.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 23 Oct 2015 13:40:44 +0100] rev 1868
test: adapt to newer mercurial
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 20:43:15 -0700] rev 1867
patch: import topic from patch header
If the used Mercurial supports it, we import topic from patch headers.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 08 Oct 2015 20:42:26 -0700] rev 1866
patch: add topic to exported patch
If used Mercurial supports it, we add a topic header to patches.
Augie Fackler <raf@durin42.com> [Wed, 14 Oct 2015 12:09:11 -0400] rev 1865
topic: work around stringmatcher moving during development of hg 3.6
Augie Fackler <raf@durin42.com> [Wed, 30 Sep 2015 18:06:42 -0400] rev 1864
topic: allow use of topic(.) to match the p1 topic
As far as I can tell this matches the behavior of branch(.) in core hg
in tht it matches p1's value rather than the wdir value.
Augie Fackler <raf@durin42.com> [Wed, 30 Sep 2015 18:05:27 -0400] rev 1863
topic: fix missing error import
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:23:29 -0500] rev 1862
amend: allow clearing topics on amend
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:16:42 -0500] rev 1861
changectx: add topic method
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 16:13:16 -0500] rev 1860
topics: consistently use empty string instead of None
This agrees with repo.currenttopic which uses ''. A subsequent patch
is going to provide a context topic method that returns the empty
string.
Matt Mackall <mpm@selenic.com> [Fri, 19 Jun 2015 14:18:34 -0500] rev 1859
topics: drop debugging print in rebase
Matt Mackall <mpm@selenic.com> [Mon, 15 Jun 2015 17:29:07 -0500] rev 1858
topics: allow commits that only change topic (issue4725)
This allows amend to change topics. It also matches the behavior of branches.
Matt Mackall <mpm@selenic.com> [Mon, 15 Jun 2015 16:56:44 -0500] rev 1857
topics: add listnames hook so completion works
Augie Fackler <augie@google.com> [Thu, 18 Jun 2015 15:46:26 -0400] rev 1856
rewrite: use a lock and transaction as spotted by devel warnings
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:49:46 -0500] rev 1855
topics: only apply topic to commits of the working copy
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:41:10 -0500] rev 1854
rebase: teach rebase how to copy topics
Matt Mackall <mpm@selenic.com> [Fri, 12 Jun 2015 16:39:39 -0500] rev 1853
topic: wrap the underlying update function rather than the command
This more properly manages the updates done by things like rebase.
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:52:07 -0500] rev 1852
commit: add a topic field to the in-editor commit text
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:40:50 -0500] rev 1851
topic: only require obsolete support for --change
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 17:13:15 -0500] rev 1850
commit: add a --topic flag
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:44:49 -0500] rev 1849
topic: note when switching topics
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:32:20 -0500] rev 1848
summary: add topic summary hook
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:23:56 -0500] rev 1847
topics: add command summary
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 16:20:05 -0500] rev 1846
docs: fix format of extension docstring
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 16:13:20 -0400] rev 1845
constants: extract key for extra into a constant
It might be prudent to prefix it, and regardless it was bugging me to
have it repeated everywhere.
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 15:03:39 -0400] rev 1844
topic: add ability to change topic of non-public changes
This is a little crude, but it gets the job done. You probably don't
want to use this without evolution for now.
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 15:26:50 -0400] rev 1843
revset: add a topic() revset for querying topics
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 15:01:36 -0400] rev 1842
topic: disallow use of topics without obsolete enabled
This is a prelude to allowing changing topics. The experience will be
disastrous without obsolete markers, so let's just preempt any
potential problems.
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 14:59:46 -0400] rev 1841
topic: use repo.set() where we need a changectx anyway
I always forget repo.set() exists and use repo.revs(). Sigh.
Augie Fackler <augie@google.com> [Wed, 10 Jun 2015 14:59:05 -0400] rev 1840
testlib: enable rebase and obsolete for easier testing
Augie Fackler <augie@google.com> [Wed, 20 May 2015 21:23:28 -0400] rev 1839
Initial dumb version of topics.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 18:21:23 +0100] rev 1838
serveronly: deduplicate code with the main evolve extension
Now that 'serveonly' is a sub module of evolve. We can access its content in
evolve. As a result we stop duplicating code all common parts are defined in the
'serveronly' module and imported by evolve when needed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 16:12:34 +0100] rev 1837
serveronly: clean up imports
remove unused one and arrange them
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:31:28 +0100] rev 1836
compat: just use '_callcompressable'
That API is available in all version we supports.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:31:18 +0100] rev 1835
compat: drop bookmark compatibility layer
All the version we now supports have the 'new' API.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:29:36 +0100] rev 1834
compat: drop compat for older wireproto implementation
We only support Mercurial version with these attributes.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:28:54 +0100] rev 1833
compat: always use the strip revset from core
We only support versions that defines it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:28:23 +0100] rev 1832
compat: drop support for ancestral pushop object
Pushoperation object have a 'cgresult' attribute in all the versions we support.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:27:54 +0100] rev 1831
compat: drop compatibility layer around update
We now support only versions with the new API.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:27:08 +0100] rev 1830
compat: drop compatibility layer for 'tryimportone'
Return is now homogeneous for all the version we support.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:25:35 +0100] rev 1829
compat: drop superfluous summary output
All versions we support issues this output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:24:04 +0100] rev 1828
compat: drop compatibility layer around memctx
The version we support all have the same API now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:22:25 +0100] rev 1827
compat: drop handling of ancestral 'helploader' caller
We only support recent only version on Mercurial now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:22:05 +0100] rev 1826
compat: drop hack around a 'graft' signature change
We only support recent only version of Mercurial now.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:21:17 +0100] rev 1825
evolve: proactively detect bad version early
The extensions have been providing such error to the user for some time. So we
keep this explicit check (instead of some later errors).
The check is update to match out new version constraint.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 16:21:16 +0100] rev 1824
evolve: drop support for version older than 3.8
The support for 'hgext3rd' was introduced in 3.8. Dropping support for older
version seems reasonable.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 13:27:04 +0100] rev 1823
evolve: cleanup imports
Just rearrange imports to a new/clearer style.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:27:44 +0100] rev 1822
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:19:31 +0100] rev 1821
merge with mercurial-3.5
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:17:40 +0100] rev 1820
merge with mercurial-3.6
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:15:21 +0100] rev 1819
merge with mercurial-3.7
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:11:51 +0100] rev 1818
merge with mercurial-3.8
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:08:14 +0100] rev 1817
merge with mercurial-3.9
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:04:58 +0100] rev 1816
merge with mercurial-4.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:00:17 +0100] rev 1815
merge future 5.6.1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:22:21 +0100] rev 1814
Added tag 5.6.1 for changeset 70694b2621ba
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 17:21:56 +0100] rev 1813
update debian changelog
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 02 Feb 2017 16:33:17 +0100] rev 1812
evolve: extend API fix from 25254b2f8116 to another relevant case
For some reason, only part of this API change got fixes. Test did not caught
this because 'False' is a valid revision number (0) and update force did not
mind using it as an ancestors. The API changed in Mercurial 43c00ca887d1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 16:19:33 +0100] rev 1811
hgext3rd: drop the last remains of hgext3rd
Not that all extensions as moved, we can drop the directory.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 16:18:21 +0100] rev 1810
hgext3rd: move 'obsolete' as 'evolve.legacy'
We move that last extension. It seems like we could use the repo upgrade
framework for this, but this is another adventure.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 16:11:50 +0100] rev 1809
hgext3rd: move 'drophack' as 'evolve.hack.drophack'
Yet another extension migrating. Ideally we would implement stripping
obsolescence marker in code soon and be able to dispose of this extensions
directly. In the mean time this goes into the "hack" namespace.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 16:07:28 +0100] rev 1808
hgext3rd: move 'simple4server' as 'evolve.serveronly'
We also more the server only extension into hgext3rd. We makes it a python
sub-module of evolve for two reasons:
* less polution in the hgext3rd namespace,
* this make it possible to share the code between 'evolve' and
'evolve.serveronly' instead of duplicating it.
note that we now install the extension too
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 14:36:18 +0100] rev 1807
hgext3rd: move 'directaccess' and 'inhibit' in 'evolve.hack'
We move them in the 'hgext3rd' package. In the same move we put them under the
'evolve' package for clarity. We use a sub-package 'hack' to make their status
clearer.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 28 Feb 2017 15:09:03 +0100] rev 1806
evolve: move the extensions to 'hgext3rd'
We have the 'hgext3rd' as the official place for extension for some time now.
We start the big migration. This might break some people setup but this is a
necessary step to have evolve easily available through pip.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 01 Nov 2016 05:42:50 +0100] rev 1805
extensions: drop the old 'pushexperiment' extension
This extensions predate bundle-2 and their have not been any reason to use it
for years.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:23:11 +0100] rev 1804
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:19:58 +0100] rev 1803
Update tag 5.6.0 for changeset e7b6e9c4a5d4
There was a small error in the README. The previous tag is fresh and the
announcement was sent yet. So I'm exceptionally overwriting the tag.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:19:50 +0100] rev 1802
fix release date in the Readme,
Copy paste error :-/
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:17:09 +0100] rev 1801
reopen the default branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:03:39 +0100] rev 1800
merge with 5.6.0
no extra changes were needed from the mercurial-3.5 branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:51:02 +0100] rev 1799
merge with 5.6.0
no extra changes were needed form the mercurial-3.6 branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:45:20 +0100] rev 1798
merge with 5.6.0
No extra changes were needed from the mercurial-3.7 branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:40:51 +0100] rev 1797
merge with 5.6.0
Not extra change were needed from the mercurial-3.8 branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:32:59 +0100] rev 1796
merge with 5.6.0
A minor one line conflict on test output were encountered.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:27:04 +0100] rev 1795
merge with 5.6.0
No extra changes needed from the 'mercurial-4.' branch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:15:34 +0100] rev 1794
merge with future 5.6.0
There is only minor test output change, 4.0 do not have the "trouble:" wording
in there.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:09:40 +0100] rev 1793
Added tag 5.6.0 for changeset 99ede2d77545
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 16:05:21 +0100] rev 1792
exchange: fix compatibility layer
We forgot a return into some compatibility layer. This is now fixed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:09:06 +0100] rev 1791
open the mercurial-3.9 compat branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:08:03 +0100] rev 1790
prepare release 5.6.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:07:30 +0100] rev 1789
debian: fix version format
There was a small error in the debian packaging
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:04:54 +0100] rev 1788
merge with default to prepare the next version
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 01 Feb 2017 15:02:59 +0100] rev 1787
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Tue, 31 Jan 2017 12:32:45 -0800] rev 1786
uncommit: don't lose copy information of remaining files (issue5403)
As reported in the issue, "hg uncommit" would lose copy information of
the files that remained in the commit. The problem was simply that the
a dict of copies was iterated as "src, dst in copies.items()" where it
should have been "dst, src ...".
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Jan 2017 16:50:19 +0100] rev 1785
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Jan 2017 16:40:45 +0100] rev 1784
fold: cleanly abort on empty fold set (issue5453)
We now handle the empty set case, cleanly aborting instead of crashing with a
traceback. The message used match the output of 'hg push' in similar situation.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 23 Jan 2017 16:09:16 +0100] rev 1783
README: update changelog
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jan 2017 13:47:49 -0800] rev 1782
fold: require --from flag for folding revisions to working copy
It's very easy to think that "hg fold 4::6" will fold exactly those
revisions. In reality, it will fold those *and* any revisions between
them and the working copy. To prevent users from making that mistake,
require the use of a new --from flag for folding revisions from the
given set to the working copy. With this change, I'm sure some users
will be surprised that the command can not be run without either
--from or --exact, but at least the consequences will be smaller (the
command simply aborts and the user can try again).
Martin von Zweigbergk <martinvonz@google.com> [Tue, 13 Dec 2016 10:28:09 -0800] rev 1781
fold: use 'fold', not 'touch', for transaction description
Stanislau Hlebik <stash@fb.com> [Thu, 05 Jan 2017 01:36:37 -0800] rev 1780
tests: fix tests to reflect hg core changes
In f05ede08dcf7d13794ccc9abb53877a50bf2b58b in core hg there were changes to
changeset_printer.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 Nov 2016 21:00:42 +0530] rev 1779
prune: improve error message if unstable changes are disallowed
I saw a question on stackoverflow why evolve reports something like cannot
fold chain not ending with head. Even I was confused the first time about the
behavior. The error message can be improved to avoid confusion to people who
are unaware about the config in future.
Martijn Pieters <mjpieters@fb.com> [Wed, 30 Nov 2016 11:17:55 +0000] rev 1778
wireproto: chunking and compression is forthwith to be handled by hgweb
Various functions disappeared in the process. Use the new streamres API but fall back to the old way if the keyword arguments are not accepted.
See https://www.mercurial-scm.org/repo/hg/rev/2add671bf55b
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 06 Nov 2016 19:19:28 +0100] rev 1777
readme: fix the test run command
As we use the run-tests.py in Mercurial, we do not need to specify the path to a
Mercurial utility.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:56:44 +0100] rev 1776
Manifest.in: exclude unshipped extensions
Many extensions life in the repository without being shipped we exclude them
from the dist tarball.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:54:05 +0100] rev 1775
Manifest.in: include Manifest.in
Apparently this file should be in the tarball.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:53:49 +0100] rev 1774
Manifest.in: exclude debian related file
The debian rules life in the repository for convenience, however they should not
be included in the dist tarball.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:53:28 +0100] rev 1773
Manifest.in: include all script in tests
We now have a small fake editor scrip that should be in the dist tarball.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:53:07 +0100] rev 1772
Manifest.in: drop tests/test-qsync.t entry
This file is now longer in the repository.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:52:46 +0100] rev 1771
Manifest.in: drop the 'tests/dummyssh' entry
That file is now longer in the repository for some time.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:50:54 +0100] rev 1770
Manifest.in: sort entry
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 02 Nov 2016 18:49:19 +0100] rev 1769
makefile: fix documentation
The only available rules is 'deb-prepare' we fix the documentation.
Simon Farnsworth <simonfar@fb.com> [Tue, 25 Oct 2016 05:15:52 -0700] rev 1768
tests: use curl instead of wget
curl is supplied by default on macOS 10.12, but wget isn't. As curl is easy
to install on other OSes, just switch the tests over.
For Windows systems, you can obtain cURL from
https://curl.haxx.se/download.html - for other systems, please use your
native package manager.
This undoes 4e7da688a066 and 3ffa12edc05a, as they don't make things much
simpler on Windows (you have to install extra packages either way round),
but they do make things harder on macOS (as curl is supplied by default,
whereas wget isn't).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 30 Oct 2016 23:31:31 +0100] rev 1767
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 30 Oct 2016 23:28:34 +0100] rev 1766
Added tag 5.5.0 for changeset 727c7211c810
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 30 Oct 2016 23:18:33 +0100] rev 1765
prepare release 5.5.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 30 Oct 2016 23:16:04 +0100] rev 1764
readme: mention that the next release make use 4.0 compatible
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 15:07:27 +0200] rev 1763
merge with latest fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 15:04:23 +0200] rev 1762
merge with latest fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 15:01:41 +0200] rev 1761
merge with latest fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 14:55:57 +0200] rev 1760
merge with latest fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 14:49:37 +0200] rev 1759
merge with latest fix
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 29 Oct 2016 14:40:47 +0200] rev 1758
merge with latest fix
Martin von Zweigbergk <martinvonz@google.com> [Fri, 28 Oct 2016 17:25:06 -0700] rev 1757
errors: add missing imports of mercurial.error
Martin von Zweigbergk <martinvonz@google.com> [Fri, 28 Oct 2016 17:15:57 -0700] rev 1756
evolve: use single quotes in usage messages
Mercurial core has moved in this direction, so let's follow.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 28 Oct 2016 17:11:43 -0700] rev 1755
evolve: prefer "abort" over "abandon" in messages for consistency
Martin von Zweigbergk <martinvonz@google.com> [Fri, 28 Oct 2016 15:17:27 -0700] rev 1754
setupevolveunfinished: use "hg update -C ." to abort
I don't know what this function does, but it seems like it should
recommend the same way of aborting as other places do.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 28 Oct 2016 15:04:40 -0700] rev 1753
evolve: suggest "hg update -C .", including '.', to abort evolve
The user will probably not also want to change commit when they abort
evolve, like "hg update -C" (without the '.') would do. Note that we
already do recommend aborting by using "hg update -C ." in another
place.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 17:03:53 +0200] rev 1752
evolve: update the tested with statement
Test pass fine with 4.0-rc. By some magic, we are still compatible down to
Mercurial 3.4.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 17:02:56 +0200] rev 1751
merge with future 5.5
All was fine for 3.4.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 16:59:32 +0200] rev 1750
merge future 5.5
There is a small limitation of split that does not clean up its working
directory on failure otherwise all is fine.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 16:34:57 +0200] rev 1749
merge with future 5.5
No extra change needed to get the test to passe with 3.6
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 16:26:25 +0200] rev 1748
merge with future 5.5
No extra new change are needed from the one needed from the 3.8 branch and previous
version.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 16:16:19 +0200] rev 1747
merge with future 5.5
Test also run on 3.8 with minor cosmetic change. The 'separate' function is not
available before 3.9 so we had to drop it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 16:03:00 +0200] rev 1746
integrate code update and test change from future 5.5 code
This prove that the code is compatible with 3.9
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 15:44:15 +0200] rev 1745
merge with default, Mercurial 4.0-rc is out
The content of the Mercurial stable branch changed, we update it here too.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 28 Oct 2016 15:43:21 +0200] rev 1744
open the mercurial-3.9 compat branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 16 Oct 2016 20:29:27 +0200] rev 1743
merge with stable
Simon Farnsworth <simonfar@fb.com> [Sun, 16 Oct 2016 09:52:53 -0700] rev 1742
evolve: lock the working copy early in next and prev (issue5244)
Both next and prev depend on a consistent working copy, but were waiting to
take the lock until they were ready to alter the working copy.
Take the lock before reading the working copy state, and do not release it
until we're definitely not going to change the working copy.
Simon Farnsworth <simonfar@fb.com> [Sat, 08 Oct 2016 08:14:21 -0700] rev 1741
evolve: indent cmdnext and cmdprev ready for locking change (issue5244)
The locking change I'm about to introduce forces an indentation shift. Do
the indentation change with no code change now, to make the next change
easier to review
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 16 Oct 2016 13:50:45 +0200] rev 1740
tests: adapt to some change to topic output
Philippe Pepiot <philippe.pepiot@logilab.fr> [Sat, 08 Oct 2016 15:49:12 +0200] rev 1739
split: avoid trying to split an empty commit (issue5191)
Philippe Pepiot <philippe.pepiot@logilab.fr> [Sat, 08 Oct 2016 15:49:12 +0200] rev 1738
split: avoid trying to split an empty commit (issue5191)
Kostia Balytskyi <ikostia@fb.com> [Thu, 22 Sep 2016 09:15:30 -0700] rev 1737
evolve: fix test breaks related to double->single quote changes
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 13 Sep 2016 01:25:17 +0200] rev 1736
merge with stable
Durham Goode <durham@fb.com> [Mon, 12 Sep 2016 10:41:00 -0700] rev 1735
bump: copy parent manifest before editting it
Previously, the bump code would access the previous manifest, then edit that
dictionary data structure. Because the manifest was in the mancache at that
time, those edits were persisted to other readers who asked for that manifest.
This caused commits being made during bump to have the wrong file parents in
many situations (hence why the tests need updating).
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 13 Sep 2016 00:56:57 +0200] rev 1734
backed out changeset 7a76f9a43e89
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 10 Sep 2016 13:26:19 +0200] rev 1733
readme: add an entry about the {obsolete} template change
(It should have been included into the parent changeset.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 09 Sep 2016 16:42:41 -0700] rev 1732
templates: change {obsolete} to emit only "obsolete" or ""
The {obsolete} template function can currently emit "stable",
"unstable", "extinct", or "suspended".
The distinction between "extinct" and "suspended" seems likely to be
more confusing that enlightening, and "stable" and "unstable" are not
even obsolete.
Let's simplify it to just emit "obsolete" for obsolete changesets and
"" for others. That will also make it much easier to test for obsolete
changsets and do things like "if(obsolete, obsolete, troubles)".
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 07 Sep 2016 17:51:15 +0200] rev 1731
debug data for manifest change in core
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 01 Sep 2016 07:40:27 +0530] rev 1730
evolve: drop point release of versions
Modern Mercurial only looks at X.Y versions, so point releases can be dropped.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 01 Sep 2016 04:38:56 +0530] rev 1729
evolve: removed redundant try/finally blocks
There were two todo's to remove the redundant try finally blocks.
Done that and also fixed the indentation afterwards.
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Aug 2016 20:37:15 +0800] rev 1728
docs: spelling fixes
Squashed into 1 commit because I'm lazy:
- non-existant -> nonexistent
- accros -> across
- comptatibility -> compatibility
- requieres -> requires
- aliast -> alias
- unexistent -> nonexistent
- convertion -> conversion
- nto -> not
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Aug 2016 20:25:17 +0800] rev 1727
simple4server: update buglink to point to bz.mercurial-scm.org
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Aug 2016 20:24:58 +0800] rev 1726
evolve: update buglink to point to bz.mercurial-scm.org
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Aug 2016 20:24:13 +0800] rev 1725
docs: use https for mercurial-scm.org
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Aug 2016 20:17:41 +0800] rev 1724
docs: point wiki and bz links to mercurial-scm.org
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 29 Aug 2016 14:54:20 +0200] rev 1723
test: adapt to topic changes
We display more information about the stacks, so we have to take than in account
in the tests.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 11 Aug 2016 23:00:46 +0200] rev 1722
continue: ensure we hold the wlock before writing file to disk
A hack in 'hg evolve --continue' involve writing a 'graftstate' file. We take
the wlock before doing so.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 09 Aug 2016 00:37:58 +0200] rev 1721
test: also use 'devel.legacy.exchange=bundle1' in test
Changeset 39537bc64442 in mercurial removed the 'experimental.bundle2' option.
We use the new option in parallel.
Ryan McElroy <rmcelroy@fb.com> [Mon, 08 Aug 2016 10:05:47 -0700] rev 1720
dirstate: use arg count for version check
In 52ff07e1de91 in the main hg repo, dirstate was changed to require a second
argument, making the default args check no longer work. Instead, we switch
to check the number of arguments, which should be backwards and forwards
compatible.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 Aug 2016 22:55:11 +0200] rev 1719
merge back with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 Aug 2016 22:42:38 +0200] rev 1718
Added tag 5.4.1 for changeset 2ad40d972a74
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 Aug 2016 22:40:04 +0200] rev 1717
prepare release 5.4.1
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 Aug 2016 22:37:48 +0200] rev 1716
3.9 have been released
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 01 Aug 2016 22:37:03 +0200] rev 1715
open mercurial-3.7 compat branch
Jun Wu <quark@fb.com> [Wed, 22 Jun 2016 18:22:17 +0100] rev 1714
directaccess: make sure gethashsymbols does not return rev numbers
With "hg log -r 1 -r 2 -r 3", gethashsymbols will get the following tree:
('func', ('symbol', '_list'), ('string', '1\x002\x003'))
Before this patch, it will return ['1', '2', '3'], which are revision
numbers and causes unnecessary (expensive) partialmatch lookups.
This patch refacts gethashsymbols a bit, making sure the returning values
are always filtered.
Jeroen Vaelen <jeroen@fb.com> [Wed, 15 Jun 2016 15:19:38 -0700] rev 1713
evolve: use hashlib to compute sha1 hashes
The util alias for sha1 was dropped in c27dc3c3122 in favor of hashlib.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 27 May 2016 17:36:07 +0200] rev 1712
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 27 May 2016 17:33:53 +0200] rev 1711
inhibit: protect agains dropped 'bmstore.write'
As planned per the deprecation policy, 'bmstore.write' have been dropped in
Mercurial core (052c9318e464).
timeless@gmail.com [Wed, 25 May 2016 19:41:08 +0000] rev 1710
help: fix evolution help grammar
timeless@gmail.com [Wed, 25 May 2016 19:13:26 +0000] rev 1709
help: fix evolution hg phases reference
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:24:17 +0200] rev 1708
merge latest tag in 3.4 branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:24:00 +0200] rev 1707
merge latest tag in 3.5 branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:23:43 +0200] rev 1706
merge latest tag in 3.6-branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:23:25 +0200] rev 1705
merge latest tag in 3.7-branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:22:54 +0200] rev 1704
merge back with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:22:24 +0200] rev 1703
Added tag 5.4.0 for changeset b21ce82e6f76
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:18:24 +0200] rev 1702
evolve: prepare release of version 5.4.0
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:16:18 +0200] rev 1701
evolve: update testedwith field
3.8.1 is working fine and no older branch had to be dropped.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:08:31 +0200] rev 1700
merge with stable through 3.5 branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:03:28 +0200] rev 1699
test: wider glob for payload size
For some reason this various a bit more than previously though.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 06 May 2016 00:00:14 +0200] rev 1698
merge with stable throug 3.6 branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 23:51:35 +0200] rev 1697
merge with stable through 3.7 branch
dropped the topic test and updated output with some minor difference
Hg: Enter commit message. Lines beginning with 'HG:' are removed.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 22:22:30 +0200] rev 1696
mercurial-3.7: revert output change
No feature regression but various output change
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 22:13:02 +0200] rev 1695
merge default into stable
Mercurial 3.8 have been release, let's get ready for a 5.4.0 release.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 21:54:26 +0200] rev 1694
test: rename TOPICROOT to HGTEST_TOPICROOT
Mercurial is about to introduce whitelisting of environment variable, we comply
to the planned prefix in advance in a hope to stay compatible in the future.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 21:42:49 +0200] rev 1693
test: update topic test output for order change
As in topic d8f1e432b16a the tipmost changeset is now displayed first. We adapt
the test output to reflect it.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 21:38:04 +0200] rev 1692
test: update topic test output for indexing change
Changeset 61f36480740f in topic updated the indexing scheme, we update the test
to take this into account.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 21:35:53 +0200] rev 1691
test: adapt topic test
The 'created new head' bug was fixed in bdc5bb223b50, we adapt the test with
the fixed output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 05 May 2016 20:14:39 +0200] rev 1690
test: improve skipped message for topic
The skipped message should point people to a way to solve the situation.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 02 May 2016 18:40:21 +0200] rev 1689
prune: suggest --biject in error "hint"
When use specify multiple changesets to prune and as successors, we should point
them to the right options to confirm there intend.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 02 May 2016 18:24:36 +0200] rev 1688
metaedit: check for public changeset before instability
Public changeset will stay public even if the selection is adjusted, this is a
more definitive condition that is worth warning about first.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 02 May 2016 18:21:54 +0200] rev 1687
fold: move sanity check after locking
Checking for operation validaty without the locks open us to race condition.
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:24:42 -0700] rev 1686
metaedit: add support for folding commits while editing their metadata
This also allows us to accept multiple commits without dealing with the thorny
algorithmic and UI issues of editing multiple commits at once.
Crucially, it is different from 'hg fold --exact' in that it also allows
'folding' a single commit and rewriting its metadata. This is really useful to
have as a single logical operation, for example while preparing a series of
multiple local changesets that will need to be pushed as a single changeset.
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:24:42 -0700] rev 1685
commands: introduce a new command to edit commit metadata
This patch introduces metaedit, a command to metadata of a set of revisions
without updating the working copy. This is particularly relevant for
repositories where changing the parent of the working copy is time-consuming.
We could add more stack manipulation operations to metaedit in the future.
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:24:42 -0700] rev 1684
evolve: factor out check for creating unstable commits
This check is pretty non-trivial, and we do it in two places already. We're
going to do it in a third place soon.
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Apr 2016 16:24:42 -0700] rev 1683
evolve: factor out sanity checks for folds
We're going to use the same checks in another context in an upcoming patch.
timeless@gmail.com [Thu, 21 Apr 2016 06:12:20 +0000] rev 1682
evolve: include node, rev, desc, and phase in list
timeless@gmail.com [Thu, 21 Apr 2016 06:11:57 +0000] rev 1681
evolve: use hex in list output
timeless@gmail.com [Wed, 20 Apr 2016 19:00:13 +0000] rev 1680
py3: use items() instead of iteritems()
timeless@gmail.com [Wed, 20 Apr 2016 18:59:46 +0000] rev 1679
py3: change except from two comma to as notation
timeless@gmail.com [Wed, 20 Apr 2016 18:58:52 +0000] rev 1678
py3: tolerate io/StringIO divergence
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Sun, 24 Apr 2016 22:31:58 -0400] rev 1677
split: rewrite the pre-split commit message
I find this wording slightly clearer.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 20 Apr 2016 17:11:49 -0700] rev 1676
open mercurial-3.7 compat branch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 20 Apr 2016 17:08:59 -0700] rev 1675
readme: add various missing parts
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 20 Apr 2016 16:40:11 -0700] rev 1674
hgignore: add an ignore rule for test timing
Modern tests runner store a record of last test run timing. We properly ignore
it.
Laurent Charignon <lcharignon@fb.com> [Tue, 19 Apr 2016 14:29:40 -0700] rev 1673
tests: change quoting pattern to match core's conventions
This patch modifies two tests to match new quoting patterns used in core:
(use "hg config --edit" to set your username) becomes
(use 'hg config --edit' to set your username)
and
(use hg resolve and hg graft --continue) becomes
(use 'hg resolve' and 'hg graft --continue')
timeless@gmail.com [Fri, 14 Sep 2012 11:32:28 -0400] rev 1672
Spelling: committed
timeless@gmail.com [Fri, 14 Sep 2012 11:30:32 -0400] rev 1671
Spelling (en-us): behavior
timeless@gmail.com [Fri, 14 Sep 2012 11:28:31 -0400] rev 1670
Spelling: forbidden
timeless@gmail.com [Wed, 12 Sep 2012 17:57:30 -0400] rev 1669
Brand: Mercurial
timeless@gmail.com [Wed, 12 Sep 2012 18:27:16 -0400] rev 1668
Grammar: paragraphs should end with periods
timeless@gmail.com [Wed, 12 Sep 2012 18:25:48 -0400] rev 1667
Grammar: the
timeless@gmail.com [Wed, 12 Sep 2012 17:57:15 -0400] rev 1666
Grammar: resulting issues
timeless@gmail.com [Wed, 12 Sep 2012 18:06:44 -0400] rev 1665
Grammar: introduced
timeless@gmail.com [Wed, 12 Sep 2012 18:31:15 -0400] rev 1664
Grammar: has
timeless@gmail.com [Fri, 14 Sep 2012 10:37:09 -0400] rev 1663
Spelling: versioning
timeless@gmail.com [Wed, 12 Sep 2012 18:15:16 -0400] rev 1662
Spelling: unnecessary
timeless@gmail.com [Wed, 12 Sep 2012 18:14:40 -0400] rev 1661
Spelling: through
timeless@gmail.com [Fri, 14 Sep 2012 10:35:21 -0400] rev 1660
Spelling: those
timeless@gmail.com [Wed, 12 Sep 2012 18:11:23 -0400] rev 1659
Spelling: succeeded
timeless@gmail.com [Fri, 14 Sep 2012 10:32:39 -0400] rev 1658
Spelling: remotely
timeless@gmail.com [Wed, 12 Sep 2012 18:02:05 -0400] rev 1657
Spelling: remains
timeless@gmail.com [Fri, 14 Sep 2012 10:07:31 -0400] rev 1656
Spelling: precursors
timeless@gmail.com [Fri, 14 Sep 2012 10:07:15 -0400] rev 1655
Spelling: practice
timeless@gmail.com [Thu, 13 Sep 2012 17:34:14 -0400] rev 1654
Spelling: directory
timeless@gmail.com [Thu, 13 Sep 2012 17:31:46 -0400] rev 1653
Spelling: happened
timeless@gmail.com [Wed, 12 Sep 2012 18:06:36 -0400] rev 1652
Spelling: formerly
timeless@gmail.com [Wed, 12 Sep 2012 18:05:44 -0400] rev 1651
Spelling: extinct
timeless@gmail.com [Thu, 13 Sep 2012 17:34:29 -0400] rev 1650
Spelling: directly
timeless@gmail.com [Wed, 12 Sep 2012 18:03:19 -0400] rev 1649
Spelling: deserialize
timeless@gmail.com [Thu, 13 Sep 2012 17:29:45 -0400] rev 1648
Spelling: accessing
timeless@gmail.com [Wed, 12 Sep 2012 18:09:10 -0400] rev 1647
Spelling (en-us): -ize
timeless@gmail.com [Thu, 14 Apr 2016 21:30:57 +0000] rev 1646
list: report the phase for divergent commits
timeless@gmail.com [Thu, 14 Apr 2016 17:42:18 +0000] rev 1645
readme: improve bug tracker link
timeless@gmail.com [Thu, 14 Apr 2016 17:40:56 +0000] rev 1644
readme: fix domain for bug tracker (bz.mercurial-scm.org)
timeless@gmail.com [Thu, 14 Apr 2016 18:33:00 +0000] rev 1643
ignore: remove stale items
docs are built into ^/html
timeless@gmail.com [Thu, 14 Apr 2016 18:07:40 +0000] rev 1642
project: change evolution domain to mercurial-scm
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 13:02:23 -0700] rev 1641
tests: adapt output to the new graphlog style
Core have change the way graphmod handle missing parent. We adapt our output.
timeless@gmail.com [Thu, 14 Apr 2016 03:42:48 +0000] rev 1640
evolve: add --continue note to summary
timeless@gmail.com [Thu, 14 Apr 2016 15:03:18 +0000] rev 1639
evolve: report merge node
When running evolve --any, evolve will report that it can not
handle a merge node. In order for this to be helpful, we report
the revision so that a user could fix t.
timeless@gmail.com [Thu, 14 Apr 2016 15:02:10 +0000] rev 1638
evolve: treat no support as non fatal
When running evolve --all, unhandled edges should not block other
revisions from being solved.
timeless@gmail.com [Wed, 13 Apr 2016 23:36:44 +0000] rev 1637
list: limit to descriptions to firstline
timeless@gmail.com [Fri, 08 Apr 2016 18:45:58 +0000] rev 1636
config: report evolve as origin for config
timeless@gmail.com [Fri, 08 Apr 2016 18:45:45 +0000] rev 1635
alias: report evolve as origin for aliases
Kostia Balytskyi <ikostia@fb.com> [Tue, 22 Mar 2016 14:08:16 -0700] rev 1634
evolve--list: initial implementation
This implementation does not work with '-T json' since it needs multiple levels
of depth.
There is various small issue with the current data, the test coverage is a bit
low and the output is likely to change, but this is a good step forward.
Sample output:
01a3e66ba030: e (amended)
unstable: 1995fc658ad6 (unstable parent)
divergent: 84e1c6ae319d d3b90e9c84ab (precursor 3efa43a7427b)
divergent: add9a356b8cf (precursor 3efa43a7427b)
add9a356b8cf: e (rebased)
divergent: 84e1c6ae319d d3b90e9c84ab (precursor 3efa43a7427b)
divergent: 01a3e66ba030 (precursor 3efa43a7427b)
84e1c6ae319d: e (e+f split)
unstable: 1995fc658ad6 (unstable parent)
divergent: 01a3e66ba030 (precursor 3efa43a7427b)
divergent: add9a356b8cf (precursor 3efa43a7427b)
d3b90e9c84ab: f (e+f split)
unstable: 84e1c6ae319d (unstable parent)
divergent: 01a3e66ba030 (precursor 3efa43a7427b)
divergent: add9a356b8cf (precursor 3efa43a7427b)
8febfaee0dd1: c
unstable: 43765473b851 (obsolete parent)
bumped: b36d99df9f41 (immutable precursor)
1995fc658ad6: d: commit with a long happy message, ababagalamaga, ababagal...
unstable: 8febfaee0dd1 (unstable parent)
fa8498ad030f: aa
unstable: d3b90e9c84ab (unstable parent)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 18 Mar 2016 23:49:32 -0700] rev 1633
merge with stable
Juntao Li <juntaoli@fb.com> [Thu, 17 Mar 2016 17:03:51 -0700] rev 1632
evolve: Fix crash when reading docstring
Before this patch, hg evolve --divergent could crash when looking
for docstring of function of merge.update. We were checking the
docstring to work properly with older version of Mercurial. It
could crash if an extension would wrap merge.update without
keeping the docstring. This patch fixes the crash.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 18 Mar 2016 16:37:49 -0700] rev 1631
prune: remove the kill alias
This have been a long time since the command was rename (over 'kill -1' threat),
it is time to get rid of it.
Juntao Li <juntaoli@fb.com> [Thu, 17 Mar 2016 15:04:05 -0700] rev 1630
evolve: Fix crush when reading docstring
Before this patch, hg evolve --divergent could crush when looking
for docstring of function of merge.update. We were checking the
docstring to work properly with older version of Mercurial. It
could crush if an extension would wrap merge.update without
keeping the docstring. This patch fixes the crush.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 11:31:55 -0700] rev 1629
topic: restrict 'hg prev' to current topic unless --no-topic is passed
This is far from perfect but a good start
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 11:25:01 -0700] rev 1628
topic: restrict 'hg prev' to current topic unless --no-topic is passed
This is far from perfect but a good start.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 10:04:30 -0700] rev 1627
topic: preserve topic during evolve
previously, topic handling was absent leading to whatever the active topic was
when `hg evolve` was run to be used for all evolve results
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Mar 2016 09:39:35 -0700] rev 1626
topic: 'hg evolve --all' pick all trouble within current topic
This is the first changeset of a collaboration between the topic extensions and
evolve. If there is an active topic, 'hg evolve --all' will try to fix all
changesets in that topic wherever they are. Aspiring descendant that are not in
the current topic will be ignored.
For now, evolve behave as usual if there is no active topic. This is a bit
inconsistent and will probably be unified in the future.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 07 Nov 2015 16:08:42 -0500] rev 1625
close branch 3.3
I'm not expecting any more work in there.
Anton Shestakov <av6@dwimlabs.net> [Sat, 12 Mar 2016 13:59:07 +0800] rev 1624
evolve: mark progress units for translation
Anton Shestakov <av6@dwimlabs.net> [Sat, 12 Mar 2016 13:45:25 +0800] rev 1623
evolve: ui.progress doesn't use total count if pos is None, let's drop it
Every other call of ui.progress that has argument #2 (named `pos`) set
to None doesn't specify `total`, because it won't be used. Basically,
ui.progress(action, None) is enough, when used like this it hides
progress bar because the action is considered completed. So this is just
a minor cleanup patch.
Anton Shestakov <av6@dwimlabs.net> [Sat, 12 Mar 2016 13:15:28 +0800] rev 1622
debugrecordpruneparents: fix an apparent typo (marks)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Mar 2016 23:47:59 +0000] rev 1621
test: explicitly disable rebaseskipobsolete in a couple of place (issue5135)
We want to keep the old behavior for the sake of testing.
liscju <piotr.listkiewicz@gmail.com> [Fri, 11 Mar 2016 13:11:54 +0100] rev 1620
evolve: remove unused import
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Mar 2016 09:48:12 +0000] rev 1619
hgext: turn 'hgext' into a namespace package
Actually since Python 2.3, there is some way to turn top level package into
"namespace package" so that multiple subpackage installed in different part of
the path can still be imported transparently. This feature was previously
thought (at least by myself) to be only provided by some setuptool black magic.
Turning hgext into such namespace package allows third extensions to install
themselves inside the "hgext" namespace package to avoid polluting the global
python module namespace. They will now be able to do so without making it a pain
to use a Mercurial "installed" in a different way/location than these
extensions.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Feb 2016 13:18:36 +0100] rev 1618
merge stable into default
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Feb 2016 13:14:04 +0100] rev 1617
url: update url to point to the latest hosting
The documentation and various packaging were out of date.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Feb 2016 14:37:40 +0000] rev 1616
tests: add head warning messages
Core gained a warning about other head on the same branch. This impact our
tests.
Nathan Goldbaum <ngoldbau@ucsc.edu> [Wed, 10 Feb 2016 18:54:49 -0600] rev 1615
split: fix wording of documentation for --rev option
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:44:28 +0000] rev 1614
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:42:22 +0000] rev 1613
Added tag 5.3.0 for changeset bd59cc2ee203
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:39:56 +0000] rev 1612
merge with strange other head on stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:37:05 +0000] rev 1611
prepare version 5.3.0
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:35:58 +0000] rev 1610
evolve: update testedwith statement
We have carefully testing with Mercurial form 3.4 to 3.7
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:35:16 +0000] rev 1609
Readme: mention fix for issue4950
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:32:40 +0000] rev 1608
merge with new stable through 3.5 and 3.6
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 11:01:35 +0000] rev 1607
tests: register expected difference for Mercurial 3.4
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:07:54 +0000] rev 1606
merge with stable through 3.6
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 11 Feb 2016 00:02:39 +0000] rev 1605
readme: mark feature only available in 3.7 as such
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 10 Feb 2016 23:44:00 +0000] rev 1604
Merge with stable, updating tests output
Notable change:
- We do not support evolving merge before 3.7
- We don't support inhibit/direct-access
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 11:18:50 +0000] rev 1603
readme: point to mercurial-scm.org instead of selenic.com
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 11:17:09 +0000] rev 1602
merge with stable (Mercurial 3.7 is out)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 11:13:38 +0000] rev 1601
tests: register expected difference for Mercurial 3.6
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 11:07:44 +0000] rev 1600
tests: register expected difference for Mercurial 3.5
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 10:24:26 +0000] rev 1599
test: adapt to 3.6 help changes
Kostia Balytskyi <ikostia@fb.com> [Thu, 04 Feb 2016 02:46:40 -0800] rev 1598
evolve: make split respect rev args passed without --rev or -r
Currently, if one runs `hg split .` or `hg split`, it will fail
with an exception. This happens becuase we only expect revision
args to be passed as --rev/-r ones and don't treat unnamed args
properly or add default values if no args are provided.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 01:19:14 +0000] rev 1597
evolve: write our own custom evolvestate file
Since for ever, we were using 'graftstate' to record the node currently being
evolve and allow 'hg evolve --continue' we now move to our on 'evolvestate'
file. This remove and issue with 'hg summary' listing interrupted evolve as
graft. This also open the way for storing more data into that file and allow
proper --abort and --continue of the whole evolve operation (and not just the
last one).
The whole thing is very hacky but at least there is some progress.
Thanks goes to Shusen Liu for initiating this work.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Feb 2016 10:16:52 +0000] rev 1596
readme: update readme for issue 4966
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 03 Feb 2016 23:21:50 +0000] rev 1595
test: back hash change from 'extra' content change out
The changesets 13701c3fed9c, 3e907ff1981f and 54394d2aaf5e were introduced to
handle a change to the way extra were carried out by various command in core.
This had to be backout for 3.7.1 as is broken multiple third party extension. We
backout the test update as a result.
Core changesets performing the backout: ce9696193175::b698abf971e7
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 22 Jan 2016 21:41:59 +0900] rev 1594
evolve: close transaction if conflict is detected in relocate (issue4966)
Before this patch, transaction is aborted, if conflict is detected at
merging while "hg evolve".
Since 8f2ff40fe9c9 (or 3.6) of Mercurial, aborting transaction
discards all dirstate changes inside transaction scope for
"transactional dirstate" (see below wiki page for detail about it).
https://mercurial.selenic.com/wiki/DirstateTransactionPlan
Therefore, just aborting transaction causes unchanged (and unexpected)
dirstate, even though subsequent commands require dirstate changes
while "hg evolve".
To keep dirstate changes while "hg evolve", this patch closes current
running transaction, if conflict is detected in relocate(), even
though exception is raised as usual.
Even though "save dirstate and restore it after aborting transaction"
like shelve._aborttransaction() of Mercurial can also solve this
issue, this patch chose closing transaction for similarity with
failure for conflict at "hg unshelve". In addition to it, closing
transaction can keep any previous (implicit) changes.
In newly added test, there is an additional ancestor revision, which
"will be evolved safely". It is used to examine whether failure for
conflict doesn't discard already relocated revision(s) while "hg
evolve".
It is fact for current implementation that "hg evolve" relocates each
revisions in separated transactions and already relocated ones are
never discarded, even if subsequent relocation fails. Though, this
examination is useful to detect unintentional regression in the
future.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 23 Jan 2016 06:18:01 +0900] rev 1593
evolve: remove meaningless transaction nesting
Before this patch, functions below nest transaction scope, even though
they are invoked only inside a transaction scope created at _solveone().
- _solvebumped()
- _solvedivergent()
- relocate() via _solveunstable() or _solvebumped()
Transaction nesting is useful for localizing "success" (e.g. one scope
per commit inside wider scope for multiple committing).
But such nesting is redundant for _solveone(), because there is no
code path, which causes failure after successfully closing inner
transaction(s).
In addition to it, this nesting makes it complicated to close current
transaction successfully with exception raising inside inner scope,
like "hg shelve" at detection of conflicts. "tr.close()" is required
at each outer scopes for such case.
To remove meaningless transaction nesting, this patch replaces
repo.transaction() in functions above by repo.currenttransaction().
This reuses transaction created at _solveone().
This patch also adds 'assert tr' after getting current running
transaction, to avoid invocation of functions above without
transaction.
Shusen LIU <liushusen@fb.com> [Tue, 26 Jan 2016 15:42:01 -0800] rev 1592
evolve: extract logic to new method _evolvemerge
This patch introduces a new method _evolvemerge to merge orig to dest in
relocate method.
This simplifies the code of the method relocate and allows us to re-use it
later in the scope of the rework of 'hg evolve --continue'
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Jan 2016 16:53:12 +0100] rev 1591
test: add extra expected output
(I forgot to amend...)
Jeroen Vaelen <jeroen@fb.com> [Fri, 22 Jan 2016 19:16:38 +0000] rev 1590
inhibit: make bookmark -D work with a list of bookmarks
`hg bookmark -D` was not accepting a list of bookmarks. This behavior was
inconsistent with the behavior of `hg bookmark -d`, which does accept multiple
bookmarks.
Laurent Charignon <lcharignon@fb.com> [Sun, 17 Jan 2016 16:55:40 -0800] rev 1589
touch: prompt the user for what to do with the revived changeset
This patch improves our interface for reviving changesets.
This patch makes touch not assume that the user wants to create divergence by
default and gives a prompt instead. The prompt is skipped for changeset that
have no living successor as no divergence would be created by reviving them
anyway.
To restore the previous behavior, one should now use the --allowdivergence flag.
The prompt looks like:
[10] <description>
reviving this changeset will create divergence unless you make a duplicate.
(a)llow divergence or (d)uplicate the changeset? a
In further patches we will want to add one more choice to that prompt, for
example having a marker between the old and revived nodes but no divergence
displayed on the UI.
Laurent Charignon <lcharignon@fb.com> [Wed, 27 Jan 2016 13:57:08 -0800] rev 1588
inhibit: fix compat with rebaseskipobsolete
We wrap _computeobsoletenotrebased and _clearrebased to fix the following case:
- Assuming that we have markers from revisions of the rebase set and
destination set and that these markers are inhibited
- At the end of the rebase the nodes are still visible because rebase operate
without inhibition and skip these nodes
Had we not have those markers to begin with the revisions could be hidden at
the end of the rebase.
We keep track in repo._obsoletenotrebased of the obsolete commits skipped by
the rebase and lift the inhibition at the end of the rebase.
We add three test cases to make sure that the edge cases are covered.
Durham Goode <durham@fb.com> [Tue, 19 Jan 2016 15:30:23 -0800] rev 1587
test: update with new graft output
Graft now has a --continue it seems. We need to update our test output.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 17 Jan 2016 22:02:44 -0800] rev 1586
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 17 Jan 2016 21:09:45 -0800] rev 1585
tests: fix change to help output
Core have made minor update to its documentation.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Jan 2016 14:02:05 -0800] rev 1584
tests: change some double quotes to single quotes
Since hg core change 58f8b29c37ff (minirst: change hgrole to use
single quotes, 2016-01-12)
Laurent Charignon <lcharignon@fb.com> [Thu, 14 Jan 2016 12:02:38 -0800] rev 1583
inhibit: fix compatibility with changes in rebase
Because we compute the obsolete revisions before calling
_computeobsoletenotrebased lifting the inhibition stopped working
since 8a8ee8338e6 in core. This patch makes it work again.
Laurent Charignon <lcharignon@fb.com> [Sun, 10 Jan 2016 10:52:24 -0800] rev 1582
inhibit: fix _filterpublic
Before this patch, _filterpublic would always filter rep._obsinhibit and not
its "nodes" argument. Fortunately, we always called it with repo._obsinhibit as
its "nodes" argument!
Laurent Charignon <lcharignon@fb.com> [Mon, 04 Jan 2016 14:01:17 -0800] rev 1581
debian: blacklist test-inhibit.t
Since we don't add inhibit to the debian packages, let's not run test-inhibit.t
Laurent Charignon <lcharignon@fb.com> [Mon, 04 Jan 2016 08:39:58 -0800] rev 1580
evolve: duplicate evolution summary entries (issue5014)
Since we added summary entries for trouble changesets in core we don't need to
display it anymore in evolve for the version of hg with the change. Tested with
3.6.1 and 3.6.2.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Jan 2016 16:47:57 +0100] rev 1579
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Jan 2016 15:51:36 +0100] rev 1578
merge with the rest of stable
Faheem Mitha <faheem@faheem.info> [Wed, 30 Dec 2015 03:48:11 +0530] rev 1577
debian: update changelog to 5.2.1
Andrew Halberstadt <ahalberstadt@mozilla.com> [Thu, 26 Nov 2015 20:38:31 -0500] rev 1576
evolve: handle merge commit with single obsolete parent (issue4389)
This handles evolving merge commits with a single obsolete parent. Merge
commits with two obsolete parents are still unsupported. Note this depends
on a change to merge.graft in core. Older versions of mercurial will not
have this functionality. Also, test-unstable.t will fail with older
versions.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Dec 2015 14:11:09 +0000] rev 1575
merge with stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:39:59 -0500] rev 1574
evolve: rewrite help for prune command
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:38:49 -0500] rev 1573
evolve: improve help for split command
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:38:22 -0500] rev 1572
evolve: improve help for prev, next commands
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:37:26 -0500] rev 1571
evolve: improve the confusing docstring for _orderrevs()
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 09:48:04 -0500] rev 1570
evolve: improve help for some debug commands
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 21:42:06 -0500] rev 1569
evolve: scattered typo fixes in comments, docstrings
Shusen LIU <liushusen@fb.com> [Mon, 14 Dec 2015 17:21:11 -0800] rev 1568
evolve: extract logic to new method _finalizerelocate
This patch introduces a new method _finalizerelocate to finalize current state
after merge states in relocate method.
This simplifies the code of the method relocate and allows us to modify it
later to support a continued keywork to implement evolve state.
Shusen LIU <liushusen@fb.com> [Mon, 14 Dec 2015 17:02:55 -0800] rev 1567
evolve: extract logic to new method _relocatecommit
This patch introduces a new method _relocatecommit to commit current state
after merge states in relocate method.
This simplifies the code of the method relocate and allows us to modify it later to
support a continued keywork to implement evolve state.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Dec 2015 16:00:32 +0000] rev 1566
evolve: apply API change to 'merge.update'
Mercurial core43c00ca887d1 (future 3.7) changed the signature of the
'mercurial.merge.update', this impact our code so we update it. This
Martin von Zweigbergk <martinvonz@google.com> [Mon, 14 Dec 2015 16:29:55 -0800] rev 1565
debian: don't refer to deleted tests/run-tests.py in debian/rules
tests/run-tests.py was deleted in 25a0c31882df (tests: remove the
custom run-tests.py, 2015-11-02), but we still refer to it in
debian/rules. Fix by having the user define a HGSRC variable when
calling 'debuild' (with e.g '-e HGSRC=~/hg').
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Fri, 11 Dec 2015 12:27:37 -0800] rev 1564
prune: changing bookmark argument to be a list
Currently prune works with a single bookmark
the changes in this patch modifies the prune
command to accept a list of bookmarks
Also changes to inhibit module which internally
calls the cmdprune function. the change is to
wrap the bookmark input into a list.
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Fri, 11 Dec 2015 10:42:46 -0800] rev 1563
prune: remove a list of bookmarks
Currently prune works with a single bookmark,
the changes in this patch modifies the prune module
to work with a list of bookmarks
Building on this we can take a list of bookmarks as input
and remove all of them in a single go
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 11:15:33 +0000] rev 1562
test: adapt to fix to "known" wireprotocol command
Core fixed a bug in discovery (in b64b6fdc5c9b) and this is showing up in our
test output.
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Thu, 10 Dec 2015 15:55:07 -0800] rev 1561
evolve: renaming local variables
Renaming local variables to be more precise, i want to store
a different list of bookmarks(input-list) and it would be hard to
understand what marks represents in that change therefore
renaming it to repomarks.
Renames mark to bookmark, which will make the changes in next
patch more understandable, when it is pluraized.
Also renames bookmarks (module) to bookmarksmod so as to
free up the name when bookmark gets pluralized.
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 15:34:34 -0800] rev 1560
inhibit: backout 23a34dce5131 remove unused bookmark operation wrapping
This breaks potentially a lot of things. Let's give a change to extensions
maintainers to adapt to the new bookmarks.write api before removing this code
right away.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 10:51:04 +0000] rev 1559
readme: add something about bookmark within transaction
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 15:09:25 -0800] rev 1558
commitwrapper: use bookmarks.recordchange instead of bookmarks.write
Before this patch we were using the deprecated API bookmarks.write, this patch
replace its usage by the new API call bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:43:31 -0800] rev 1557
next: replace call to bookmarks.write by bookmarks.recordchange
bookmarks.write is now deprecated, we are moving to the new api:
bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:43:00 -0800] rev 1556
previous: replace call to bookmarks.write by bookmarks.recordchange
bookmarks.write is now deprecated, we are moving to the new api:
bookmarks.recordchange.
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:17:27 -0800] rev 1555
prune: use bookmarks.recordchange instead of bookmarks.write
Before this patch we were using the deprecated bookmarks.write instead of
bookmarks.recordchange in prune
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 10:49:29 +0000] rev 1554
transaction: fix release order in 'rewrite'
This was wrong for quite sometime.
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:28:29 -0800] rev 1553
check-code: make drophack comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:28:00 -0800] rev 1552
check-code: make directaccess.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:31:19 -0800] rev 1551
check-code: make inhibit.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:31:34 -0800] rev 1550
check-code: make obsolete.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:21:16 -0800] rev 1549
check-code: make pushexperiment.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:19:36 -0800] rev 1548
check-code: make simple4server.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:10:53 -0800] rev 1547
check-code: make evolve.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:00:59 -0800] rev 1546
evolve: fix test-inhibit to match latest hg
When I fixed an issue in core about rebaseset 40a2f972f26d (that I introduced
before), it restored the original behavior of inhibit with rebase. This patch
fixes test-inhibit to match the latest hg.
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:00:48 -0800] rev 1545
evolve: fix test-stabilize-conflict.t to match new extra computation in core
Recent patches changed the way we compute extras for rebase and graft. This
changes the hashes in evolve's tests. This patch fixes the test
test-stabilize-conflict.t.
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:01:28 -0800] rev 1544
evolve: fix test-sharing.t to match new extra computation in core
Recent patches changed the way we compute extras for rebase and graft. This
changes the hashes in evolve's tests. This patch fixes the test
test-sharing.t
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:01:36 -0800] rev 1543
evolve: fix test-tutorial.t to match new extra computation in core
Recent patches changed the way we compute extras for rebase and graft. This
changes the hashes in evolve's tests. This patch fixes the test
test-tutorial.t
Laurent Charignon <lcharignon@fb.com> [Mon, 30 Nov 2015 16:48:40 -0800] rev 1542
inhibit: make rebase see obsolescence even for visible nodes
Rebase changed recently to take advantage of obsolescence markers to reduce
the number of conflicts to resolve. Inhibit users were unable to leverage this
new feature because none of their visible nodes could be obsolete. This patch
makes the nodes that would be obsolete without inhibit, actually obsolete for
the duration of the rebase to take advantage of the feature mentioned before.
Laurent Charignon <lcharignon@fb.com> [Tue, 24 Nov 2015 17:16:27 -0800] rev 1541
inhibit: remove unused bookmark operation wrapping
Before this patch, inhibit was wrapping bookmarks.write and
bookmarks.recordchange. Since all the usage of bookmarks.write are not replaced
by bookmarks.recordchange all bookmarks operation happen in a transaction.
Inhibit already wraps the transaction mechanism to make sure that no revision
can end up being obsolete and visible. This makes the wrapping of
bookmarks.write superfluous.
Wrapping bookmarks.recordchange was wrong in the first place and redundant with
wrapping transactions.
Laurent Charignon <lcharignon@fb.com> [Tue, 01 Dec 2015 10:25:38 -0800] rev 1540
inhibit: update test with new behavior from core
The recent changes in core (to make sure that all bookmarks write are done at
the end of a transaction) changed the behavior of inhibit. When one rebases
a set of hidden revs somewhere, the hidden revs become visible at the end of
the rebase. Both the previous behavior and new behavior seems acceptable but
the tests have to be changed subsequently. This patch modifies one of the test
for inhibit when the case mentioned above happens. We prune the revs inhibited
by the rebase to make the change minimal.
Laurent Charignon <lcharignon@fb.com> [Thu, 19 Nov 2015 10:47:32 -0800] rev 1539
inhibit: remove unused import
The error module from mercurial was imported but unused in the inhibit code.
Laurent Charignon <lcharignon@fb.com> [Fri, 20 Nov 2015 10:30:42 -0800] rev 1538
inhibit: improve handling of error cases for bookmark -D
Before this patch bookmark -D was crashing in some cases like:
hg book -Dmaster-fix. This was because -m is a valid option for hg bookmark.
This patch disallows using -m with -D (moving and pruning does not make much
sense) and throws an error instead of crashing if the command is malformed.
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 13:47:26 -0800] rev 1537
directaccess: fix case of shortened hash containing only digits
For directaccess, there are four cases for what looks like short hashes made
of digits only:
1 | the hash is a revision number and not a short hash for another revision:
we don't change the visibility
2 | the hash is a revision number and a short hash for another revision:
we don't change the visibility
3 | the hash is not a revision number and not a short hash for another revision:
we don't change the visibility
4 | the hash is not a revision number but is a short hash for another revision:
we make it visible
Before the patch we were not lifting visibility in case number 4. This patch
fixes the issue.
Laurent Charignon <lcharignon@fb.com> [Tue, 17 Nov 2015 17:06:07 -0800] rev 1536
evolve: evolve --divergent failed when merge had nothing to do (issue4950)
Before this patch, if the divergence resolution lead to an empty commit, the
transaction would be rolled back and the divergence not resolved.
This patch allows empty commits in that case. It is legitimate to end up with
an empty commit in that case, for example when divergent commits differ over
their commit messages.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 20:25:15 -0800] rev 1535
inhibit: use dirty revset trick to speedup the inhibit search space.
See documentation for details. I'm a bit sad about this changesets.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 20:19:32 -0800] rev 1534
inhibit: use 'repo.revs' instead of 'repo.set'
This skip the creation of a changectx object.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 22:43:17 -0800] rev 1533
_inhibitmarkers: turn the result from generator into a list
A generator object is always True, we have to turn it into a list in order to be
able to use it in the tests. Before this patch we were rewriting the
'obsinhibit' file all the time, this had a performance impact especially on
repository where transaction are expensive (hooks, cache invalidation, etc).
Writing this file less often have a minor effect on test where a stripped
changeset does not get removed from the obsinhibit file is still inhibited when
unbundled back. I think this is fine and I'm moving forward.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:37:38 -0500] rev 1532
split: drop the experimental flag
I've been using it without issue for some time. The only blocker in my mind was
the lack of commit message preservation and this is now fixed.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:34:24 -0500] rev 1531
split: preserve original changesets description
Losing the description on split is to much an issue, we offer the original
description to edition for every part of the split.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:15:15 -0500] rev 1530
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:14:35 -0500] rev 1529
readme: updateing changelog
We forgot a couple of recent improvement.
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 15:04:45 -0500] rev 1528
evolve: rewrite command help (evolve command only)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 18:37:16 -0500] rev 1527
parents: avoid locking the repository during 'hg parents'
The wrapping code was initially written for update and pull who need the lock
anyway. We duplicated the logic in the parent case to remove the need for
locking.
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 18:02:05 -0500] rev 1526
README: update instructions for running tests.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:08:32 +0000] rev 1525
tests: remove the custom run-tests.py
This test-runners is a copy from the Mercurial one and slowly drift out of sync.
Use the Mercurial's core test runners instead.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:07:34 +0000] rev 1524
make: clean test related target
We removed the runner, so they are broken. We can reintroduce them later with
proper data to fetch an official 'run-tests.py' runner.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:05:28 +0000] rev 1523
test: use 'dummyssh' from the run-tests directory
This is a step toward not shipping our own test runners and relying on the
official Mercurial one.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:04:44 +0000] rev 1522
test: use 'killdaemons.py' from the run-tests directory
This is a step toward not shipping our own test runners and relying on the
official Mercurial one.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:40 +0000] rev 1521
merge back with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:23 +0000] rev 1520
Added tag 5.2.1 for changeset c15d6168412f
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:06 +0000] rev 1519
prepare version 5.1.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:38:18 +0000] rev 1518
merge with default
there is some 3.6 related fix and test change that we need on default. No other
significant change happened since last release expect for split, still marked
experimental. So we prepare for a bugfix release.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:32:44 +0000] rev 1517
split: mark the command as experimental
It has a bit too many rough edge for now.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 15:48:13 +0000] rev 1516
tests: run test with 3.6 and apply test change
Tested with 3.4, 3.5 and 3.6. Some minor test update had to be done.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 16:04:37 +0000] rev 1515
prune: have dirstate collaborate with transaction
With 3.6, dirstate update can work with transaction to ensure proper rollback.
We do it if the mercurial version permit it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 16:04:19 +0000] rev 1514
evolve: have dirstate collaborate with transaction
With 3.6, dirstate update can work with transaction to ensure proper rollback.
We do it if the mercurial version permit it.
Ryan McElroy <rmcelroy@fb.com> [Fri, 09 Oct 2015 16:21:30 -0700] rev 1513
prune: reuse revset from repair instead of copy-pasting code
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 12 Oct 2015 01:23:59 -0700] rev 1512
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 12 Oct 2015 01:22:41 -0700] rev 1511
evolve: compatibility with coming 3.6
Some function in the import stack changed, we have to adapt.
Augie Fackler <raf@durin42.com> [Tue, 29 Sep 2015 15:40:28 -0400] rev 1510
evolve: be more complete about copying extra from old revisions
For 'hg evolve' we want to copy all extra-level metadata except for
branch. This keeps the experimental topics extension from getting
obliterated by evolve runs.
Many hashes in tests changed due to some extra data coming along for
the ride in various places, but no functionality that was tested. It's
plausible that this copies too much metadata - maybe we should be
dropping rebase_src or convert_revision as well. Right now no tools do
that, so I'm biasing towards preserving everything except branch when
copying metadata for now.
Yuya Nishihara <yuya@tcha.org> [Wed, 30 Sep 2015 23:33:00 +0900] rev 1509
evolve: ignore ui argument passed to help loader
The API changed at Mercurial e0c572d4d112.
Durham Goode <durham@fb.com> [Tue, 29 Sep 2015 09:47:10 -0700] rev 1508
directaccess: inspect trees of len() > 3
Previously, when inspecting revset AST's we'd only traverse down the tree if it
was length 3 ([op, left, right]). In some situations, like 'or' the tree node
will be greater than length 3 ([op, first, second, ..., nth]). So we need to
traverse all the parts of the node to catch all the symbols.
Yuya Nishihara <yuya@tcha.org> [Mon, 21 Sep 2015 22:30:44 +0900] rev 1507
debugobsconvert: make sure obsstore is loaded before version comparison
hg 44918682093f delays loading obsstore, so we have to access _all to get
the correct store version.
Laurent Charignon <lcharignon@fb.com> [Wed, 16 Sep 2015 16:50:06 -0700] rev 1506
evolve: use repo._bookmarks.recordchange instead of repo._bookmarks.write
We want to get rid of the api repo._bookmarks.write and this
patch removes its use in evolve.py.
Before this patch, we were using repo._bookmarks.write to save bookmarks change
immediately instead of repo._bookmarks.recordchange that write change when
transaction ends.
Laurent Charignon <lcharignon@fb.com> [Wed, 16 Sep 2015 17:12:38 -0700] rev 1505
evolve: indentation change for making next patch more legible
In the next patch: "evolve: use repo._bookmarks.recordchange instead of
repo._bookmarks.write" we need to add a transaction in the rewrite function.
To do so adds an indentation level and makes the patch harder to review.
This patch makes the indentation change so that the next patch is easier to
review.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:52:34 -0700] rev 1504
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:48:34 -0700] rev 1503
next/prev: properly lock repo before touching bookmarks
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:48:34 -0700] rev 1502
next/prev: properly lock repo before touching bookmarks
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:23:43 -0700] rev 1501
prune: ensure we prune bookmarks in a transaction
timeless@mozdev.org [Thu, 10 Sep 2015 16:24:50 -0400] rev 1500
next: add support for --dry-run
also adds support to prev
timeless@mozdev.org [Wed, 09 Sep 2015 22:25:37 -0400] rev 1499
evolve: spelling uncommitted
timeless@mozdev.org [Wed, 09 Sep 2015 22:23:48 -0400] rev 1498
evolve: annotate translatable strings with _()
timeless@mozdev.org [Wed, 09 Sep 2015 22:22:01 -0400] rev 1497
evolve: do not capitalize description of next/previous
timeless@mozdev.org [Wed, 09 Sep 2015 22:13:11 -0400] rev 1496
evolve: _() should not contain %
timeless@mozdev.org [Wed, 09 Sep 2015 19:43:24 -0400] rev 1495
evolve: add progress for _obsrelsethashtree
timeless@mozdev.org [Wed, 09 Sep 2015 19:43:14 -0400] rev 1494
evolve: add progress for the obsmarkers discovery parts
timeless@mozdev.org [Wed, 09 Sep 2015 19:40:54 -0400] rev 1493
test-obsolete: clarify divergence detection output order
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 17 Aug 2015 17:01:38 -0700] rev 1492
directaccesss: also look for symbol into list
revrange is now much smarted and optimise multiple simple symbol (like hash)
into an efficient '_list' call. So we need to look into these to find user
provided input too.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Aug 2015 20:38:39 -0700] rev 1491
merge with stable
Durham Goode <durham@fb.com> [Wed, 12 Aug 2015 10:51:20 -0700] rev 1490
inhibit: fix inhibit working with non-inhibit repos
Inhibit was breaking when two repos were in memory, but one was not an inhibit
repo (like when doing a local pull between two repos). The fix is to add
inhibitenabled checks to all the places where inhibit does global wrapping of
commands (every code path from the extsetup wrappers).
Siddharth Agarwal <sid0@fb.com> [Wed, 12 Aug 2015 16:08:05 -0700] rev 1489
directaccess: don't try to partialmatch things that aren't hashes
Trying to partialmatch identifiers like '.' turns out to be (a) pointless and
(b) extremely slow. On a repo with a million commits, with directaccess
enabled,
hg log -r .^::.
goes from 2.1 seconds to 0.5.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:44:53 -0700] rev 1488
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:41:18 -0700] rev 1487
next: properly report no children when --evolve is used
If no aspiring children exist, 'hg next --evolve' should properly issue an error
message instead of crashing.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:24:15 -0700] rev 1486
inhibit: do not search for visible obsolete changeset during stripping
Stripping use transaction in an unorthodox way. We should not run the inhibit
postclose hooks as it can lead to crash.
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:42:57 -0700] rev 1485
split: handle bookmarks instead of leaving them on precursor
Before this patch we were leaving the bookmarks on the precursor of the split
instead of moving them on the tip of the split chain. We add a test to verify
the behavior.
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:45:36 -0700] rev 1484
split: don't update before it is actually needed
Before this patch, we were updating the working copy parent needlessly and
before the error checking. This patch fixes the issue.
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:16:55 -0700] rev 1483
split: add more output to the test
Before this patch, we were not displaying the final graph resulting from the
tests but just the obsolscencence markers. This patch adds more output to the
test to make it more descriptive.
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:12:16 -0700] rev 1482
split: fix commit message numbering error in the test
Before this patch, the test was wrong and the successors of a splitted commits
all had the same commit messages. This patch makes the test right making sure
that the numbering of the split successors is accurate.
Laurent Charignon <lcharignon@fb.com> [Wed, 24 Jun 2015 16:27:36 -0700] rev 1481
evolve: handle split commit for instability
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 07 Aug 2015 13:59:19 -0700] rev 1480
merge with stable
Laurent Charignon <lcharignon@fb.com> [Fri, 07 Aug 2015 11:39:51 -0700] rev 1479
evolve: add test for instability
Laurent Charignon <lcharignon@fb.com> [Thu, 18 Jun 2015 16:48:53 -0700] rev 1478
evolve: add a command to split commits
Before this patch, to split commit one had to use prune. This patch adds a
new command called split that prompts the user interactively to split a given
changeset with record/crecord.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 11:29:27 -0700] rev 1477
merge with stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 01 Aug 2015 22:16:26 -0400] rev 1476
test-inhibit: simplify push destinations for Windows
This was aborting because $pwd is expanding to 'C:/path/to/tests':
- pushing to file://$TESTTMP/inhibit2
- abort: hidden revision '003a4735afde'!
- (use --hidden to access hidden revisions)
+ abort: file:// URLs can only refer to localhost
Matt Harbison <matt_harbison@yahoo.com> [Sat, 01 Aug 2015 21:54:00 -0400] rev 1475
test-sharing: fix globs for Windows
Laurent Charignon <lcharignon@fb.com> [Wed, 29 Jul 2015 09:55:50 -0700] rev 1474
inhibit: don't abort when directaccess is not enabled
When directaccess is not enabled, we should just print a warning and not set up
inhibit. We don't need to abort in that case. Example: if the user is running
hg showconfig, we don't want to crash as the command is unrelated to inhibit.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Jul 2015 22:58:13 +0100] rev 1473
merge with stable
Laurent Charignon <lcharignon@fb.com> [Thu, 09 Jul 2015 12:42:07 -0700] rev 1472
inhibit: add missing locking in wrapper for obsmarker creation
The develwarning for transaction without lock rightfully pointed out to this
issue. Before this patch we were not locking in the transaction for obsmarker
creation and therefore showing the warnings.
Laurent Charignon <lcharignon@fb.com> [Thu, 25 Jun 2015 13:33:50 -0700] rev 1471
evolve: (issue4386) cleanup, split, fold and bijection in `hg prune`
Before this patch, the prune command was splitting and folding implicitely
based on the number of successors and precursors. This patch makes the
two behavior explicit by requesting a flag to perform a split or a fold.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Jun 2015 18:32:12 -0700] rev 1470
merge with stable
André Sintzoff <andre.sintzoff@gmail.com> [Fri, 26 Jun 2015 22:26:48 +0200] rev 1469
evolve: fix typo in fold docstring
André Sintzoff <andre.sintzoff@gmail.com> [Fri, 26 Jun 2015 22:25:57 +0200] rev 1468
evolve: remove trailing spaces
Laurent Charignon <lcharignon@fb.com> [Wed, 24 Jun 2015 16:54:23 -0700] rev 1467
evolve: dedupe divergents when running evolve --all --any or evolve --rev
Before this patch, when running evolve --all --any or evolve --rev with the
--divergent flag, we were selecting all of the divergents. After solving the
first one, its counterparts would get pruned and potentially hidden which would
crash when trying to resolve them. This patch introduces logic to dedupe the
divergents to be resolved by keeping only one per group of divergent with the
lower revision number.
Laurent Charignon <lcharignon@fb.com> [Wed, 24 Jun 2015 16:38:24 -0700] rev 1466
evolve: remove unused warning message in _solvedivergent
Before this patch, we were checking for a case where a divergent changeset could
be public and printing a warning in that case. When we compute the divergent set
in the obsolete module we explicitely look for not public() changesets.
This patch removes this unused warning.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 29 Jun 2015 02:30:27 -0700] rev 1465
compat: use svfs instead of sopener
The "new" attribute is about 2 years old so let's move on.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:59:22 -0700] rev 1464
fold: avoid using x:y in the help
Suggesting "x:y" is a bad idea because x:y is a very deceptive revset.
Laurent Charignon <lcharignon@fb.com> [Thu, 25 Jun 2015 09:53:53 -0700] rev 1463
evolve: improve the help of the fold command
The help of the fold command needed a little rework. This patch makes it a
little less verbose and adds an example. It also highlights a little more the
importance of the --exact flag.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:07:13 -0700] rev 1462
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:05:37 -0700] rev 1461
Added tag 5.2.0 for changeset 44a9dcb3fefc
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:05:25 -0700] rev 1460
merge with 3.3
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:04:38 -0700] rev 1459
fix version number
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 26 Jun 2015 00:04:22 -0700] rev 1458
fix debian changelog
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:46:24 -0700] rev 1457
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:45:25 -0700] rev 1456
Added tag 5.2.0 for changeset 00026533ff9f
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:43:10 -0700] rev 1455
merge with preparation for version 5.2.0
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:42:07 -0700] rev 1454
prepare version 5.2
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:38:40 -0700] rev 1453
merge with stable
(restore test for Mercurial default branch
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:37:43 -0700] rev 1452
merge back with 3.3 compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 17:22:17 -0700] rev 1451
tests: adapt the test for Mercurial 3.3
Some fix in the obsolete parent directory warning where also necessary.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 25 Jun 2015 16:55:27 -0700] rev 1450
merge with stable
Test are updated to run with current mercurial stable (3.4.1)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 20:06:45 -0700] rev 1449
next: add a --evolve option
When on a topological head, this option will trigger the evolution of a unstable
changeset that will result in a children of the current working copy parent.
This should ease stacked changesets workflow by allowing to stick to prev and
next to move through a stack of diff, evolving part of it on demand when needed.
In case of ambiguity, the command will ask the user to choose. We need a better
definition of "the stack of changesets I'm working on" to be able to seamlessly
handling branching.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 19:42:01 -0700] rev 1448
next: print some message when on a head with some aspiring children
Being on a head does not necessary means that this is the end of the road. It is
likely that some changesets could be evolve as children. We detect this case and
provide a hint.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 20:23:41 -0700] rev 1447
next: reword error output
We move to a more compact and direct phrasing. I'm not fully happy about it yet,
but this is a step forward. The listing of candidate should maybe be moved
behind a --verbose flag (and such verbose flag be suggested in the error).
G: changed tests/test-prev-next.t
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 20:17:57 -0700] rev 1446
next: refactor the command code
We make the conditional flatter and the return more straight forward. This will
make addition of more complex cases more straightforward in future changesets.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 21:16:57 -0700] rev 1445
next: add extensive testing to the 'next' command
We are going to introduce more complexity to it. We add the full extend of the
case we want tested to see how they evolve later.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 19:43:35 -0700] rev 1444
readme: add an entry about the obsolete wdir parent hint
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 24 Jun 2015 16:37:02 -0700] rev 1443
evolve: add a hint when the parent working copy become obsolete
This should help people find the right commands to recover from this situation.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 18:16:21 -0700] rev 1442
evolve: better error message when command is Ambiguous
Having more data help the user.
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 16:35:45 -0700] rev 1441
evolve: mechanism to load some commands selectively
This patch introduces a new config option: experimental.evolutioncommands to
load evolve's command selectively.
It is part of a sequence of patches to make evolve's command respect the value
of experimental.evolution. Once these commands are ready and actually respect
the flag, they are safe to use and can be enabled with the mechanism developed
in this patch.
Laurent Charignon <lcharignon@fb.com> [Mon, 22 Jun 2015 17:46:32 -0700] rev 1440
evolve: clarify code in _singlesuccessor
Before this patch we were not very explicit with this while condition in
_singlesuccessor. This patch makes it more legible.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:50:39 -0700] rev 1439
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:50:06 -0700] rev 1438
merge with inactive compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:49:53 -0700] rev 1437
merge with inactive compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:49:24 -0700] rev 1436
close inactive compatibility branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:47:47 -0700] rev 1435
close inactive compatibility branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:47:24 -0700] rev 1434
merge with inactive compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:47:08 -0700] rev 1433
merge with inactive compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:46:54 -0700] rev 1432
merge with inactive compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:45:55 -0700] rev 1431
close inactive compatibility branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:45:47 -0700] rev 1430
close inactive compatibility branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 16:45:22 -0700] rev 1429
close inactive compatibility branch
Laurent Charignon <lcharignon@fb.com> [Mon, 22 Jun 2015 12:44:21 -0700] rev 1428
evolve: raise MultipleSuccessorsError when computing dependency for split commits
We don't know how to handle dependency for split commits yet. When facing a
splitted commit, instead of silently adding the first successor to the
dependency list and fail later, we do nothing.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 15:26:51 -0700] rev 1427
next/prev: require --merge to move with uncommitted changes
This should previous common mistake.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 15:32:47 -0700] rev 1426
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 15:32:15 -0700] rev 1425
Added tag 5.1.5 for changeset 1377f6a7f9ec
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 15:30:35 -0700] rev 1424
prepare version 5.1.5
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 00:00:03 -0700] rev 1423
evolve: non recursive implementation for _aspiringdescendants
We switch from a N squared recursive implementation for _aspiringdescendants
to a more efficient algorithm in O(len(unstable)).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 22 Jun 2015 21:01:30 -0700] rev 1422
evolve: distinct between '--all' and '--all --any'
Before this patch, evolve --all implied evolve --all --any. With this patch
evolve --all evolves all the aspiring descendants of the parent of the working
copy. evolve --all --any does what evolve --all did before: evolving all the
troubles in the repo.
We add anew function _aspiringdescendant for this purpose
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 23 Jun 2015 00:02:23 -0700] rev 1421
rework refactor _aspiringchildren by introducing _possibledestination
This allows us to reuse some of the logic for evolve from _aspiringchildren
for the new implementation of evolve --all.
The logic is also better as some previously selected changesets may not actually
evolve on the target, and some changesets that does not would not.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 22 Jun 2015 19:24:21 -0700] rev 1420
evolve: consider all potential candidates on bare evolve
Instead of stopping at the first resolution, we returns all matches. If there is
ambiguity, we abort.
The function itself seems fairly flawed but will do the job in simple case.
Laurent Charignon <lcharignon@fb.com> [Tue, 23 Jun 2015 13:20:00 -0700] rev 1419
evolve: fix an issue in the documentation of the evolve function
hg evolve is solving troubles that will become children of the parent of the
working copy and its descendant. This last part was omitted by mistake from
the help message before.
Laurent Charignon <lcharignon@fb.com> [Mon, 22 Jun 2015 12:41:32 -0700] rev 1418
evolve: fix error in builddependencies
When MultipleSuccessorsError was raised, we were still running the code below
to add the dependency if succ was not None from a previous iteration.
This bug was harmless because dependencies and rdependencies are sets but it
makes the code clearer this way.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 18:17:57 -0700] rev 1417
test-evolve-bumped: add new test case for merge
Before this patch we were not testing our warning message for bumped changesets
that are the product of a merge. This patch adds a test case for that.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 18:16:31 -0700] rev 1416
test-evolve-bumped: improve tests legibility
This patch introduces in test-evolve-bumped some of the test helpers that we
use in other tests to make the code more legible.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 22 Jun 2015 15:04:54 -0700] rev 1415
evolve: drop len comparison in prune and fold
Computing the length of a smartest may be significantly more expensive than
computing it length.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 20 Jun 2015 02:04:37 -0700] rev 1414
evolve: add an help topic about evolution
The text is probably bad, but this have been laying around for quite sometime
(with Mercurial core in mind) lets move forward and add this to evolve.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 17:47:48 -0700] rev 1413
evolve: remove _picknexttroubled
It was not used anymore
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 17:35:29 -0700] rev 1412
evolve: warn about every skipped evolution
When we could not evolve a revision, we used to silently ignore it. We now
inform the user that we ignored something and tell him why (with more or less
informative message).
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 17:03:40 -0700] rev 1411
evolve: some style fix
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:26:33 -0700] rev 1410
evolve: unify revision handling and rework error message
This changesets do a massive refactoring of the way evolve select changesets to
be evolve. We now use a two stages approach:
1) read command line argument and produce a list of revision to evolve.
2) evolve all these revisions.
This allow a much cleaner, robust and extensible code. In the process the error
message issued when there is nothing to evolve have been updated to informs
about other troubles in the repository and point at useful option to solve them.
The 'update' case is handled independently at the start of the function.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:32:54 -0700] rev 1409
evolve: move the 'update' if '.' is obsolete earlier
A big refactoring of the computation of the revision to evolve is coming. This
case won't be handled by it, so we extract it earlier.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 17:56:23 -0700] rev 1408
evolve: skip unstable changesets with multiple successorssets
We were previously crashing when encountering them, but we want to be able to
solve the other solvable troubles instead of stopping right there.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:18:45 -0700] rev 1407
evolve: allow multiple --rev argument
This is standard behavior for Mercurial commands.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 16:49:59 -0700] rev 1406
test-evolve: fix tests failing on some platform
We change from echo to printf to print newlines so that evolve's tests work
cross-platforms.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 16:58:38 -0700] rev 1405
evolve: prevent using --rev and --any together
Before this patch it was possible to use evolve --rev --any and it meant
evolve --rev. This patch throws an error when using evolve --rev --any.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 15:14:37 -0700] rev 1404
evolve: add selector for trouble types
This patch adds command line flags to select the kind of troubles to solve.
Before this patch evolve was solving any kind of troubled. With this patch
evolve --all and evolve --rev can be configured to only solve only some type
of troubles (divergent, bumped or unstable). To give this choice to the
user we add three new command line flags to the evolve command: --bumped,
--divergent and --unstable.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 13:57:16 -0700] rev 1403
evolve: refresh the documentation
Multiple behavior change are coming, a perfect timing to refresh the doc before
we rework it more.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 15:08:44 -0700] rev 1402
evolve: check for uncommited change earlier
Before this patch we were checking for uncommited change multiple times and
quite late for uncommited change. This patch moves the check at the beginning
of the evolve method to avoid these shortcomings.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 12:39:15 -0700] rev 1401
merge with some old heads
Pierre-Yves David <pyd@fb.com> [Mon, 16 Jun 2014 14:31:49 -0700] rev 1400
merge with some older backport
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 12 Jun 2014 16:10:01 -0700] rev 1399
template: add a troubles keyword
This keyword list all evolution troubles that affect a changeset. Evolution
troubles can be "unstable", "divergent" and "bumped".
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 11:04:18 -0700] rev 1398
evolve: make fold aware of allowunstable
Before this patch, the fold command was performing the same way regardless of
the value of experimental.evolution.
With this patch if the configuration does not allow unstability, fold won't
create instability.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 11:03:51 -0700] rev 1397
evolve: make prune respect allowunsable
Before this patch, the prune command was performing the same way regardless
of the value of experimental.evolution.
With this patch if the configuration does not allow unstability, prune won't
create instability.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 10:47:02 -0700] rev 1396
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 10:44:25 -0700] rev 1395
evolve: add a hint about how to abort an evolve with conflict
The whole evolve --continue is hacky, but the way to abort it have been arcane
knowledge, carried from sith lord to its apprentice for centuries. We add a hint
to help the use discover it.
One day a clean solution will come.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:17:34 -0700] rev 1394
merge with branch closing commit
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:16:56 -0700] rev 1393
close 3.1 compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:15:55 -0700] rev 1392
evolve: marks the extension as tested with 4.1
Because it is.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 23:45:37 -0700] rev 1391
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 18:05:57 -0700] rev 1390
evolve: fix default value for --confirm
Before this changes, the default was yes, unlike advertised.
The test were actually catching that so I go them updated.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 18:12:24 -0700] rev 1389
prune: use the bookmark wrapper for 3.4 compatibility
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:57:11 -0700] rev 1388
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:56:02 -0700] rev 1387
evolve: update readme regarding the preview perf improvement
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:28 -0700] rev 1386
evolve: move 'allsuccessors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:21 -0700] rev 1385
evolve: move 'successors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:13 -0700] rev 1384
evolve: move 'allprecursors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:00 -0700] rev 1383
evolve: move 'precursors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:08:38 -0700] rev 1382
evolve: move 'suspended()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:08:11 -0700] rev 1381
evolve: move 'troubled()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:14:32 -0700] rev 1380
evolve: avoid creating changectx object in _allsuccessors
The repo lookups and object creations have a significant performance overhead.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:14:16 -0700] rev 1379
evolve: avoid creating changectx object in _successors
The repo lookups and object creations have a significant performance overhead.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:13:35 -0700] rev 1378
evolve: avoid creating changectx object in _allprecursors
The repo lookups and object creations have a significant performance overhead.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:13:15 -0700] rev 1377
evolve: avoid creating changectx object in _precursors
The repo lookups and object creations have a significant performance overhead.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:18:29 -0700] rev 1376
evolve: fix the template keyworkd decorator docstring
It was still talking about revsets.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:56:56 -0700] rev 1375
evolve: search divergence within all precursors
Before this patches we looking for divergence base in immediate successors only.
This was a bug leading the divergence base to be reported missing more than it
should.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:25:51 -0700] rev 1374
evolve: make sure we use an unfiltered repo when looking for divergence data
Let's be double sure
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:25:51 -0700] rev 1373
evolve: make sure we use an unfiltered repo when looking for divergence data
Let's be double sure
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Jun 2015 11:31:05 -0700] rev 1372
directaccess: remove import from the no warning list
removal of the list previously failed for some reason.
Laurent Charignon <lcharignon@fb.com> [Wed, 17 Jun 2015 10:30:07 -0700] rev 1371
directaccess: add some commands to the directaccess list
Before this patch we had a limited list of commands in the directaccess list.
This patch adds about 20 commands to that list:
- all the read-only commands in core supporting a rev as an argument
- 'outgoing': since people can use 'outgoing' to know what is going to be
pushed, the output of hg outgoing should be consistent with to the output
of hg push and must therefore disallow directaccess since hg push forbids it.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 14:49:28 -0700] rev 1370
evolve: move test for evolve --rev ordering in a separate file
evolve --rev reordering is a complicated enough topic to justify a separate
test.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 14:30:43 -0700] rev 1369
evolve: properly evolve stacked unstable with --rev
Before this patch, _singlesuccessor was not returning a revision number for
the case where the parent of the argument was not obsolete. This resulted in
bug when testing membership with the set of revisions. This patch fixes it and
adds a test.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:19:17 -0700] rev 1368
directaccess: disable directaccess for push and serve
Before this patch, push and serve were subject to directaccess. This patch
makes them throw error when trying to access hidden hashes.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:08:48 -0700] rev 1367
directaccess: change rule from opt-in to opt-out
Before this patch we would opt-in commands for direct access and the default
filter for new repository was 'visible'.
With this patch, the default filter for new repos is
'visible-directaccess-warn'. It means that by default all the commands have
directaccess with warnings.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:07:51 -0700] rev 1366
inhibit: move transaction wrapping outside of repo setup
Before this patch, transaction wrapping code was done in reposetup. It happened
to cause stackoverflows in repos with a lot of subreps.
This patch moves the wrapping to extsetup and avoids this problem.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Jun 2015 17:44:12 -0700] rev 1365
tests: ignores other core output in capability testing
This will avoid breaking the test anytime core changes.
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 12:46:13 -0700] rev 1364
evolve: make uncommit respect allowunsable
Before this patch, the uncommit command was performing the same way regardless
of the value of experimental.evolution.
With this patch if the configuration does not allow unstability, uncommit won't
create instability.
Laurent Charignon <lcharignon@fb.com> [Sat, 13 Jun 2015 11:14:07 -0700] rev 1363
directaccess: use cached filteredrevs
Before this patch we were calling directly repoview.computehidden(repo) to
compute the revisions visible with direct access, without going through the
caching mechanism for the filtered revisions.
There was two issues with that:
(1) Performance: We were not leverating the cached values of the 'visible' revs
(2) Stability: If there were to be a cache inconsistency with the computation of
'visible' we would crash in the branchmap consistency check partial.validfor.
Consider the scenario of rebase with bookmarks:
- when we delete a bookmark on an obsolete changeset (like what rebase
does when moving the bookmark after rebasing the changesets)
- then this changes the value returned by repoview.computehidden(repo) as
bookmarks are used as dynamic blockers in repoview.computehidden(repo)
- as of now, we don't invalidate the cache in the case of bookmark change
- if we have a cached value from before the bookmark change,
repoview.filterrevs(repo, 'visible') considers the cached value correct and
returns something different than repoview.computehidden(repo)
- in turn, if we use repoview.computehidden(repo) in directaccess, the subset
relationship is broken and the cache consistency assertion (parial.validfor)
fails if branchmap.updatecache is called in this time window
This patch leverages the caching infrastructure in place to speed up the
computation of the filteredrevs for visible-directaccess-nowarn and
visible-directaccess-warn. Incidentally it prevents the bug discussed in (2)
from crashing when running a rebase with a bookmark. Note that there still
needs to be a fix in core for the case discussed in (2).
The test for this side of the fix (not core's fix for (2) is very hard to
implement without introducing a lot of dependencies and does not belong
here. It is much easier to have the test of the fix for the scenario (2) in
core along with the fix.
Laurent Charignon <lcharignon@fb.com> [Sat, 13 Jun 2015 11:14:27 -0700] rev 1362
inhibit: improve performance of transaction wrapping
Before this patch, transaction wrapping was the most expensive part of inhibit
computation wise. This patch changes the revset that we use in the transaction
wrapping to make it ~50x faster to compute:
revset #0: obsolete() - hidden()
0) wall 0.000214 comb 0.000000 user 0.000000 sys 0.000000 (best of 11209)
vs
revset #0: (not hidden()) and obsolete()
0) wall 0.010965 comb 0.010000 user 0.010000 sys 0.000000 (best of 237)
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 16:49:16 -0700] rev 1361
evolve: extract the code computing dependencies in a separate function
The code to compute dependencies between unstable changeset can be reused to
compute the next reveset. This patch extracts it in its own function to make
it reusable.
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 10:01:02 -0700] rev 1360
directaccess: add mechanism to load directaccess after some other extensions
directaccess needs to load after some extensions to avoid interfering with them.
This patch adds a mechanism to specify what extension directaccess needs to load
after.
Laurent Charignon <lcharignon@fb.com> [Tue, 02 Jun 2015 15:24:12 -0700] rev 1359
evolve: add another test for evolve --rev
This patch adds one test for three conditions not covered before:
- evolve --rev on a stack with obsolete commits without successors
- evolve --rev on two sets of stacks in parallel
- evolve --rev on a set of stack partially solvable (because all of the
commits of the stack are not specified with --rev)
Laurent Charignon <lcharignon@fb.com> [Tue, 02 Jun 2015 15:23:50 -0700] rev 1358
evolve: add a more complex test for evolve --rev
The previous tests of evolve --rev would have passed with an ordering of revs
by increasing revision numbers. This patch adds a test that would fail if that
was what we were doing and therefore tests the implementation better.
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 13:35:12 -0700] rev 1357
evolve: add ordering of the revisions for evolve --rev
When running evolve --rev we want to process the revisions in an optimal fashion
to solve the maximum amount of trouble in the minimum number of steps.
This patch adds a step to evolve --rev to order the revision before solving
the troubles. A simple test is added to cover a basic case.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Jun 2015 13:26:58 -0700] rev 1356
test: adapt to change in mercurial core
Bundle2 is one by default and more capability have been added.
Laurent Charignon <lcharignon@fb.com> [Wed, 03 Jun 2015 16:01:28 -0700] rev 1355
evolve: add directaccess to the setup.py
directaccess was missing from the list so that when we were building evolve it
was not contained in the build.
Laurent Charignon <lcharignon@fb.com> [Mon, 01 Jun 2015 12:29:12 -0700] rev 1354
evolve: don't crash on singled out revisions
Before this patch, we were crashing on unsolvable revisions when using
evolve --rev. This patch removes the crash and prints a warning when we
encounter such revision.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 10:58:50 -0700] rev 1353
test: adapt test to less frequent branch warning
The 701df761aa94 changeset in mercurial core made the branch warning issue only
for the first branch created. We adapt the tests to reflect this change.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 10:56:49 -0700] rev 1352
tests: adapt summary output to 6084926366b9
The 'summary' commands recently gained phases related output, 6084926366b9 put
it into a "final" state. We adapt the test to this new style.
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 10:23:37 -0700] rev 1351
evolve: small refactoring of the uncommit function
We introduce a new variable to simplify the implementation of hg uncommit
--interactive.
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:46:34 -0700] rev 1350
evolve: improve error message
We add a new line and change the wording from 'revsets' to 'revisions'.
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:43:36 -0700] rev 1349
evolve: move return statement at the right level
When no trouble was found with the --rev option, the code of the evolve
function would continue running and would solve unwanted troubles. This patch
makes sure it does not happen.
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 14:00:01 -0700] rev 1348
evolve: remove extra whitespace
This patch removes a whitespace at the end of a line.
Laurent Charignon <lcharignon@fb.com> [Fri, 22 May 2015 10:38:16 -0700] rev 1347
directaccess: don't crash when evolve is not loaded
Before this patch, when evolve was not loaded direct access was crashing. This
patch catches the error and prevents the crash.
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 10:58:32 -0700] rev 1346
inhbit: don't crash on commit with no changes
Before this patch inhibit would crash when running hg amend with no changes.
This patch fixes this case and adds a test to prevent regression.
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 13:32:32 -0700] rev 1345
evolve: add a test for prune --keep -r . with active bookmark
We recently changed the behavior of prune to make sure that the active
bookmark stays active after prune -r .
This patch adds a test for the case of prune --keep -r . that does not
take the same code path.
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 13:23:20 -0700] rev 1344
Merge with stable
Laurent Charignon <lcharignon@fb.com> [Thu, 14 May 2015 11:32:04 -0700] rev 1343
inhibit: add test to ensure that --hidden is working with inhibit
There was a concern with the transaction hook in inhibit and its potentially
devastating effect when used with --hidden. The transaction hook in inhibit
hides all the visible & obsolete commits when the transaction ends using the
visible() and the obsolete() revset.
--hidden does not change the visible() revset so it is fine. If this changes in
the future and --hidden actually ends up impacting the visible() revset, this
test will catch it and prevent inhibit from putting inhibition markers on
all of the obsolete changesets.
Laurent Charignon <lcharignon@fb.com> [Mon, 18 May 2015 17:24:38 -0700] rev 1342
prune: with active bookmark should stay active
hg prune with an active bookmark was deactivating the bookmark after the prune.
This patch makes sure that if a bookmark was active before a "prune" operation
(except prune -B) then the bookmark stays activate afterwards.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 19 May 2015 00:47:00 -0500] rev 1341
merge with stable
Augie Fackler <raf@durin42.com> [Mon, 18 May 2015 13:58:57 -0400] rev 1340
evolve: migrate off of now-dead util.any
Laurent Charignon <lcharignon@fb.com> [Thu, 14 May 2015 11:23:40 -0700] rev 1339
inhibit: create direct access extension
Since we want to use direct access without necessarily using inhibit, this
patch separates both extensions. Inhibit depends on direct access and we add
a test to check that it complains if that is not the case.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 May 2015 15:59:06 -0700] rev 1338
inhibit: handle inhibit marker on stripped revision
If a revision disappear from the repo, we should not crash.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 13 May 2015 17:25:15 -0700] rev 1337
update README
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:03:11 -0700] rev 1336
evolve: don't use python sets on top of revset for evolve --rev
In --rev we were wrapping the revsets in python sets.
This is wrong as the use python sets force the wrapper revision set to be
computed earlier than it has to and have no order guarantee.
Removing this wrapping changes a test because the ordering does not appear to
be the same but the end result is the same.
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 08:47:27 -0700] rev 1335
evolve: current bookmark wrongly moving during prune (issue4559)
Before this patch: prune -r <otherbookmark> also moved the current bookmark
eventhough it was not related to the pruned changes.
This patch fixes it and adds a test to catch regressions.
Laurent Charignon <lcharignon@fb.com> [Tue, 12 May 2015 13:52:29 -0700] rev 1334
inhibit: direct access with and without warning on a per command basis
We introduce a new filtername visibile-directaccess-nowarn to enable direct
access with no warning on a per command basis.
The motivation behing this change is to display warning when attempting direct
access in destructive commands.
Laurent Charignon <lcharignon@fb.com> [Tue, 12 May 2015 12:26:46 -0700] rev 1333
inhbit: make tests work with evolution.createmarkers config
Before this patch, the test for inhibit was assuming evolve fully running.
For most of the features that inhbit enables, createmarkers is sufficient.
This patch makes the test of inhibit run with the createmarkers config and
only lifts it for operations in the middle of the stack.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 17:37:11 -0700] rev 1332
inhibit: config to enable only direct access
Inhibit provides several features to hide instability and direct access.
We want to use direct access in evolve without hiding the instability.
This patch adds a config flag to enable only direct access in inhibit, when
this config flag is not set or set to false we enable all the features of
inhibit that don't concern direct access.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 11 May 2015 14:31:17 -0700] rev 1331
merge with stable
Ryan McElroy <rmcelroy@fb.com> [Thu, 07 May 2015 13:20:11 -0700] rev 1330
bookmarks: update to use new bookmarks api via compatibility layer
Tested against 3.4 and latest hg + upcoming bookmarks patches
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 07 May 2015 10:54:37 -0700] rev 1329
simple4server: remove buggy wrapping of pull related function
Not only the wrapping was all buggy, but simple4server is not supposed to affect
client side pull.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 May 2015 11:29:15 -0700] rev 1328
simple4server: update bugtracker link
We moved all evolution related bug to the core Mercurial tracker.
Laurent Charignon <lcharignon@fb.com> [Tue, 05 May 2015 14:09:09 -0700] rev 1327
evolve: rename handlenotrouble to _handlenotrouble and add doc
As suggested by Pierre-Yves on his comments on
f113636997660b807c36cf1d0a06b76d53ada1a4 we make it clear that this function
is private and explain what it does.
Laurent Charignon <lcharignon@fb.com> [Tue, 05 May 2015 18:20:40 -0700] rev 1326
evolve: improve the help message of --rev
User's are not exposed to the notion of revset, this patch makes the help
message more intelligible.
Laurent Charignon <lcharignon@fb.com> [Tue, 05 May 2015 14:25:59 -0700] rev 1325
evolve: add --rev option to the evolve command
This patch is part of a series of patches to refactor the evolve method and
make it more readable. We introduce a new --rev flag to specify a revset
where to solve the troubles instead of looking from the parent changeset.
All add a test checks that --rev works with several commits
Laurent Charignon <lcharignon@fb.com> [Tue, 05 May 2015 14:25:35 -0700] rev 1324
evolve: extract cleanup logic in the evolve function
We are going to need to reuse the cleanup logic when introducing --rev, so
we extract it in a method to avoid code duplication.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:25:37 -0700] rev 1323
evolve: simplify the evolve function
We compute the troubles once and use it in two places instead of recomputing
them just to count them.
Laurent Charignon <lcharignon@fb.com> [Tue, 05 May 2015 17:15:06 -0700] rev 1322
evolve: optimize the computation of the troubled() revset
We take the implementation from _counttroubles() and rely on the more
efficient & operation for revset instead of laying down the entire set with %ld.
Durham Goode <durham@fb.com> [Tue, 05 May 2015 13:32:01 -0700] rev 1321
inhibit: don't inhibit pinned commits during rebase
During a rebase we pin certain commits to always be visible. This caused the
inhibit extension to inhibit them when a transaction closed. Let's make inhibit
aware of such pins and not obsolete them.
Laurent Charignon <lcharignon@fb.com> [Mon, 04 May 2015 16:56:46 -0700] rev 1320
evolve: extract the logic to solve one change into a method
The goal is to later reuse this method to implement the --rev flag for
evolve that solves the troubles in a revset.
Laurent Charignon <lcharignon@fb.com> [Mon, 04 May 2015 16:56:05 -0700] rev 1319
evolve: add new variable and comment
Add comment and introduce a new variable to keep track of if the progress ui
is shown. Later on we will use this variable in the implementation of the --rev
option.
Laurent Charignon <lcharignon@fb.com> [Mon, 04 May 2015 16:09:05 -0700] rev 1318
evolve: move code to track progress and start node
This makes it easier to refactor the evolve function in this serie of patches.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:00:07 -0700] rev 1317
evolve: renaming of a variable
tro was not a really descriptive name, replacing it with nexttrouble.
Laurent Charignon <lcharignon@fb.com> [Mon, 04 May 2015 16:01:45 -0700] rev 1316
evolve: refactoring of the code displaying error when no trouble found
Before this patch, we had many return statements in the evolve function
especially in the part in charge of displaying errors when no troubles
were found. We move this code in a separate function.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 15:11:00 -0700] rev 1315
evolve: refactor code computing stats of obsolescence markers
Duplicated code removal by extracting a function.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:55:04 -0700] rev 1314
evolve: refactoring of code related to pushing obs markers
This removes duplicated code for the pushobsmarkers logic
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 May 2015 10:56:06 -0700] rev 1313
merge with stable
bunch of cleanup on stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 May 2015 10:58:14 -0700] rev 1312
update readme
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 May 2015 10:47:02 -0700] rev 1311
evolve: update cmddebugrecordpruneparents to the new markers creation API
The parents information are now first class citizen.
(caught by laurent using pylint)
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 04 May 2015 10:46:06 -0700] rev 1310
evolve: drop useless return
This return statement is never reached. This a actually a good new because its
variable was undefined. We remove it.
(caught by laurent using pylint)
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:34:05 -0700] rev 1309
evolve: add missing import
(caught by pylint)
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:47:01 -0700] rev 1308
evolve: improve transaction related code to use the lock module
Refactored some of the places where we are using locking in evolve to use
the lock module and write less code.
This should also fix a couple of bug where tr could be None at release time.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:40:36 -0700] rev 1307
evolve: remove unused variables
As suggested by pyflakes, remove 5 unused variables in the evolve module.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:30:15 -0700] rev 1306
evolve: remove unused code in _evolveany
remove some code that was doing nothing useful in _evolveany.
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 14:22:30 -0700] rev 1305
evove: remove unused imports
Three imports where unused in the evolve module.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 10:36:43 -0700] rev 1304
tests: ensure we keep capturing output
In 3.4, output capture with bundle2 is disabled by default on local push.
Laurent Charignon <lcharignon@fb.com> [Mon, 20 Apr 2015 13:39:18 -0700] rev 1303
inhibit: updating to a obsolete commit prints warning message
We move the inhibition marker in the same wlock than the update operation, this
clears the warning message. To make it work we display the warning message on
lock release in evolve.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 15:12:17 -0700] rev 1302
evolve: stop conditional wrapping of _checkinvalidmarkers
We support down to Mercurial 3.3, all such version have this function.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 15:11:52 -0700] rev 1301
evolve: stop conditional wrapping of _getbundleobsmarkerpart
We support down to Mercurial 3.3, all such version have this function.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 15:11:07 -0700] rev 1300
evolve: stop conditional wrapping of _pushdiscoveryobsmarkers
We support down to Mercurial 3.3, all such version have this function.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 14:49:02 -0700] rev 1299
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 14:48:41 -0700] rev 1298
test-inhibit: test bookmark -D without prune enabled
The --config option were dropped for lack of documentation.
Laurent Charignon <lcharignon@fb.com> [Wed, 29 Apr 2015 13:01:23 -0700] rev 1297
inhibit: fix devel warning
_inhibitmarkers was taking a transaction without the proper lock. Adding the
lock removes the warnings.
Laurent Charignon <lcharignon@fb.com> [Thu, 23 Apr 2015 17:45:46 -0700] rev 1296
evolve: add -i flag to amend command
The -i flag was missing because it is not a global flag of the commit command.
We can't make it a global flag yet as it is used in many places where it would
not be appropriate so we just add it for this occurrence.
Also, we only want to add it when commit supports it (otherwise it wouldn't
work with older versions of mercurial)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 14:23:09 -0700] rev 1295
prune: prune fix transaction pattern
I forgot to amend.
Durham Goode <durham@fb.com> [Tue, 07 Apr 2015 14:26:03 -0700] rev 1294
prune: fix pruning w/ bookmarks and inhibit
Previously prune would create the obsolesence markers, then try to fix up the
bookmarks. With inhibit enabled, the act of closing a transaction for the
bookmark step caused it to unhide commits that were trying to be pruned.
The fix is to put the whole thing in a transaction.
Durham Goode <durham@fb.com> [Tue, 07 Apr 2015 14:08:18 -0700] rev 1293
inhibit: remove book -D dependency on cmdprune
Bookmark -D was relying on the prune command to be registered, which isn't the
case if we've disabled evolve commands. Instead, let's just hard code the
arguments.
The real fix would be to abstract away the 'I want to prune commits'
functionality in evolve to a reusable function, but this will do for now.
Durham Goode <durham@fb.com> [Mon, 06 Apr 2015 15:44:00 -0700] rev 1292
inhibit: wrap repo.commit to inhibit nodes
Rebase was failing if you rebased a commit, stripped it, then rebased it again.
This is because the node was still hidden and we needed repo.commit to uninhibit
it.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 11:42:06 -0700] rev 1291
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 10:36:43 -0700] rev 1290
tests: ensure we keep capturing output
In 3.4, output capture with bundle2 is disabled by default on local push.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 29 Apr 2015 10:20:04 -0700] rev 1289
update readme
Mentions greg ward work in documentation.
Greg Ward <greg@gerg.ca> [Thu, 23 Apr 2015 21:13:13 -0400] rev 1288
docs: format concepts guide better, with literal blocks
Greg Ward <greg@gerg.ca> [Thu, 23 Apr 2015 21:05:54 -0400] rev 1287
docs: fix slightly unconventional .rst markup
Greg Ward <greg@gerg.ca> [Thu, 23 Apr 2015 09:03:08 -0400] rev 1286
docs: remove unused/obsolete figures
Greg Ward <greg@gerg.ca> [Thu, 23 Apr 2015 21:08:33 -0400] rev 1285
docs: remove obsolete documentation
evolve-collaboration.rst
replaced by sharing.rst
instability.rst
introduction to the concept for Mercurial developers -- no longer
needed since most are now convinced
obs-concept.rst
largely replaced by the user guide
obs-implementation.rst
more for Mercurial developers; the source code is probably more
accurate and up-to-date
qsync.rst
the extension this referred to no longer exists
This fixes several more sphinx warnings. I've left some other old docs
around, because they still have useful content that needs to be
adapted and updated.
Greg Ward <greg@gerg.ca> [Thu, 23 Apr 2015 08:35:38 -0400] rev 1284
docs: add a table of contents
This silences many sphinx warnings about documents not included in any
toctree. Still need to delete obsolete .rst files to silence the rest
of the warnings.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Apr 2015 03:18:30 +0200] rev 1283
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Apr 2015 03:15:38 +0200] rev 1282
Added tag 5.1.4 for changeset 891c3ce894fa
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Apr 2015 03:15:20 +0200] rev 1281
prepare release 5.1.4
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 23 Apr 2015 03:10:11 +0200] rev 1280
evolve: drop unused 'urllib' import
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Apr 2015 14:30:23 +0200] rev 1279
debugobsrelsethashtree: get the command to work again
The command was untested and became broken when we introduced the new discovery
hashing.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 21 Apr 2015 16:52:08 +0200] rev 1278
getbundleobsmarker: prevent crash from filtered content (issue4616)
The discovery may discover common markers on non-served nodes. This lead to
crash when building the obsmarker part.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 21 Apr 2015 17:37:19 +0200] rev 1277
test-wireproto: add some obsmarker discovery usage.
The old code was never checking that the discovery were skipping common markers.
This is now done.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 21 Apr 2015 17:37:59 +0200] rev 1276
test-wireprotocol: test with both bundle1 and bundle2
Bundle two is becoming the major way of exchanging things now. We duplicate the
test and ensure the default version runs using bundle2.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 20 Apr 2015 14:45:50 +0200] rev 1275
Update debian packaging for 5.1.3
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Nov 2014 01:04:44 +0000] rev 1274
Update debian packaging for 5.0.0
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 11 Apr 2015 10:15:16 -0400] rev 1273
create 3.1 compatibility branch
The next changeset drop 3.1 compatibility.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 14:21:38 +0200] rev 1272
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 14:20:03 +0200] rev 1271
Add "documentation update" to the changelog.
Greg Ward <greg@gerg.ca> [Tue, 14 Apr 2015 12:01:05 -0400] rev 1270
docs: cover 'touch' command
Greg Ward <greg@gerg.ca> [Mon, 13 Apr 2015 15:18:01 -0400] rev 1269
docs: explain that obsolete is not hidden
Greg Ward <greg@gerg.ca> [Mon, 13 Apr 2015 15:09:55 -0400] rev 1268
docs: explain --hidden option
Also move the discussion of revision numbers up, and splice the
explanation of --hidden into it.
Greg Ward <greg@gerg.ca> [Mon, 13 Apr 2015 15:42:42 -0400] rev 1267
docs: tweak wording, punctuation for better readability
Greg Ward <greg@gerg.ca> [Mon, 13 Apr 2015 15:00:05 -0400] rev 1266
docs: flesh out unfinished bits in the intro page
Greg Ward <greg@gerg.ca> [Tue, 14 Apr 2015 12:58:13 -0400] rev 1265
docs: revive the explanation of divergent changesets in the sharing guide
Greg Ward <greg@gerg.ca> [Fri, 20 Jun 2014 08:19:04 -0400] rev 1264
docs (sharing): more scattered wording tweaks
Greg Ward <greg@gerg.ca> [Tue, 14 Apr 2015 12:55:04 -0400] rev 1263
docs: sharing guide: clarify end-game of "Example 2"
- push to dev-repo, rather than pulling into it (consistent
with how we work the multiple developer scenario later)
- explicitly demonstrate that public changesets are immutable
Greg Ward <greg@gerg.ca> [Sun, 15 Jun 2014 21:17:09 -0400] rev 1262
docs: minor tweaks to sharing guide (suggested by timeless)
Greg Ward <greg@gerg.ca> [Tue, 14 Apr 2015 12:53:12 -0400] rev 1261
docs: add code review scenario to sharing guide
The idea is to demonstrate a simpler multiple-developer situation that
does not involve getting into trouble.
The final scenario illustrates Alice and Bob getting into trouble with
bumped and divergent changesets by amending each other's history. The
required tests and text are all written, but will need to be heavily
revised because of the inserted scenario.
Greg Ward <greg@gerg.ca> [Mon, 09 Jun 2014 08:18:43 -0400] rev 1260
docs: add a bit more hierarchy to the sharing guide
Greg Ward <greg@gerg.ca> [Tue, 14 Apr 2015 12:43:37 -0400] rev 1259
docs: update sharing guide based (mostly) on marmoute's review
- don't claim certain scenarios are more/less common, just
simple/advanced
- mention code review as a multiple-developer scenario (not described
in detail yet!)
- suggest "hg config --edit --local" instead of "cat >> .hg/hgrc"
- use -q less often (and show resulting output)
- edit some section headers to be consistent with user guide
(example numbers; "amend" instead of "amending")
(These are just the small changes; big changes are yet to come.)
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:52:43 +0200] rev 1258
Added tag 5.1.3 for changeset c52c15100fb2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:52:17 +0200] rev 1257
prepare version 5.1.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:48:06 +0200] rev 1256
graft: avoid potential deadlock
We must acquire 'wlock' before 'lock'.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:47:04 +0200] rev 1255
commit: avoid potential deadlock
We must acquire 'wlock' before 'lock'.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:41:27 +0200] rev 1254
update readme
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Apr 2015 13:36:12 +0200] rev 1253
pull: fix bundle2 part generation
The new part generator (allowing partial pull) was unproperly installed.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 11 Apr 2015 10:35:26 -0400] rev 1252
simple4server: cleanup debug output
The debug output got duplicated with the original code. And the cleanup forgot
about simple4serve. (code duplicated yeah!)
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 11 Apr 2015 00:10:10 -0400] rev 1251
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 11 Apr 2015 00:09:12 -0400] rev 1250
update readme
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 11 Apr 2015 00:06:59 -0400] rev 1249
discovery: stop being stupid about variable name
Overwritten variable are overwritten...
The test coverage makes a simple pass in the loop :(
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Apr 2015 23:48:23 -0400] rev 1248
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Apr 2015 23:16:10 -0400] rev 1247
inhibit: explicitly test for None
It is always better to check for None explicitly.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Apr 2015 23:43:14 -0400] rev 1246
#iforgottoamendagain
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Apr 2015 23:25:07 -0400] rev 1245
discovery: port the new hashing version to simple4server
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 10 Apr 2015 23:24:36 -0400] rev 1244
discovery: introduce a obshash1 function using fm1 during hashing (issue4587)
The 'fm0' serialisation translate float to text. This give different result
between python2.6 and python2.7 (because python2.7 got smarter). The 'fm1' is
all binary and expected to be stable so we introduce the ability to do the
discovery using hash computed with 'fm1' serialisation.
We use a new wireprotocol version (Partly because I'm too lazy to check how to add an
argument to the existing one) and capabilities).
Support in simple4server is will come in the next changeset.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 21 Mar 2015 19:09:56 -0400] rev 1243
tests: use 'wget' instead of 'curl' for Windows compatibility
The whole test suite now runs without skips, and the only two failures are a
bookmark cache issue in test-prune.t, and a local output vs remote output
reordering when pushing to ssh. The latter anyway is a core problem.
Durham Goode <durham@fb.com> [Mon, 06 Apr 2015 11:21:20 -0700] rev 1242
setup: allow including inhibit in the build
Adds the INCLUDE_INHIBIT environment variable to allow including the inhibit
extension in the build.
Laurent Charignon <lcharignon@fb.com> [Tue, 31 Mar 2015 14:17:46 -0700] rev 1241
inhibit: Add -D option to the bookmark command
The -D option for bookmark is similar to the -B option for strip.
It deletes the bookmark and prunes the changes underneath it that are
not reachable.
Laurent Charignon <lcharignon@fb.com> [Wed, 01 Apr 2015 13:51:21 -0700] rev 1240
inhibit: don't leave any obsolete commit visible after closing transaction
We add a callback to wrap the transaction closure to identify commits that are
obsolete and visible. We inhibit them to prevent the user to see instability in the UI.
Laurent Charignon <lcharignon@fb.com> [Thu, 02 Apr 2015 18:33:44 -0700] rev 1239
evolve: apply prune update before creating obsolescence markers
Prune used to compute the destination commit to update to after creating the
obsolescence markers. This is a commit to prevent a bug that would occur
with the changes in inhibit for transactions (next commit).
Indeed, with that change in inhibit, when creating the obsolescence markers in
prune, they would get inhibited right away and we wouldn't update to the first
non obsolete parent but stay on the same node as its obsolescence would have
been inhibited (bug).
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 11:35:46 -0700] rev 1238
test-inhibit: check graph after prune
We want to ensure prune keep working even with inhibit.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 03 Apr 2015 11:34:02 -0700] rev 1237
test-inhibit: drop trailing white space
Laurent Charignon <lcharignon@fb.com> [Thu, 02 Apr 2015 15:44:11 -0700] rev 1236
tests: make tests work on Mac OS
wc -m adds spacing before the results, we trim them to make the test pass on
Mac OS.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 16:47:22 -0700] rev 1235
merge with stable
Laurent Charignon <lcharignon@fb.com> [Mon, 30 Mar 2015 13:31:09 -0700] rev 1234
inhibit: ensure that no obsolete changesets are visible after a bookmark change
When creating a bookmark, we could reveal obsolete changesets. We are
inhibiting the obsolete changesets resulting from a bookmark change.
There are two ways to record bookmark changes to disk and we wrap both.
Laurent Charignon <lcharignon@fb.com> [Mon, 30 Mar 2015 11:45:17 -0700] rev 1233
inhibit: ensure no visible changesets are obsolete after an update
When updating to a commit we want to inhibit any obsolete commit affecting
the changeset we are updating to. In other words we don't want any
visible commit to be obsolete.
Laurent Charignon <lcharignon@fb.com> [Fri, 27 Mar 2015 10:58:04 -0700] rev 1232
inhibit: enable direct access from parsing the revset tree
To enable direct access we:
- detect explicit hexadical reference to node in the revset tree
- add these hashes to the static blockers to make them and their parent
visible for the command to run
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 14:44:12 -0700] rev 1231
Added tag 5.1.2 for changeset e886bc501796
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 14:40:40 -0700] rev 1230
preparing version 5.1.2
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 14:43:13 -0700] rev 1229
update 5.1.2 with latest bugfix
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 14:37:02 -0700] rev 1228
evolve: have a stable manifest content when solving bumped
We cannot really use iteritems here.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 01 Apr 2015 14:26:10 -0700] rev 1227
evolve: change config option name
I forgot to amend...
Durham Goode <durham@fb.com> [Wed, 15 Oct 2014 15:41:26 -0700] rev 1226
config: allow disabling commands
Now that upstream Mercurial has multiple options for obsolete configuration, we
can allow enabling and disabling of evolve commands.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 07 Mar 2015 02:32:43 -0800] rev 1225
inhibit: Add some inhibition clearing mechanism
We do not want to keep inhibition marker around for ever. So we are removing the
one applying on public changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Mar 2015 21:25:44 -0800] rev 1224
add a 'inhibit' extension
This extension will be used to reduce the scope of evolve in order to make some
of its features available to the mass earlier.
See extension documentation for details.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 21 Mar 2015 19:09:56 -0400] rev 1223
tests: use 'wget' instead of 'curl' for Windows compatibility
The whole test suite now runs without skips, and the only two failures are a
bookmark cache issue in test-prune.t, and a local output vs remote output
reordering when pushing to ssh. The latter anyway is a core problem.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 21 Mar 2015 18:42:51 -0400] rev 1222
tests: import killdaemons.py from Mercurial 1cfded2fa1a9
This contains updated functionality to kill the server process on Windows, which
is needed to run the test-*server.t tests. This version requires the pids to be
passed as an argument instead of via $DAEMON_PIDS.
Durham Goode <durham@fb.com> [Fri, 20 Mar 2015 12:51:57 -0700] rev 1221
prune: add --keep to not touch the working copy
In order to more closely emulate strip, lets add --keep to leave the working
copy untouched when we do our prune.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 12:31:51 -0700] rev 1220
strip: add the option for wrapping the strip command
Adds an experimental option for wrapping the existing strip command and
replacing its functionality with prune. It currently doesn't handle the --keep
case, but an upcoming patch will address that.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 12:32:32 -0700] rev 1219
wrapcommand: fix wrapping extensions that aren't enabled
The extension command wrapping would previously fail if the extension wasn't
enabled. Let's just eat that silently.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 10:52:28 -0700] rev 1218
wrapcommand: allow adding additional arguments to commands
This allows eh.wrapcommand to specify additional parameters to be added to the
commands being wrapped. This will be useful when wrapping strip in the future.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 17:42:21 -0700] rev 1217
pushexperiment: remove use of obsolete._enabled
pushexperiment.py was using obsolete._enabled but it didn't cause any tests to
fail so I didn't see it. Let's go ahead and replace it with the new
obsolete.isenabled() api.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 13:42:27 -0700] rev 1216
oldobsolete: remove use of obsolete._enabled
obsolete._enabled is deprecated. Switch to the newer obsolete.isenabled() logic.
Durham Goode <durham@fb.com> [Thu, 19 Mar 2015 13:41:58 -0700] rev 1215
server4simple: remove use of obsolete._enabled
obsolete._enabled is deprecated, so let's replace it's uses.
Durham Goode <durham@fb.com> [Tue, 17 Mar 2015 19:04:16 -0700] rev 1214
config: remove uses of obsolete._enabled
Upstream Mercurial will be removing obsolete._enabled soon, so switch all our
uses of it to use the new obsolete.isenabled(repo, option) function.
Durham Goode <durham@fb.com> [Tue, 17 Mar 2015 19:03:27 -0700] rev 1213
config: enable all obsolete options
Upstream Mercurial has moved away from obsolete._enabled as the obsolete flag to
a series of options. This patch makes evolve enable all the options
automatically if the user hasn't enabled any already. This preserves the
existing evolve experience of not having to configure anything.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 13 Mar 2015 10:49:02 -0700] rev 1212
merge with stable
Durham Goode <durham@fb.com> [Fri, 13 Mar 2015 09:05:34 -0700] rev 1211
evolve: fix manifest usage to match upstream
The manifest class upstream is no longer a dictionary, so switch to using an API
it does support.
Durham Goode <durham@fb.com> [Fri, 13 Mar 2015 09:04:12 -0700] rev 1210
drophack: fix to match upstream repair.strip
repair.strip upstream now assumes the input nodelist is a list, so update to
match it. The upstream change only affects the name of the backup bundle, so
this shouldn't affect any other functionality.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 05 Mar 2015 20:02:07 -0500] rev 1209
evolve: prevent a crash in httpclient_pushobsmarkers() when pushing
I've been running into a crash when pushing from my hg repo in a Fedora 16 VM to
Win7 running 'hg serve', even with extensions disabled on both sides:
../hg push -r . pc
pushing to http://192.168.1.4:8000/
searching for changes
no changes found
pushing 2 obsolescence markers (263 bytes)
** unknown exception encountered, please report by visiting
...
File "hg-evolve/hgext/evolve.py", line 2482, in _pushobsolete
remote.evoext_pushobsmarkers_0(obsdata)
File "hg-evolve/hgext/evolve.py", line 2522, in httpclient_pushobsmarkers
ret, output = self._call('evoext_pushobsmarkers_0', data=obsfile)
ValueError: too many values to unpack
I'm not sure how this repo differs from the one in the test suite, so I'm not
sure how to craft a test for this. The failure occurs even when there _are_
csets to push. There was no crash if no obsolete markers needed to be pushed.
At any rate, this code was stolen from httppeer._callpush(), where it calls
self._call(). The socket exception handling wasn't necessary to fix the crash,
but the calling code might as well be duplicated in its entirety.
A successful push with this patch looks like this. Note the final line is _not_
in the output of the http push in test-simple4server.t:
../hg push -r . pc
pushing to http://192.168.1.4:8000/
searching for changes
remote has heads on branch 'default' that are not known locally: 3af110194a0c
56000e3ae44d 57ac6e51d290 7da4355c21b8 and 8 others
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 0 changes to 1 files (+1 heads)
pushing 4 obsolescence markers (525 bytes)
remote: 2 obsolescence markers added
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 10:52:01 -0800] rev 1208
merge stable into default
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 10:45:53 -0800] rev 1207
Added tag 5.1.1 for changeset 9b8628e0a142
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 10:45:40 -0800] rev 1206
prepare release 5.1.1
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 05 Mar 2015 10:44:43 -0800] rev 1205
update readme
Yuya Nishihara <yuya@tcha.org> [Thu, 29 Jan 2015 22:53:43 +0900] rev 1204
evolve: use 3.2+ fullreposet to evaluate argument set (issue4515)
getset() has no compatibility wrapper for old-style argument and we don't
want to add more hacks in Mercurial core.
Mathias De Maré <mathias.demare@gmail.com> [Mon, 02 Mar 2015 20:12:00 +0100] rev 1203
evolve: cache marker encoding to avoid performance degradation
The main overhead in bug 4518 is caused by calculating relevant markers
and encoding markers into the correct format.
Calculating relevant markers takes (worst case) ~ 0.12 seconds.
Encoding markers takes (worst case) ~ 0.06 seconds.
Caching encoded markers takes care of the second part and
speeds up cloning in bug 4518 by about 35%.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Feb 2015 17:01:28 +0000] rev 1202
evolve: handle invalid obsmarkers in the `debugobsconvert`
User can now recover from such situation, The error message is also changed to
point the `debugobsconvert` commands.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Feb 2015 16:58:42 +0000] rev 1201
fix release date in the readme
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 22:05:40 +0000] rev 1200
merge stable in default
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 22:05:07 +0000] rev 1199
Added tag 5.1.0 for changeset bfe9be352453
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 22:02:31 +0000] rev 1198
update readme and bump version to 5.1
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 21:57:41 +0000] rev 1197
merge default into table
3.3 is about to be released.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 20:29:33 +0000] rev 1196
discovery: filter null from the discovery revset
If there is nothing in common, common will be "null" and the revset will now
returns "-1" crashing the discovery process. We filter out the null revision to
prevent that.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Jan 2015 19:01:23 +0000] rev 1195
tests: update to new core output
Multiple output change need to be applied to the test suite.
Tyrone Nicholas <tnicholas@fb.com> [Tue, 27 Jan 2015 16:07:57 +0000] rev 1194
evolve: explicitly disable bookmark on evolve (issue4432)
We no longer leave the current bookmark active after an evolve, since it
is no longer pointing to the working directory.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 07 Jan 2015 15:24:47 -0800] rev 1193
discovery: do not build sample if undecided is smaller than sample size
This prevents crash with coming change in the mercurial discovery.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 05 Jan 2015 19:04:32 -0800] rev 1192
merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 23 Dec 2014 14:29:16 -0600] rev 1191
init: don't abort Mercurial on version mismatch
Evolve causes Mercurial to exit if there is a version mismatch, even
if no evolve command is invoked. This is a headache for people who
have to work with multiple versions of Mercurial. Instead, raise an
ImportError, which gives a warning but otherwise allows Mercurial to
run non-evolve commands.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Dec 2014 12:45:04 -0800] rev 1190
Added tag 5.0.2 for changeset dbd0733e5840
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Dec 2014 12:44:40 -0800] rev 1189
prepare release 5.0.2
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Dec 2014 12:19:40 -0800] rev 1188
test: adapt to core change in graft and rebase
The ouput changed we have to adapt
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Dec 2014 12:14:45 -0800] rev 1187
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 14 Dec 2014 11:45:27 -0800] rev 1186
doc: drop rebase extension activation
The dependency have been dropped.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 13 Dec 2014 18:19:12 -0800] rev 1185
evolve: remove the dependency to the rebase extension
We do not use any rebase internal anymore.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 13 Dec 2014 18:09:23 -0800] rev 1184
evolve: remove the use of `rebase.concludenode`
Half of this function is now done in `merge.graft` and the over part is easy to
redo manually. So we remove the usage of this function to remove the dependency
of evolve on the rebase extension.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 13 Dec 2014 17:47:09 -0800] rev 1183
evolve: use `merge.graft` instead of `rebasenode`
The core mechanism is properly factorised and have a more stable API.
This is also a good step toward removing the dependency between evolve and the
rebase extension.
This also avoid a breakage with the future 3.3 where some of the rebase API
changed.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 08 Dec 2014 12:45:32 -0800] rev 1182
readme: add a reference to the bugtracker in the contribute section
Idea from Patrick Mezard
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 30 Nov 2014 00:11:06 -0800] rev 1181
merge with stable
Faheem Mitha <faheem@faheem.info> [Fri, 28 Nov 2014 21:32:35 +0530] rev 1180
debian: update changelog to 5.0.1
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 30 Nov 2014 00:06:31 -0800] rev 1179
test: adapt test to stable output
Stable branch should pass test with mercurial stable branch.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 11:02:09 -0800] rev 1178
Added tag 5.0.1 for changeset 0f3090785283
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 11:01:29 -0800] rev 1177
evolve: update in file version
(I'll eventually -not- forget to do so)
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 10:52:33 -0800] rev 1176
Added tag 5.0.1 for changeset 51e1e962172c
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 10:49:39 -0800] rev 1175
readme: prepare for release 5.0.1
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Nov 2014 10:48:59 -0800] rev 1174
readme: update changelog
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Nov 2014 16:12:04 -0800] rev 1173
evolve: tell user which "base of divergent changeset" is not found
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Nov 2014 15:49:52 -0800] rev 1172
debugobsconvert: fix 6f08a8f6bb1d and add proper test
The changeset adding deduplication (6f08a8f6bb1d) was super buggy and dropped
all obsmarkers in the repo. We update the test to check this case and fix the
deduplication.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Nov 2014 15:34:34 -0800] rev 1171
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Nov 2014 15:33:59 -0800] rev 1170
debugobsconvert: fix a typo on "version"
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 20 Nov 2014 15:33:14 -0800] rev 1169
debugobsconvert: also deduplicate markers in the process
Various bug allowed identical or semantically identical marker to be added to
the repository. So we also filter duplicates when converting.
André Sintzoff <andre.sintzoff@gmail.com> [Thu, 20 Nov 2014 22:05:29 +0100] rev 1168
evolve: fix capitalization in docstring for commands
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 17 Nov 2014 16:04:48 +0100] rev 1167
test: ensure we echo prompt
Tool running using the shipped 'run-tests.py' instead of the mercurial one would
get different result otherwise.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 13 Oct 2014 11:09:35 +0200] rev 1166
debian: blacklist simple4server tests
simple4server is not part of the package.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 13 Oct 2014 10:22:24 +0200] rev 1165
debian: blacklist test-drop
drophack.py is not shipped.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 17 Nov 2014 15:49:39 +0100] rev 1164
debian: update control file to reflect dependency to mercurial 3.2
Julien Cristau <julien.cristau@logilab.fr> [Mon, 17 Nov 2014 15:45:24 +0100] rev 1163
evolve: fix the version number
The tag is 5.0.0 the content of the file was wrong.
Mike Edgar <adgar@google.com> [Tue, 18 Nov 2014 20:27:53 -0500] rev 1162
help: fix typo in help for 'obsolete' option added to import command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 14 Nov 2014 09:54:55 +0000] rev 1161
test: add an explicit test for simple4server with bundle2
This makes it more likely to we catch issue with the iteration of these two.
Ryan McElroy <rmcelroy@fb.com> [Wed, 29 Oct 2014 10:34:08 -0700] rev 1160
Make next/prev only move bookmarks optionally
Augie Fackler <raf@durin42.com> [Mon, 20 Oct 2014 22:16:24 -0400] rev 1159
obsup: hack extension to make in-place upgrading of obsolete markers easy
I tried upgrading my obsstore by doing a local clone as suggested by
Pierre-Yves and Sean, but that caused me to end up with a ton of
unstable changes that should have been marked dead. In fact, as far as
I can tell, most of the performance win of that upgrade came from the
fact that only about 46% (46672 of 102285) of my markers were brought
over with the copy-and-pull method.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Nov 2014 15:48:02 +0000] rev 1158
merge stable into default
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Nov 2014 12:38:49 +0000] rev 1157
evolve: fix selection of changeset to evolve from the middle of a stack (issue4434)
The evolve algorithm picked a bad changesets to evolve (unstable changeset with
no obsolete parent (but unstable parent). And then get confused assuming that is
the first parent was not obsolete, the second should be.
This changeset fixed the issue by preventing selection of direct descendant of
[.] when evolving.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Nov 2014 11:28:01 +0000] rev 1156
merge
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Nov 2014 11:26:57 +0000] rev 1155
merge back with compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 11 Nov 2014 11:26:18 +0000] rev 1154
create a branch compatible with mercurial between 3.0.1 and 3.1.2
Martin von Zweigbergk <martinvonz@google.com> [Wed, 05 Nov 2014 15:35:13 -0800] rev 1153
evolve: fix suggested commands in "parents are not common" hint
The argument to 'hg rebase' is --dest, not -dest. Also, the same
command should not be suggested twice -- the second option should be
the rebasing the other way around.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 05 Nov 2014 15:32:25 -0800] rev 1152
evolve: add missing newlines in "parents are not common" hint
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Nov 2014 11:41:10 +0000] rev 1151
test-touch: add a test for rename preservation after touch
This bug was recently fixed in 3.2.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Nov 2014 11:11:14 +0000] rev 1150
evolve: fix error during iteration over bumped changesets (bug38)
We are iterating over a manifest while altering it. We cannot use iteritems() in
this context. we move to items, that will be an issue for very large changesets.
anatoly techtonik <techtonik@gmail.com> [Mon, 20 Oct 2014 13:54:46 +0300] rev 1149
evolve: add various version info to save time on troubleshooting
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Nov 2014 10:25:20 +0000] rev 1148
readme: drop the mention to the wip repo
The time spend in work in progress repo are fairly low nowaday.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Nov 2014 10:24:35 +0000] rev 1147
readme: update the contribution process
The inability to easily pull from pull request on bitbucket and the lack of
obsolescence support there are too much pain. Patchbombed contribution are
flowing so we drop the bitbucket mention in the README.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 02 Nov 2014 15:06:00 +0000] rev 1146
merge 5.x line into stable (drop pre hg-3.2 compat)
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Sep 2014 21:31:27 -0400] rev 1145
evolve: add the missing newline to output messages where needed
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Sep 2014 21:23:09 -0400] rev 1144
evolve: add the missing argument to a debug statement
Nathan Goldbaum <ngoldbau@ucsc.edu> [Tue, 28 Oct 2014 18:06:28 -0700] rev 1143
uncommit: abort when rev specifies the current changeset
The uncommit command now fails when the rev argument indicates the current
changeset. Previously this aborted in the changeset obsolescence machinery when
the current commit tries to obsolete itself.
Using the rev argument like this indicates a misunderstanding, so printing an
uncommit-specific error should make it easier to understand what went wrong.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 28 Oct 2014 23:18:56 -0400] rev 1142
test-amend: add a test for amend with no configured username (issue4211)
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 01 Nov 2014 13:48:34 +0000] rev 1141
evolve: preserve branch change
evolve will now preserve branch change. If the evolved changeset had a different
phases than its parent, this branch name will be preserved. This allow
propagation of branch change during amend but do not overwrite special branch
name on children,
Matt Harbison <matt_harbison@yahoo.com> [Sat, 25 Oct 2014 22:25:42 -0400] rev 1140
amend: allow the --logfile argument to work properly
Though documented to work, using --logfile previously set the message option to
that of the parent commit, and cause amend to abort with this message:
abort: options --message and --logfile are mutually exclusive
It's not clear why the 'edit' option is popped, but this option is only fetched
in order to let the core commit command do the work.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Oct 2014 15:05:54 -0700] rev 1139
Added tag 5.0.0 for changeset c13b408c0006
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Oct 2014 15:03:49 -0700] rev 1138
setup.py: bump version to 5.0.0
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Oct 2014 15:03:17 -0700] rev 1137
evolve: update tested with statement
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Oct 2014 15:01:37 -0700] rev 1136
README: update for 5.0 release
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Oct 2014 14:58:06 -0700] rev 1135
fixup previous changesets (after forgot to amend).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Oct 2014 15:59:34 -0700] rev 1134
prune: stop reinjecting all selected revisions back into the revrange
This trigger quadratic complexity for no good reason.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 20 Oct 2014 15:53:00 -0700] rev 1133
test: adapt to new hidden-changeset message
From c1aede895072 we have a nicer error message when accessing public
changesets:
abort: hidden revision '6'!
(use --hidden to access hidden revisions)
Augie Fackler <raf@durin42.com> [Fri, 17 Oct 2014 17:43:52 -0400] rev 1132
pullobsolete: handle migration from todosteps to donesteps
This make evolve compatible with change made in Mercurial (92bf9abc4deb)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Oct 2014 04:38:37 -0700] rev 1131
evolve: adapt to change in core rebase
Mercurial core changeset 63e889cc610d (And the ones around it) changed the way
graft and rebase work. We adapt to them.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Oct 2014 14:06:52 -0700] rev 1130
test: ignore bytes lenght in message
We should be storying floating point number as floating point number. So the
size of the meta for fm0 format is going to be unstable. We cover them with a
glob.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Oct 2014 04:20:00 -0700] rev 1129
evolve: adapt to the new metadata storage
Metadata are not stored as a "list" of (key, value) tuple instead of a binary
blob.
This adapt to ef880e28e56a in Mercurial.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 16 Oct 2014 11:54:44 -0700] rev 1128
debugobsstorestats: drop the average meta length
Does not have much sense with the existence of multiple format with different
meta storage. We drop it for now and will introduce and average markers length
later.
Faheem Mitha <faheem@faheem.info> [Sat, 11 Oct 2014 02:27:21 +0530] rev 1127
debian: remove .PHONY line completely
This does not work in the case of implicit pattern matching rules as
used by dh. Consider this example from Geoffrey Thomas:
$ ls -l
total 16
-rw-r--r-- 1 faheem faheem 17 Aug 16 20:27 blue.c
-rw-r--r-- 1 faheem faheem 17 Aug 16 20:27 green.c
-rw-r--r-- 1 faheem faheem 35 Aug 16 20:26 Makefile
-rw-r--r-- 1 faheem faheem 17 Aug 16 20:27 red.c
$ cat Makefile
%: %.c
gcc -o $@ $<
.PHONY: blue
$ make red
gcc -o red red.c
$ make green
gcc -o green green.c
$ make blue
make: Nothing to be done for blue'.
The Make manual
(http://www.gnu.org/software/make/manual/make.html#Phony-Targets) says
Since it knows that phony targets do not name actual files that
could be remade from other files, make skips the implicit rule
search for phony targets (see Implicit Rules).
Thanks to the good folks on #debian-mentors on OFTC for instruction
and explanation in these matters.
Faheem Mitha <faheem@faheem.info> [Sat, 11 Oct 2014 02:14:12 +0530] rev 1126
debian: replace clean with override_dh_auto_clean
The current version does not call the default dh_auto_build, which is
a bug. This is required in particular for cleaning the build
directories.
Faheem Mitha <faheem@faheem.info> [Sat, 11 Oct 2014 04:23:22 +0530] rev 1125
debian: replace build line with a override_dh_auto_build line
This is more in line with how dh is supposed to work. In particular,
dh_auto_build is functionally equivalent to the repeated "dh build
--with python2 --buildsystem=python_distutils" used currently.
Faheem Mitha <faheem@faheem.info> [Sat, 11 Oct 2014 02:02:05 +0530] rev 1124
debian: remove clean target before implicit match rule
This is redundant because it is a match-everything rule. Possibly a
typo.
Faheem Mitha <faheem@faheem.info> [Sat, 11 Oct 2014 02:36:46 +0530] rev 1123
debian: Add DH_VERBOSE, commented out, for debugging convenience
Matt Harbison <matt_harbison@yahoo.com> [Thu, 02 Oct 2014 21:10:48 -0400] rev 1122
evolve: wrap exchange.push() for compatability with core mercurial 4d52e6eb98ea
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 18:17:21 -0700] rev 1121
drophack: use `first` and `last` on smartset
This matches the new changes in mercurial core.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 08 Oct 2014 18:16:52 -0700] rev 1120
evolve: use `first` and `last` on revset
this match change in mercurial core.
G: changed hgext/evolve.py
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 02 Oct 2014 15:53:54 -0500] rev 1119
test: adapt to core mercurial 9ab18a912c44
This changesets improved the output of prompt during test.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 02 Oct 2014 15:50:07 -0500] rev 1118
evolve: adapt to core changeset 4f14303e8954
pushop.ret is now pushop.cgresult
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 02 Oct 2014 14:16:32 -0500] rev 1117
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Sep 2014 10:27:11 -0500] rev 1116
evolve: update evolve merge message
People are apparently unaware of --succ
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 30 Sep 2014 10:27:54 -0500] rev 1115
import: fix the "is None" check for the Node
We are checking the wrong variable.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 22 Sep 2014 17:27:57 -0700] rev 1114
test: remote "date" from the output of obsmarker meta
Data is no longer a generic meta. it has its own field now.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 22 Sep 2014 17:24:23 -0700] rev 1113
test: adapt to mercurial changes
Changeset 816be4ca4ae2 in core make hg config return non-zero when no value
match the filter.
Siddharth Agarwal <sid0@fb.com> [Wed, 17 Sep 2014 13:38:24 -0700] rev 1112
evolve: wrap setparents calls in begin/endparentchange
Mercurial rev d259322a394b added a requirement to wrap any dirstate.setparents
calls and their associated dirstate changes in begin/endparentchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Sep 2014 09:06:18 +0200] rev 1111
merge with stable
A couple of test fix were added on stable.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 12 Aug 2014 21:02:34 -0400] rev 1110
test: add glob annotations where Mercurial's run-tests.py suggests
These happen to also be 5 of the 6 tests that warn about no result code when run
on Windows. Probably not a coincidence.
The tests previously warned about no result code whether or not it was run
interactively. They only started working when test output changes were accepted
in interactive mode, and these globs were added automatically.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 03 Sep 2014 21:25:13 -0400] rev 1109
evolve: really fix the 'grab' alias on Windows
Something seems to have happened when importing cb36a4eb0157- it dropped the $@
argument to --rev, and it picked up a bunch of test changes for the obsolete
sha1 replacement patch. Instead of backing it out and breaking the tests for
the sha1 replacement, this just fixes the missing $@.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 03 Sep 2014 23:56:39 +0200] rev 1108
evolve: keep vague compatibility with 3.1
Matt Mackall work flow requires this to not crash in fire with 3.1. We apply
basic bandage to stop the bleeding.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 02 Sep 2014 20:11:45 +0200] rev 1107
merge: all the stable sweetness into default
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Aug 2014 19:12:16 -0400] rev 1106
evolve: replace each obsolete sha1 in the description with its latest successor
Obsolete csets are hidden by default and don't get pushed to the parent repo.
In order to avoid broken references in commit messages, it makes sense to evolve
those references to the latest and greatest successor, as each cset containing
them is evolved. Of course, stale references can still occur if a commit in
branch 'A' references something in branch 'B', and that something in 'B' is
evolved but 'A' isn't subsequently evolved.
This alleviates the user that is evolving a series of commits from having to
1) recognize that there is a hash that needs updating in any one of the series
2) look up the latest successor manually
3) hg amend -e
The regular expression for matching and the logic for replacing are borrowed
from the convert extension [1].
It might be nice for the output to state the reason that the reference couldn't
be updated (it was pruned, split or diverged), but that may be excessive for
something only displayed in verbose mode. (Maybe it should be a ui.status()
instead?)
[1] http://selenic.com/hg/rev/45562379ce4e
Matt Harbison <matt_harbison@yahoo.com> [Sat, 09 Aug 2014 18:36:28 -0400] rev 1105
test: add parent hash to commit message in test-evolve.t
This (slightly) reduces the changes to the test when hashes in the commit
message are evolved in the next commit.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 12 Aug 2014 19:09:53 -0400] rev 1104
evolve: fix the 'grab' alias to work on Windows
For some reason, the variable wasn't substituted on Windows in this case.
From the test suite:
$ hg grab 8
'' is not recognized as an internal or external command,\r (esc)
operable program or batch file.\r (esc)
This change seems hacky, but there isn't a readily available example of setting
up a shell alias like this from a python module to know if there is a better
way, and it seems like this is maybe just a convenience for tests, since there
is no documentation for the aliases.
The local copy of run-tests.py appears to predate the Windows support in the
Mercurial repository's version, and fails each test with:
The system cannot find the path specified.
However, with this change and blacklisting test-simple4server.t, the tests can
(mostly) be run on Windows like so:
$ ../../hg/tests/run-tests.py --with-hg=../../hg/hg --blacklist windows
Skipped test-simple4server.t: blacklisted
Warned test-obsolete.t: no result code from test
Warned test-tutorial.t: no result code from test
Warned test-evolve.t: no result code from test
Warned test-userguide.t: no result code from test
Warned test-sharing.t: no result code from test
Warned test-drop.t: no result code from test
Failed test-prune.t: output changed
# Ran 41 tests, 1 skipped, 6 warned, 1 failed.
Faheem Mitha <faheem@faheem.info> [Sun, 24 Aug 2014 01:02:18 +0530] rev 1103
debian: add README to the list of documents shipped with the package.
Faheem Mitha <faheem@faheem.info> [Sun, 24 Aug 2014 01:42:34 +0530] rev 1102
debian: add missing curl Build-Depends
curl is required to run the tests.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Apr 2014 14:14:29 -0700] rev 1101
prune: work around lazy revset slowdown
Since 3.0 lazy revset is making some revset very slow. We currently work around
the issue by using a simple loop instead.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 02 Sep 2014 19:19:17 +0200] rev 1100
readme: act that there will not be a 4.1.1 release
David Soria Parra <davidsp@fb.com> [Fri, 29 Aug 2014 14:26:17 +0200] rev 1099
evolve: write a status message when the working directory changes
Evolve changes the working directory during atop, etc which can confuse people
as they are not aware that this happend. The ideal solution is to not have
evolve change it, however mercurial limitations don't allow us to do that at the
moment. So instead we are printing a status message that the working directory
changed.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 09:29:02 +0200] rev 1098
merge small default improvement before dropping compat with released Mercurial
We are going to drop a bunch of compatibility layer.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 16:13:19 +0200] rev 1097
pull: use discovery to pull less obsmarkers through bundle2
This hooks in the official API for bundle2
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 16:13:01 +0200] rev 1096
pull: run obsmarker discovery only on the common set
If the discovery is run before the obsmarker push, pulled revs does not exist in
the repository yet.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 16:11:22 +0200] rev 1095
evolve: fix a typo in a long function name
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 15:19:19 +0200] rev 1094
bundle2: burn some more of the old code
Some of it survived.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 18:59:11 +0200] rev 1093
obsexch: respect todosteps when using the old push
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 18:28:22 +0200] rev 1092
compat: update the tests after the jump
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 18:16:10 +0200] rev 1091
compat: use in-core encodemarkers
Now exist in core witha slightly different format.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 18:15:39 +0200] rev 1090
compat: rename encodeonemarkers to _fm0encodemarkers
This is getting renamed in core.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 27 Jul 2014 23:09:45 +0200] rev 1089
enable bundle2
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 11:56:16 +0200] rev 1088
drop the debug output
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 18:28:09 +0200] rev 1087
test-simple4server: add error output for http
This is useful in case of failure.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 10:44:40 +0200] rev 1086
compat: adapt to change to memctx
Since core mercurial 650b5b6e75ed we must return None instead of raising
IOError. Hooray for mads!!
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:49:08 +0200] rev 1085
evolve: use pushkeyescape from core
It exists for all version we are compatible with.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:55:20 +0200] rev 1084
evolve: display more message
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:36:35 +0200] rev 1083
evolve: drop a very old safe guard about bad marker
The do not clean marker with nullrev successors. I assume none of them remains.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:31:21 +0200] rev 1082
pull: drop the custom bundle2 part
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:25:18 +0200] rev 1081
obsexc: add support for evoext_pushobsmarkers_0 on localpeer
This will unify the behavior of exchange in the tests.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:24:40 +0200] rev 1080
evolve: allow read() from the magic StringIO
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:12:01 +0200] rev 1079
evolve: drop old obsmarker discovery code
It as not caller anymore.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 17:09:36 +0200] rev 1078
obsexc: use the common discovery
We drop the hand made discovery and rely on the general one introduced some time
ago.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 12:29:40 +0200] rev 1077
obsexc: push nothing if push fail
This is closer to the future behavior with bundle2.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 Aug 2014 10:13:44 +0200] rev 1076
discovery: hook on the official discovery for obsmarker
This will let the discovery be done once and used by core.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 12:05:49 +0200] rev 1075
discovery: use a different setup step for discovery
This will ease the dropping of the other part later.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 12:04:57 +0200] rev 1074
evolve: remove unused drop random
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 12:02:53 +0200] rev 1073
obshash: resist to unknown revision during discovery
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 10:49:58 +0200] rev 1072
code movement: gather discovery code together
The discovery code is the one thing that will survive the great purge.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 10:53:09 +0200] rev 1071
bundle2: drop custom compat
We'll rely on the core implementation to use bundle2.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 10:22:50 +0200] rev 1070
drop relevant marker compat
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 10:21:30 +0200] rev 1069
evolve: always use the transaction version of phase movement
This drop compat with all known released version of Mercurial.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 Aug 2014 10:29:31 +0200] rev 1068
evolve: drop debugobsoleterelevant
Core gained this capability usig `hg debugobsolete --rev REV`
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 Aug 2014 20:49:48 -0700] rev 1067
evolve: yield to relevant markers handling in core
The handling of obsolescence marker is now performed in core. If we detect a
mercurial with such power we skip the wrapping from evolve.
This changeset also suffer from massive diff from the change in display of
obsolescence marker with parent information introduced at the same time in core.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 Aug 2014 21:14:49 -0700] rev 1066
test-wireproto: adapt to output change from core
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 17:07:55 -0700] rev 1065
test: update test to new date formatting in debuobsolete output
The date is now a first class citizen with proper formatting.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 16:39:42 -0700] rev 1064
test: update help output to future 3.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 15:57:44 -0700] rev 1063
merge with stable
Faheem Mitha <faheem@faheem.info> [Sun, 17 Aug 2014 05:05:22 +0530] rev 1062
pkg: make tests pass using the generated tarball
Exclude tests/test-drop.t and include tests/_exc-util.sh,
tests/dummyssh, and hgext/simple4server.py.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 17:42:19 -0700] rev 1061
compat: always call metadata as a keyword argument
Those function are gaining more arguments. using keyword argument keep use safe
in all version.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 16:54:32 -0700] rev 1060
test: work around a bug in debugobsolete
The defautl date was wrong all along. So we use a fixed date for all tests.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 12:56:01 -0700] rev 1059
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 00:46:23 -0700] rev 1058
uncommit: add a --rev argument
The uncommit command now taks a --rev argument. This lets restore the file
content in the current commit to another revision (instead of just is parent
content). This still does not touch the working directory content.\
This allow the longly awaited:
hg uncommit --hidden --rev 'precursors(.)'
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 15:30:04 -0700] rev 1057
readme: add missing changelog entry
My dear friends changelog.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 15:26:55 -0700] rev 1056
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 15:17:02 -0700] rev 1055
import: handle patch with no node information
patch created by old Mercurial version or other tool have no node information.
We cannot create marker in this case.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 Aug 2014 15:14:18 -0700] rev 1054
import: compare binary node with binary node when using --obsolete
hex(N) != N
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 10 Aug 2014 23:58:31 -0700] rev 1053
README: fix version number
Faheem Mitha <faheem@faheem.info> [Mon, 11 Aug 2014 01:57:09 +0530] rev 1052
relocate: fix typo
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:16:24 -0700] rev 1051
merge back with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:15:43 -0700] rev 1050
Added tag 4.1.0 for changeset 4d5d101e878f
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:15:26 -0700] rev 1049
pkg: prepare release 4.1.0
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:14:00 -0700] rev 1048
merge default into stable
Release 4.1.0 is coming
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:02:26 -0700] rev 1047
evolve: adds a --confirm option
This option lets the use double check if it wants the evolve operation.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 23:11:09 -0700] rev 1046
evolve: gather evolve output together
We stop relying on ui.status being muted when --quiet is used. Instead we use
plain write and hide this behind an explicite ui.quiet check.
This will help use enforcing this output in the comming --confirm mode.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 21:06:48 -0700] rev 1045
doc: forgotten amend
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 12 Jun 2014 14:41:13 -0700] rev 1044
evolve: attempt to clarify the documentation around --all and --any
This have been confusing to people. We try to be a bit more verbose in the
evolve help.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 18:15:01 -0700] rev 1043
evolve: re enable progress for all
Progress is an important information for user facing slow push.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 18:06:08 -0700] rev 1042
evolve: stop pretending we are pulling markers when we don't
If discovery did not found any unknown marker, we should not display the
"pulling marker" message.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 18:01:02 -0700] rev 1041
evolve: do not even try to pull if all remote markers are known
previously we were explicitly pulling an empty bundle.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:49:22 -0700] rev 1040
evolve: add "obsolescence" in front of marked in the previous message
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:46:20 -0700] rev 1039
evolve: make the "X markers added" message during pull important
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:40:01 -0700] rev 1038
evolve: make the "pulling obsolescence marker" message important
This is likely to take some time the user needs to know what is going on.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:34:22 -0700] rev 1037
evolve: add "absolescence" in front of markers in the message
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:29:29 -0700] rev 1036
evolve: re-introduce the "pushing 42 markers…" message
Informing the user about marker behind pushed sounds a good idea.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:16:29 -0700] rev 1035
evolve: hide the OBSEXC message behind a config option
This will lets most people ignore them while keep evolve dev having a close look
at them.
Some of the most useful messages will be reintroduced for all in coming
changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 17:10:31 -0700] rev 1034
evolve: move OBSEXC progress in a dedicated function
This will help use to rework them.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 16:48:38 -0700] rev 1033
evolve: move OBSEXC message in a dedicated function
This will help use to rework them.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:55:04 -0700] rev 1032
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:50:26 -0700] rev 1031
Added tag 4.0.1 for changeset e914884fb721
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:43:07 -0700] rev 1030
evolve: prepare release 4.0.1
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:48:42 -0700] rev 1029
evolve: fix distribution for 4.0.0
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:40:19 -0700] rev 1028
evolve: update readme
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 15:33:39 -0700] rev 1027
evolve: update tested with statement
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 08 Aug 2014 10:40:47 -0700] rev 1026
test: apply message changes introduced by mercurial 3.1
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Jul 2014 14:27:16 +0200] rev 1025
test: use `hg log` in the `getid` function
using `hg id` to retrieve full lenght node requires to use --debug. This may
include debug output (regarding branch cache invalidation for example) that
breaks the test. We now use `hg log` with a custom template. This is a simple,
clean and robust solution.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:05:57 -0700] rev 1024
evolve: add a tr arguement to retractboundary
Mercurial core is adding a transaction argument to its phase movement function.
We do the same. If Mercurial appears to be an old version (without the extra
args) we call it the old way.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 18:10:00 -0700] rev 1023
relocate: add transaction around phase movement
cheap way to acces access to the transaction object
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:14:00 -0700] rev 1022
uncommit tr
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 18:06:17 -0700] rev 1021
evolve: saner locking an transaction in `hg evolve`
Each trouble solved used to handle locking and transaction on its own. We now
have a top level locking and transaction. This will helps use making sure phase
are moved within a transaction.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:08:51 -0700] rev 1020
uncommit: saner locking scheme
(and do it in the right order in the process)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:40:55 -0700] rev 1019
prune: lock inside the try
tss…
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:39:32 -0700] rev 1018
debugrecordpruneparents: release tr the same way than the lock
Nicer code is nicer.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 17:37:28 -0700] rev 1017
evolve: drop useless wlock in rewrite
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 16:55:41 -0700] rev 1016
divergence: actually use the hint that have been around for age
Having a hint in the code is good, having it displayed is usually seens as
better.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 16:07:53 -0700] rev 1015
evolve: rename `tr` variable (for troubled) to `tro`
tro is usually dedicated to transaction.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 06 Aug 2014 16:04:07 -0700] rev 1014
evolve: add a custom layer around retractboundary
retract boundary is about to gain a new argument in core, we need somethign to
handle this
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:40:40 -0700] rev 1013
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:38:33 -0700] rev 1012
evolve: point to the core mercurial tracker for bugfix
As per Matt Mackall request evolution related bug should be filled again the
main tracker as at some point al lof evolve wil be in core.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:37:46 -0700] rev 1011
evolve: drop reference to 2.3 in the extension help text
We are far away from 2.3 now.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:26:46 -0700] rev 1010
readme: update the work in progress repository location
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:24:19 -0700] rev 1009
readme: update the official documentation location
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 30 Jul 2014 13:14:13 -0700] rev 1008
evolve: deprecated --obsolete and --old-obsolete option on commit and graft
Such option are unlikely to make it into core, so we deprecate them to avoid uer
discovery them and getting used to them.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Jul 2014 17:13:54 +0200] rev 1007
push: put phase in the same bundle2 than changegroup and obsmarkers
Note that the usual phase push from core will be performed in all case. But the
discovery should find already in sync phase at that time. The old ways sync will
be properly skipped when this logic is introduced into core.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Jul 2014 16:54:08 +0200] rev 1006
push: put obsmarkers in the same bundle2 than changeset
When client is Mercurial 3.1 and server have proper evolve version and both side
have bundle2 enabled, we'll includes a part containing obsolescence markers.
When obsmarkers are included to the main bundle2 push, they will failed to be
pushed if the changeset failed to be pushed (and reciprocally).
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 28 Jul 2014 00:08:06 +0200] rev 1005
push: extract obsmarkers discovery in a dedicated function
The need to factorise the computation of the markers to send in a dedicated
function. This prepare the inclusion of obsmarkers in an atomic bundle2 push.
For now, when obsmarkers are pushed using bundle2, they are still doing it on
their own, in a dedicated bundle2 push.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 29 Jul 2014 17:15:57 -0700] rev 1004
evolve: update the tested with statement
Tested with the soon to be release 3.1.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 29 Jul 2014 17:15:01 -0700] rev 1003
test: adapt to upstream message change
A message gained parenthesis in 3.1 we reflect than in the test.
Nathan Goldbaum <ngoldbau@ucsc.edu> [Thu, 24 Jul 2014 12:02:53 -0700] rev 1002
uncommit: improve error message for use with no arguments
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 25 Jul 2014 14:27:16 +0200] rev 1001
test: use `hg log` in the `getid` function
using `hg id` to retrieve full lenght node requires to use --debug. This may
include debug output (regarding branch cache invalidation for example) that
breaks the test. We now use `hg log` with a custom template. This is a simple,
clean and robust solution.
Faheem Mitha <faheem@faheem.info> [Sun, 13 Jul 2014 21:54:03 +0530] rev 1000
readme: mention patchbomb usage and patch description guidelines on wiki
Faheem Mitha <faheem@faheem.info> [Wed, 23 Jul 2014 12:08:48 +0200] rev 999
debian: add line to clean target to delete error files caused by failing tests
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 30 Jun 2014 13:38:49 -0400] rev 998
fold: improve error messages for multiple heads and roots
This commit adds hints and i18n to the error messages about non-linear
revisions, along with corresponding tests.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 30 Jun 2014 13:37:15 -0400] rev 997
fold: reword error message for public commits
This rewords the error message when attempting to fold public csets.
It is somewhat clearer to not use contractions in formal writing. It
also uses i18n for it. This commit also adds a new test for this error
message.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 30 Jun 2014 13:29:49 -0400] rev 996
fold: overhaul handling of revisions with --rev (BC)
The fold command parsed the revision arguments in a very peculiar and
idiosyncratic fashion: if revisions were passed without a --rev
argument, then they would all be extended to ".", but if they were
passed with --rev, then no extension would happen. Passing revisions
both with and without --rev would abort. This is inconsistent with the
way all other hg commands parse revision arguments. We have several
examples of command where several revisions are passed, and the --rev
option is optional for specifying those revisions (update, strip,
export).
This patch alters the way in which fold parses its revision arguments.
No distinction is made between revisions passed with or without the
--rev argument. Regardless if a single or multiple revision is
specified, all will be folded together into the parent of the working
directory. If the --exact argument is passed, then the parent of the
working directory is ignored and the specified revisions must be a
single contiguous line.
The docstring and tests are modified accordingly.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 30 Jun 2014 10:25:08 -0400] rev 995
fold: emit error message when folding a single revision
Previously, a confusing error state would happen if the revision set
to fold was a singleton.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 30 Jun 2014 10:27:15 -0400] rev 994
fold: clarify message for empty revision set and abort instead (BC)
I find it clearer that there are no revisions to fold because none
were specified. Otherwise it seems ambiguous: maybe there are no
revisions to fold because it's impossible to fold whatever was given?
In analogy of other commands that are given no revisions (e.g. strip,
graft), this is also now an abort instead of a mere error message,
which is a BC.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 04 Jul 2014 09:29:13 -0400] rev 993
evolve: do not use _ as an unused variable
The _ variable is the i18n function from core Mercurial, so locally
assigning to it can lead to name clashes.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 26 Jun 2014 15:31:49 +0100] rev 992
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 26 Jun 2014 15:27:25 +0100] rev 991
merge with very old 2.2 branch
Greg Ward <greg@gerg.ca> [Mon, 23 Jun 2014 22:04:32 -0400] rev 990
test-obsolete: make log templates more consistent: add {desc} to one
This has the extra added benefit of making the divergence situation
easier to understand.
Greg Ward <greg@gerg.ca> [Mon, 23 Jun 2014 21:03:57 -0400] rev 989
test-obsolete: explicitly show which changesets are divergent
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 23 Jun 2014 02:31:53 -0700] rev 988
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 23 Jun 2014 02:19:04 -0700] rev 987
update readme
(I should have a hook preventing me to push to public repo with uncommited
changes)
Greg Ward <greg@gerg.ca> [Sun, 22 Jun 2014 20:10:07 -0400] rev 986
evolve: add --tool option so we don't have to use HGMERGE
Greg Ward <greg@gerg.ca> [Sun, 22 Jun 2014 12:01:11 -0400] rev 985
amend: add -U/--current-user option (inspired by mq)
Greg Ward <greg@gerg.ca> [Sat, 21 Jun 2014 18:31:21 -0400] rev 984
tests: fix grammar, spelling, punctuation in comments
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 13 Jun 2014 12:49:16 -0700] rev 983
evolve: minor reorganisation of code responsible for evolve output
This does not change any of the semantic as status is not printed when --quiet
is provided. This juste make it more explicit that the output are related.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 12 Jun 2014 16:10:01 -0700] rev 982
template: add a troubles keyword
This keyword list all evolution troubles that affect a changeset. Evolution
troubles can be "unstable", "divergent" and "bumped".
Greg Ward <greg@gerg.ca> [Fri, 06 Jun 2014 17:21:59 -0400] rev 981
docs: update copyright statement used by sphinx
Greg Ward <greg@gerg.ca> [Fri, 06 Jun 2014 17:20:30 -0400] rev 980
docs: add concepts guide (the set theory behind obsolescence)
Greg Ward <greg@gerg.ca> [Fri, 06 Jun 2014 17:19:17 -0400] rev 979
docs: add guide to sharing mutable history
Greg Ward <greg@gerg.ca> [Thu, 05 Jun 2014 22:11:04 -0400] rev 978
docs: add new user guide
This has also been reviewed to death on evolve-testers. There are
still a couple of short sections to write (clearly marked "TODO"), and
one example to add. But (if I may be so bold) this is a gigantic
improvement over the current docs, so it really should get merged.
Incidentally, the figures are all SVG files created with Inkscape.
They're not perfect, but they're pretty nice. Anyone who knows a
better way to create technical diagrams is welcome to contribute.
One wart: there's a test script that accompanies the document and
largely duplicates it, but I haven't unified them. I've been
concentrating on writing the best possible content, not on fiddling
with tools. I suspect that unifying them will be non-trivial, but
definitely worth doing.
Greg Ward <greg@gerg.ca> [Thu, 05 Jun 2014 21:57:34 -0400] rev 977
docs: rewrite index page (including dangling links to future docs)
This has been reviewed to death on the evolve-testers mailing list.
I've made some minor tweaks since the last round of reviews, but the
main content is the same.
Greg Ward <greg@gerg.ca> [Fri, 06 Jun 2014 17:43:45 -0400] rev 976
amend: add -D/--current-date option, just like mq's qrefresh has
Carefully designed so we can easily add -D to other changeset-creating
commands (probably anything that takes -d), and so that we can add
-U/--current-user as well. When that's done, the date and user options
should be very similar to those in MQ.
Greg Ward <greg@gerg.ca> [Thu, 05 Jun 2014 21:27:28 -0400] rev 975
amend: explicitly test -d option
Greg Ward <greg@gerg.ca> [Thu, 05 Jun 2014 21:27:06 -0400] rev 974
amend: in tests, do not rely on defaults -- always use explicit -d
Having a default -d option will make it hard to test
-D/--current-date, which is coming shortly: presence of -d overrides
-D, just like with mq's qrefresh.
Greg Ward <greg@gerg.ca> [Thu, 05 Jun 2014 18:07:39 -0400] rev 973
evolve: fix createmarkers() wrapper to accept an iterable
Docstring in mercurial.obsolete says "<relations> must be an iterable
of ...", and hgsubversion takes it at its word and passes a generator.
Until around Mercurial 3.0, this did not cause any problems, but now
it does: in a repo with both evolve and hgsubversion enabled, pushing
to Subversion when obsolete changesets are present causes a crash:
[...]
File "/home/gward/src/hgsubversion/hgsubversion/wrappers.py", line 346, in push
obsolete.createmarkers(repo, relations)
File "/home/gward/src/hg-stable/mercurial/extensions.py", line 196, in wrap
return wrapper(origfn, *args, **kwargs)
File "/home/gward/src/hg-evolve/hgext/evolve.py", line 332, in _createmarkers
relations[idx] = (prec, sucs, meta)
TypeError: 'generator' object does not support item assignment
Since hgsubersion is playing by the documented rules, evolve must be
the guilty party here.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 16:45:02 -0700] rev 972
merge with 4.0.0
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 16:44:24 -0700] rev 971
Added tag 4.0.0 for changeset 0304fc2bab15
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 15:38:16 -0700] rev 970
pkg: prepare release of version 4.0.0
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 15:36:58 -0700] rev 969
pkg: drop pushexperiment from the install list
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 14:31:15 -0700] rev 968
merge stable into default
default is meant to be a superset of stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 14:30:23 -0700] rev 967
merge default in to stable
evolve 4.0.0 is coming.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 14:29:24 -0700] rev 966
merge back into stable
The 2,7 is meant to be a subset of stable.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 14:28:31 -0700] rev 965
prepare a branch for compatibility with mercurial 2.7 to 3.0(.0)
Evolve 4.0.0 is coming
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Jun 2014 15:22:23 -0700] rev 964
test: update to output change introduced by future 3.1
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 21 May 2014 12:01:28 -0700] rev 963
simple4server: backport the bundle2 exchange
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 22:36:47 -0700] rev 962
evolve: install progress support for the bundle2 pull path
The custom wireprotocol command had a trick to display progress while pulling.
We reinstall such logic for the new path using bundle2.
Its notable that we are using the bundle2 advisory parameter for this purpose.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 17:21:36 -0700] rev 961
evolve: install progress support for the bundle2 push path
The custom wireprotocol command had a trick to display progress while pushing.
We reinstall such logic for the new path using bundle2.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 14:39:13 -0700] rev 960
evolve: add a pull path using bundle2
Instead of using a dedicated wireprotocol commands, we use bundle2 to transmit
an obs marker parts. This aims at both testing bundle2 more and to limit the
amount of special code we needs to put in simple for server to fit our needs.
The massive test changes comes from the fact we can use this fast path for both
remote and local push.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 02:13:02 -0700] rev 959
evolve: advertise obsmarker creation in the transation hook
This will let extensions hooks on marker exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 15:01:33 -0700] rev 958
evolve: add bytes and new marker data when processing part
This will helps use to keep printing useful message when pulling through
bundle2.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 13:41:27 -0700] rev 957
evolve: add a push pass using bundle2
Instead of using a dedicated wireprotocol commands, we use bundle2 to transmit
an obs marker parts. This aims at both testing bundle2 more and to limit the
amount of special code we needs to put in simple for server to fit our needs.
The massive test changes comes from the fact we can use this fast path for both
remote and local push.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Jun 2014 14:44:13 -0700] rev 956
evolve: make exchange output compact in the old pushkey case too.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 01:37:08 -0700] rev 955
evolve: compatibility with memfilectx change
The future 3.1 have have more sophisticated memfilectx object. We add a
compatibility layer for them.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 01:22:31 -0700] rev 954
evolve: abstract access to context.memfilectx
This class is getting altered in the future Mercurial 3.1.0. This changeset
prepare a compatibility layer.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Jun 2014 14:18:29 -0700] rev 953
import: drop version check for ``import --obsolete``
This code base does not support anything below mercurial-3.0 anyway.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 03 Jun 2014 01:16:39 -0700] rev 952
evolve: bump requirement to 3.0.1
Use of bundle2 for pulling will require this version or above.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Jun 2014 14:58:45 -0700] rev 951
test: fix test-import condition
The help text is ``"only(`` not `` only(``
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 31 May 2014 00:23:25 -0700] rev 950
merge with stable
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 29 Apr 2014 22:25:57 +0200] rev 949
evolve: make most line lenghts 80 characters or less
There are still a few lines that are above 80 characters in length. Those have
not been changed because doing so would make the code a bit less clear.
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 29 Apr 2014 22:25:48 +0200] rev 948
evolve: start all util.Abort messages with lower case
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 29 Apr 2014 22:25:35 +0200] rev 947
evolve: improve wording of a few of messages
Angel Ezquerra <angel.ezquerra@gmail.com> [Tue, 29 Apr 2014 22:25:21 +0200] rev 946
evolve: fix a couple of typos
Greg Ward <greg@gerg.ca> [Sun, 25 May 2014 17:37:13 -0400] rev 945
evolve: fix spelling error
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 13:45:52 -0700] rev 944
evolve: more compact output in the wire protocol case
We made the wording more similar and use less line. The writing operation is
usually fast so we do not needs a specific line for it.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 23:57:48 -0700] rev 943
evolve: test exchange through wireprotocol
The wireprotocol version of the exchange was only tested in the
`simple4server.py` case.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 20 May 2014 13:30:12 -0700] rev 942
evolve: align working during obsmarker push using pushkey
lets use the same wording everywhere to prevent user confusion.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 May 2014 17:43:31 -0700] rev 941
evolve: drop some pre-3.0 compatibility code
This extension already requires Mercurial 3.0
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 May 2014 17:45:28 -0700] rev 940
evolve: update the errors message to request mercurial 3.0 and above
And update the checking code too. This extension already requires 3.0 for some
time.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 May 2014 12:44:30 -0700] rev 939
readme: remove some duplicated entries
Those changes where backported to 3.3.2.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 19 May 2014 12:43:03 -0700] rev 938
readme: remove embarrassment
There were… conflict marker in this file. Its over, they are gone now.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 May 2014 16:42:41 -0700] rev 937
merge with 3.3.2
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 May 2014 16:40:50 -0700] rev 936
Added tag 3.3.2 for changeset a03ea39aca2a
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 14 May 2014 16:36:37 -0700] rev 935
prepare release 3.3.2
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Thu, 10 Apr 2014 16:02:02 -0400] rev 934
fold: add squash as a possible alias
In order to respect the habituation of the majority of DVCS users and
to make this feature more easily discoverable, the very common
"squash" terminology should be added as a synonym to "fold". Since git
does not have a squash command, this should be safe.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 14 Apr 2014 15:46:27 -0400] rev 933
fold: add --message and --logfile options
Like other commit-creating commands, this add two options for
specifying the resulting commit message, with tests. If either of
these options is specified, no editor is popped up asking for a commit
message.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 11 May 2014 01:29:11 -0700] rev 932
merge with stable
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Thu, 09 Jan 2014 11:33:15 +0100] rev 931
prune: update to successor rather than parent when prune '.'
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 09 May 2014 03:06:36 -0700] rev 930
import: --obsolete flag for automatic obsolescence marker creation
A new `--obsolete` flag is added to import. When present, the new node will be
marked as a successors of the one specified in the `Node` field of the imported
patch. No marker are created when revision have the node expected in the patch.
This improves email based work flow where implicit rebase are likely to happen
and extra information are lost, changing the hash.
This new behavior requires a flags, otherwise the `hg export x | hg import -`
idiom would change, turning the source obsolete.
(Changing from `hg graft x` to `hg rebase --dest . --rev x`)
This change only takes effect when using Mercurial 3.0 and above
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 11 May 2014 01:17:02 -0700] rev 929
merge with all other change to 3.3
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 11 May 2014 01:14:34 -0700] rev 928
update 3.3.0 readme to include minimal mercurial requirement
This clarify the situation.
Greg Ward <greg@gerg.ca> [Tue, 15 Apr 2014 14:06:47 -0400] rev 927
evolve: fix grammar in a comment
Greg Ward <greg@gerg.ca> [Tue, 15 Apr 2014 14:06:20 -0400] rev 926
README: document how to run the tests
Faheem Mitha <faheem@faheem.info> [Sat, 03 May 2014 03:46:21 +0530] rev 925
uncommit: change 'kill' to 'prune' in error message
'kill' was renamed to 'prune' Long time ago.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 29 Apr 2014 16:31:21 -0700] rev 924
readme: the forgotten update strike again
Sean Farley <sean.michael.farley@gmail.com> [Fri, 25 Apr 2014 19:58:33 -0500] rev 923
evolve: protect call to rebase within a wlock (#42, #35, #16)
Without a wlock, repo.commit would blow away the dirstate's parents on OSes
that have no 'os.symlink' support in python, leading evolve to produce a merge
instead of a rebase. If a user ran the rebase command instead of evolve, then
things would work because rebase is wrapped in a giant wlock.
Unfortunately, we can't use the same idea of wrapping the evolve command in one
giant wlock because that's too early in the process. If the lock did wrap the
entire evolve command, then the working directory would save its current
parents which, since rebase hasn't been called yet, would be just
p1.
Therefore, we need to obtain the lock *after* the dirstate's parents are
changed but *before* the call to rebase. This way ensures that when a conflict
happens the working directory correctly shows both parent changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 15:58:55 -0700] rev 922
readme: update the readme with all missing entry
One days one will stop forgetting to update it.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 15:32:52 -0700] rev 921
readme: rephrase the changelog entry regarding the new exchange
Lets try to have it readable by human being.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 15:08:28 -0700] rev 920
readme: drop the reference to fastobs
Its dead Jim.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:28:28 -0700] rev 919
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:24:02 -0700] rev 918
Added tag 3.3.1 for changeset fc04758ea9f5
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:23:23 -0700] rev 917
prepare release 3.3.1
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:22:06 -0700] rev 916
fix maintainer email
I'm not working at Logilab since july 2013. Using my personal address to prevent
this kind of situation in the future.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 11 Apr 2014 19:24:29 -0400] rev 915
fold: enable --date and --user options
Like all other commit-creating commits, `hg fold` should also have
these options enabled. This also allows getting consistent hashes
during tests involving fold.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:15:40 -0700] rev 914
evolve: improves readme wording
(yes I just pushed the other version…)
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:10:28 -0700] rev 913
evolve: update changelog in README
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 23 Apr 2014 14:05:36 -0700] rev 912
test: update testing statement
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 00:38:14 +0100] rev 911
evolve: abort when trying to move a node on top of itself
This provides a clearer error message when evolve misstakenly tries
to move a changeset on top of itself. Before we got an abort with a
cryptic message about trying to rebase a merge changeset.
A proper fix to make sure that evolve never tries to move a node on
top of itself will come in later patches.
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 23:57:15 +0100] rev 910
run-tests: add executable bit
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 14 Apr 2014 15:10:29 -0400] rev 909
rewrite: use cmdutil.logmessage instead of ad-hoc methods
The logic for handling the --message and --logfile options is already
in core hg in the cmdutil.logmessage function. This patch removes this
duplicate logic from Evolve and just calls the core function.
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 11 Apr 2014 19:24:29 -0400] rev 908
fold: enable --date and --user options
Like all other commit-creating commits, `hg fold` should also have
these options enabled. This also allows getting consistent hashes
during tests involving fold.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 17:04:40 -0700] rev 907
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 17:15:05 -0700] rev 906
test: sort output of listkey command
The pushkey namespace came as dict key. So they have no defined order. We sort
them to stabilize the test.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Apr 2014 17:00:24 -0700] rev 905
exchange: use fixed order for obstore content
The obsstore content seems unstable from one version of python to another (we
most certainly use some dict) we fix the order once and for all.
Greg Ward <greg@gerg.ca> [Sun, 20 Apr 2014 17:40:56 -0400] rev 904
Finish killing fastobs (this test failed loudly after 33fdaec24432)
Augie Fackler <raf@durin42.com> [Thu, 17 Apr 2014 17:15:54 -0400] rev 903
Kill fastobs, as marmoute says it causes problems
Durham Goode <durham@fb.com> [Mon, 07 Apr 2014 16:41:29 -0700] rev 902
tests: fix test-prune.t breakage
test-prune.t was broken due to 91d28bd0e04e in upstream Mercurial, which made
hidden commits visible when a local tag made the commit reachable. The fix is to
delete the tag in the test.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 14 Apr 2014 18:16:35 +0200] rev 901
Fix preservation of rename information on evolve (#33)
Following what rebase itself does, call duplicatecopies between
rebasenode and concludenode.
Should fix
https://bitbucket.org/marmoute/mutable-history/issue/33/evolve-command-loses-copy-metadata
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 16:46:13 -0400] rev 900
merge stable into default
Durham Goode <durham@fb.com> [Mon, 07 Apr 2014 16:41:29 -0700] rev 899
tests: fix test-prune.t breakage
test-prune.t was broken due to 91d28bd0e04e in upstream Mercurial, which made
hidden commits visible when a local tag made the commit reachable. The fix is to
delete the tag in the test.
Olle Lundberg <geek@nerd.sh> [Sat, 12 Apr 2014 23:16:02 +0200] rev 898
evolve: small white space change
Olle Lundberg <geek@nerd.sh> [Sat, 12 Apr 2014 23:15:13 +0200] rev 897
evolve: use new api _callcompressable
This changeset makes evolve compatible with the change introduced in
167047ba3cfa
Olle Lundberg <geek@nerd.sh> [Fri, 04 Apr 2014 01:07:27 +0200] rev 896
evolve: downcase first word in module doc
This makes the output of hg help consistent with the other extensions.
Olle Lundberg <geek@nerd.sh> [Fri, 04 Apr 2014 00:58:15 +0200] rev 895
evolve: deprecate gup and gdown aliases
This is done in an effort to clean up the UI of evolve.
Olle Lundberg <geek@nerd.sh> [Fri, 04 Apr 2014 00:30:56 +0200] rev 894
evolve: add function to deprecate an alias
When cleaning up the UI for evolve we will deprecate old aliases,
but still want them to work for a while. This is a helper function
that will be called during the extension setup and has the ability
map an old alias to a new or canonical one.
Olle Lundberg <geek@nerd.sh> [Fri, 04 Apr 2014 01:07:27 +0200] rev 893
evolve: downcase first word in module doc
This makes the output of hg help consistent with the other extensions.
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 23:58:45 +0100] rev 892
evolve: active bookmark should move when using prev/next (#37)
The #37 references the bitbucket issue for mutable-history, that
can be found here:
https://bitbucket.org/marmoute/mutable-history/issue/37/
Brendan Cully <brendan@kublai.com> [Thu, 03 Apr 2014 23:36:23 -0700] rev 891
commands: small language fixes in help
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 00:38:14 +0100] rev 890
evolve: abort when trying to move a node on top of itself
This provides a clearer error message when evolve misstakenly tries
to move a changeset on top of itself. Before we got an abort with a
cryptic message about trying to rebase a merge changeset.
A proper fix to make sure that evolve never tries to move a node on
top of itself will come in later patches.
Olle Lundberg <geek@nerd.sh> [Wed, 26 Mar 2014 23:57:15 +0100] rev 889
run-tests: add executable bit
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Mar 2014 11:12:56 -0700] rev 888
evolve: add a hook related to the new pushobsmarkers command
Before the current expericment, people could hook on obsolescence marker push
using pushkey. We add a new hook to serve the same purpose.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 19 Mar 2014 20:15:55 -0700] rev 887
exchange: dropping dead code (issue36)
This variable does not exist anywhere else in the code.
Matt Mackall <mpm@selenic.com> [Tue, 18 Mar 2014 12:59:49 -0700] rev 886
evolve: fix evolve with mercurial default
MODERNCAPS have been renamed to moderncaps upstream.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 13:07:37 -0700] rev 885
simple4server: update tests
Forgot to amend before pushing.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 13:03:35 -0700] rev 884
sinmple4server: advertise new cap only when advertising obsolescence
This is more consistent.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 13:01:32 -0700] rev 883
evolve: do not exchange obsolescence markers when server refuse it
The server can be configured to refuse obsolescence markers exchange. See
changeset 48804a8d7472 for details about it. We respect server will in the
client.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Mar 2014 12:44:33 -0700] rev 882
simple4server: option to advertise obsolescence support
We had an option to control the advertising of the obsolescence markers support
from the server. The goal of this option is to allow large scale repo hosting
service to control the use of obsolescence markers exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 19:47:24 -0700] rev 881
export: add test for simple4server
We now officially test it over http
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:57:41 -0700] rev 880
exchange: fix push markers over wire protocol for http peer
Http actually interpret the data passed to _callpush expecting them to a bundle.
Interpretation of a markers stream as a bundle obviously led to crash.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:55:41 -0700] rev 879
exchange: expose length of pushed markers
http wireprotocol will need it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 22:09:26 -0700] rev 878
simple4server: update "from <changeset>" statement
Could obviously not do it in the same changeset than the original changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:35:54 -0700] rev 877
exchange: fix changeset pulling over http
http compress its stream. The were building a bogus stream where the first 10
bytes where uncompressed. Confusing the client.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 22:08:21 -0700] rev 876
simple4server: update "from <changeset>" statement
Could obviously not do it in the same changeset than the original changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 21:34:36 -0700] rev 875
exchange: properly wrap wireprotocol capabilities
Just wrapping the module function only works for ssh. Ssh gets capability
through the `hello` command. We also need to wrap the function stored in the
command dict. This fix discovery for http peer.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 17:40:38 -0700] rev 874
simple4server: add origin and documentation to most function
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:54:08 -0700] rev 873
evolve: add 2.9.1 compatibility seal to simple4server
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:52:46 -0700] rev 872
simple4server: fix a missing import
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Mar 2014 16:27:21 -0700] rev 871
evolve: update version compatibility error message
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 07 Mar 2014 14:46:45 -0800] rev 870
exchange: fix pull over wire protocol
Actually hand pulled obsolescence markers to the pull logic.
In the wire protocol case we did not reset the position of the file pointer
after writing the pulled data. This lead the pull logic to thing that no markers
were send at all.
This changeset fix this client side bug.
(apparently no test check both markers pulling and wireprotocol)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 06 Mar 2014 12:15:04 -0800] rev 869
exchange: enforce permission on new wireprotocol command
hgweb needs an explicit declaration of the permission level of each commands.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 19:08:58 -0800] rev 868
merge stable
André Sintzoff <andre.sintzoff@gmail.com> [Sun, 02 Mar 2014 15:19:31 +0100] rev 867
evolve: fix typos in uncommit docstring
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:21:21 -0800] rev 866
simple4server: add the wireproto command for obsolescence markers discovery
This come with its usual train of duplicated utility.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:14:40 -0800] rev 865
discovery: use the discovery process for pull
Wow! Such speed! Much functional! Very proof on concept implementation!
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 15:09:07 -0800] rev 864
discovery: implement a discovery process and use it for push
Much faster! So functional! Very proof on concept implementation! Wow!
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 05 Mar 2014 16:58:56 -0800] rev 863
discovery: first version of the "hash tree" idea
We build a hash for each node based on the markers that applies to it and the
hash of its parent. This will allow a kind of discovery process for markers.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:34:38 -0800] rev 862
evolve: update changelog with recent advance
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:31:11 -0800] rev 861
merged 3.3 release into default
Some of the default content was released in 3.3.0 the other ones are moved to
3.4
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:14:24 -0800] rev 860
Added tag 3.3.0 for changeset 83882f2fbecb
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:14:15 -0800] rev 859
prepare 3.3.0 release
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:14:20 -0800] rev 858
evolve: drop `latercomer` and `conflicting` compatibility.
Those old alias are deprecated for a long time now. All computations related to
troubles are in Mercurial core for multiple versions.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:03:13 -0800] rev 857
evolve: use flag value from core for bumped fix
This flag is available from core for a long time, lets use it directly from
there.
This commit intend to cleanup old stuff from the evolve extention.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:32:04 -0800] rev 856
test: get rid of all reference to conflicting changesets
They are now called divergent for a long time.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 04 Mar 2014 11:02:42 -0800] rev 855
merge various improvement to stable
We want a good stable state before starting massive changes in default for
obsolescence marker update.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 22:46:46 -0800] rev 854
exchange: add progress bar when pushing using wire protocol command
Progress bar on pull was only available for pushkey based push before this
changeset. This implementation is very hacky but we are still at a proof of
concept stage for those new exchange method.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 22:18:05 -0800] rev 853
exchange: add progress bar when pulling using wire protocol command
progress bar on pull was only available for pushkey based pull before this
changeset.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:37:18 -0800] rev 852
exchange: fix pulling from simple for server
There is far too much code duplication down there.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:52 -0800] rev 851
exchange: add test case for D.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:46 -0800] rev 850
exchange: add test case for D.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:42 -0800] rev 849
exchange: add test case for D.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 21:23:36 -0800] rev 848
exchange: add test case for D.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:48:06 -0800] rev 847
exchange: add test case for C.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:42:21 -0800] rev 846
exchange: add test case for C.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:39:50 -0800] rev 845
exchange: add test case for C.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:36:47 -0800] rev 844
exchange: add test case for C.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:28:03 -0800] rev 843
exchange: add test case for B.7
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:21:27 -0800] rev 842
exchange: add test case for B.6
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:09:27 -0800] rev 841
exchange: add test case for B.5
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 20:00:45 -0800] rev 840
exchange: add test case for B.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:51:18 -0800] rev 839
exchange: add test case for B.3
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:39:20 -0800] rev 838
exchange: add test case for B.2
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:33:00 -0800] rev 837
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 18:51:54 -0800] rev 836
exchange: add test case for A.7
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:31:39 -0800] rev 835
exchange: add test case for A.6
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:21:01 -0800] rev 834
exchange: add test case for A.5
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 15:14:48 -0800] rev 833
exchange: add test case for A.4
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 14:59:43 -0800] rev 832
exchange: add test case for A.3
Allow arbitrary arguments to dotest. This allow to push --force when the push
creates more heads.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 14:03:41 -0800] rev 831
exchange: automate the testing process too
we now have: dotest TESTNAME [TARGETNODE]
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 13:27:53 -0800] rev 830
exchange: have a function doing all the common initial setup
This will help creation of further test.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 13:12:50 -0800] rev 829
exchance: add a common setup script for all test
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 16:36:37 -0800] rev 828
exchange: add test case for A.2
Testcase defined here: http://mercurial.selenic.com/wiki/ObsolescenceMarkersExchange
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 16:21:22 -0800] rev 827
exchange: add test case for A.1
Testcase defined here: http://mercurial.selenic.com/wiki/ObsolescenceMarkersExchange
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:45:59 -0800] rev 826
exchange: add the pullmarker wireproto command to simple4server
This will allow simple server side support.
(yes, code duplication is bad I already told you I won't do it too much mom)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:44:37 -0800] rev 825
exchange: extract computation of pulled markers boundary in a function
I expect massive experimentation on this specific aspect. so we better isolate
it.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:38:19 -0800] rev 824
exchange: pull markers relevant to the pulled subset only
With the command recently introduced we can select to pull only markers relevant
to some nodes. We are now pull all markers for all node in the relevant subset.
We'll try to pull less (just markers for node where local and remote marker
diverge) later, but we need some marker discovery mechanism for that. which are
not easy.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 13:25:34 -0800] rev 823
exchange: add a new method to pull markers
It has both local and wire protocol implementation. This command does not
requires escaping of the marker and are expecting to me highly faster than the
pushkey method.
The other main point is that command is to accept a `heads` and `common`
argument to select to pull changeset only relevant to a set a of node.
We are not using this capability yet but we'll do it soon
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 00:55:34 -0800] rev 822
exchange: add the pushmarker wireproto command to simple4server
This will allow simple server side support.
(yes, code duplication is bad, I won't do it too much mom)
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 00:40:29 -0800] rev 821
exchange: introduce a wireprotocol command to push markers
Pushkey is not adapted to transmit a stream of binary data. We used it as a hack
so far. We add a new wire protocol command to speed the things up (and also push
all the markers in a single transaction). The proper way to do it is to
introduce bundle2 in core, but this will already help in the mean time.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 28 Feb 2014 10:30:10 -0800] rev 820
exchange: actually use _pushkeyescape fallback
The code was still calling `obsolete._pushkeyescape` therefore never calling the
fallback we defined. Now that we call it, it had to be fixed to actually work
too.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:28:43 -0800] rev 819
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Mar 2014 19:27:42 -0800] rev 818
prune: accept '0 0' as a valide --date value
I 've no idea why 4c0f6d555032 introduced it with this check.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 19:58:08 -0800] rev 817
exchange: only push the set of marker relevant to want we push
We now compute all markers relevant to pushed set. And just send just those one.
So you are no longer pushing markers that point to changeset your are not
pushing. See the in line comment for details about what "relevant" is.
Multiple nice output have been added in the process.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 18:30:55 -0800] rev 816
evolve: add relevant marker exchange machinery
This is going to be needed for obsolescence marker exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 17:20:34 -0800] rev 815
fastobs: rename var from `node` to `rev`
It contains revision (from repo.revs not node).
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 27 Feb 2014 17:11:09 -0800] rev 814
fastobs: move the extension to the hgext dir
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 26 Feb 2014 15:25:33 -0800] rev 813
test-prune: update test with a prune output compatible with newest hg
Newest hg can record the parent information in the marker. This change the
debugobsstorestate output a lot.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 25 Feb 2014 11:14:37 -0800] rev 812
drophack: major speedup to marker stripping
It appear that each call to obsstore.add have a significant overhead (in
particular the creation of a set form the list of markers and file system
operation to the obsstore file.
We now compute the marker we need to store and write them in a single call.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 19:01:12 -0800] rev 811
evolve: add a cmddebugrecordpruneparents command
This command can be used to create prune marker with parent information from
prune marker on changeset known locally.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 17:44:12 -0800] rev 810
debugobsstorestat: add test for pruning
There is multiple prune specific code in this command. So we test it in the
presence of prun marker too.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 17:32:09 -0800] rev 809
debugobsstorestat: add information about cluster
We now display information about independant osolescence markers clusters.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 24 Feb 2014 19:00:04 -0800] rev 808
evolve: fix creation of prunedchildren for merge
The `p2` code path was broken. (stupid typo)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:59:49 -0800] rev 807
evolve: add a debugobsstorestat command
This commands print multiple some data about the content of the obsstore. This
will be usefull to provide some metric and insight for obsolescence marker
exchange.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 17:27:45 -0800] rev 806
evolve: extend obsstore object to use prune parent information
Now that we have the information, we can use it to build a mapping to access all
marker that prune a children of a node. This is similar to what we do for
successors and precursors.
The performance impact is a few tens of second on my mercurial clone.
Experimenting is worth the trouble.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 13 Feb 2014 18:09:54 -0800] rev 805
prune: wrap mercurial internal to add parent information in prune marker
We store as a p1 (and p2) key in the extra dict for marker. This allow us to
record this information for future use without requiering a format change.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:14:20 -0800] rev 804
evolve: drop `latercomer` and `conflicting` compatibility.
Those old alias are deprecated for a long time now. All computations related to
troubles are in Mercurial core for multiple versions.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 13:32:04 -0800] rev 803
test: get rid of all reference to conflicting changesets
They are now called divergent for a long time.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 19 Feb 2014 18:03:13 -0800] rev 802
evolve: use flag value from core for bumped fix
This flag is available from core for a long time, lets use it directly from
there.
This commit intend to cleanup old stuff from the evolve extention.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Thu, 20 Feb 2014 12:56:57 -0800] rev 801
importing fastop extension in this repo
This repo is dedicated to experimentation on mutable history topic. Fastop is
appropriate there.
Augie Fackler <raf@durin42.com> [Wed, 19 Feb 2014 15:31:00 -0500] rev 800
fastobs: revset refactor related fixes
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Feb 2014 15:32:31 -0800] rev 799
adapt fastopt extension to mercurial.exchange module
The push code have changed to be more modular. the fastop extension need to be
rewritten. No backward compatibility preserved for mercurial <=2.9x.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Tue, 18 Feb 2014 15:30:54 -0800] rev 798
drop unused function `pushmarkerwrapper`
I can find any user for this function.
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:44:44 -0500] rev 797
Add initial test.
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:44:37 -0500] rev 796
Deduplicate markers. Depends on __hash__ and __eq__ on obsolete.marker
Augie Fackler <raf@durin42.com> [Sat, 16 Nov 2013 20:43:44 -0500] rev 795
copy precursor revset from evolve so we don't depend on involve
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 03 Sep 2013 21:46:50 +0200] rev 794
fastobs: details strategies in the main help
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 21:35:56 -0400] rev 793
fastobs: fix a bunch of stupid errors that prevented it from working at all
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 16:08:56 -0400] rev 792
fastobs: clean up logging a little
Augie Fackler <raf@durin42.com> [Fri, 26 Jul 2013 16:04:40 -0400] rev 791
fastobs: first commit of an extension to test obsolete marker exchange methods
This currently implements the "fill in the box" approach discussed at
the 2.6 sprint, which seems to handle common cases correctly with
significantly less data transferred.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 12 Feb 2014 17:18:50 -0800] rev 790
drophack: add a new drop hack extension for Matt Mackall usage
This extension is hacky and not intended for real world usage. See documentation
for details.
Sean Farley <sean.michael.farley@gmail.com> [Tue, 11 Feb 2014 00:02:18 -0600] rev 789
prune: add biject option
This option allows two ranges to be given for successors and precursors such
that there is a one-to-one match between each range.
Test coverage has been added.
Simon Heimberg <simohe@besonet.ch> [Fri, 07 Feb 2014 09:36:42 +0100] rev 788
evolve: register a summary hook instead of wrapping the summary command
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:30:45 -0800] rev 787
merge stable into default.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:20:50 -0800] rev 786
doc: improve reference to log --hidden
- glog is not mucha thing anymore
- also add a usage exemple
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:19:55 -0800] rev 785
doc: fix trailing white space
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:19:40 -0800] rev 784
doc: DIE MQ DIE
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:19:25 -0800] rev 783
doc: use --succ in prune help
--succ is the new only way.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:18:43 -0800] rev 782
doc: remove referenc to proleferation of hidden commit
This is not much something we try to avoid anymore
This changeset is eathenly adding reference to other toubles too.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:14:06 -0800] rev 781
doc: try to clarify rebase warning
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:13:22 -0800] rev 780
doc: enhance your fold help
Refer to the two different for of using fold.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:12:44 -0800] rev 779
doc: refer to previous and next in the gup, gdown help
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:12:07 -0800] rev 778
doc: replace graft -O with grab
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 22 Jan 2014 14:10:24 -0800] rev 777
doc: rework how to entry about amend
We can recommand the core `hg commit --amend` now. We also drop reference to MQ.
Arne Babenhauserheide <arne.babenhauserheide@kit.edu> [Mon, 20 Jan 2014 10:57:10 +0100] rev 776
raise util.Abort instead of assertion when trying to evolve a merge changeset.
This prevent exposing a nasty traceback to the user.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:46:23 -0800] rev 775
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:37:52 -0800] rev 774
tutorial: fix note
We need a double semin colon, otherwise this is a comment.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:21:29 -0800] rev 773
tutorial: warn about rollback beeing obsolete
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:16:09 -0800] rev 772
tutorial: use grab instead of rebase.
grab as now the advantage to move the working directory.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:14:41 -0800] rev 771
tutorial Clarify "." explanation
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:18:41 -0800] rev 770
tutorial: update divergent changeset section
Still not there but less fuzy.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:10:42 -0800] rev 769
tutorial: use long form of argument for the sake of clarity
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:22:41 -0800] rev 768
tutorial: fix some various typo
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:38:28 -0800] rev 767
tutorial Display the help of appropriate command in section that need writting
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 15:24:16 -0800] rev 766
doc: some documentation on the configuration part of the tutorial
Trying to make it less obscure on first contact
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:22:00 -0800] rev 765
doc: smarter make file
We regenerate the tutorials when needed only
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 09 Jan 2014 21:38:56 -0800] rev 764
doc: use a symbolic link to point to the tutorial
the file was lagging behind a ton.
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Thu, 24 Oct 2013 10:42:50 +0200] rev 763
import: warn about new unstable changesets
'hg import' can add new unstable changesets, for example when invoked
with '--hidden' or '--exact', or when the working directory parent
already is unstable.
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Tue, 22 Oct 2013 11:16:55 +0200] rev 762
evolve: show progress
The total count may be too low on occasion. Not sure why.
gaved up at testing this, can't get stable result.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 07 Jan 2014 16:07:43 -0800] rev 761
removed the qsync extension.
The only user I knew about (logilab) is not using it anymore. It not compatible
with coming Mercurial version 2.9.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 07 Jan 2014 15:52:47 -0800] rev 760
evolve: add more details when we abort for case not handled yet
Verboser output to help people knowing what is going on and solving it on their
own.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 07 Jan 2014 17:03:36 -0800] rev 759
merge stable back into default
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Dec 2013 17:21:01 -0800] rev 758
current release is stable enought
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Dec 2013 17:20:16 -0800] rev 757
evolve: update the tested with statement
It actually ssems to work with version up to 2.6 but some minor changes makes
test fails. so better encourage people to upgrade.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 26 Dec 2013 14:42:22 -0800] rev 756
evolve: use super for calling parent class method
Otherwise we can bipass filtering (and break a lot of things)
Faheem Mitha <faheem@faheem.info> [Mon, 02 Dec 2013 23:31:45 +0530] rev 755
debian: add source/format file
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 21:53:22 -0500] rev 754
Added tag 3.2.0 for changeset c3ba8a965a7a
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 21:39:47 -0500] rev 753
prepare 2.8 release
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 21:44:24 -0500] rev 752
grab: update the alias for 2.8 compatibility
2.8 does not update on rebase anymore. We need to update by hand. this makes
this alias more fragile.
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Fri, 15 Nov 2013 21:33:54 -0500] rev 751
gdown/gup: add next/previous alias
Up and down refer to the customary order in log output rather than
concepts; as such, it may be confusing to the user. I for one found
them suprising -- they just didn't fit with my mental model.
Previous and next, however, imply a clear parent/child relationship.
We attroduce the new name as aliases for now.
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Tue, 22 Oct 2013 11:51:01 +0200] rev 750
evolve: allow updating to the successor if the parent is obsolete
Although 'hg update' handles this as well, it will also update to
tipmost descendent of the successor, if any.
Dan Villiom Podlaski Christiansen <dan@cabo.dk> [Wed, 31 Jul 2013 19:56:28 +0200] rev 749
evolve: abort on unknown divergent changeset base
...rather than noisily dying with a KeyError.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 19:14:19 -0500] rev 748
test: prepare test for core changeset 6cd9b8428104
Changeset 6cd9b8428104 in Mercurial core (2.8) make rebase preserve more
extra. this mean hash changes. We make the test resilient to that.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 18:53:29 -0500] rev 747
test: prepare test for core changeset 9c78ed396075
New changeset in mercurial 2.8 (9c78ed396075) change rebase behavior to preverse
the original working directory. This break an handfull of test so we
preventively update to tip after rebase.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 15 Nov 2013 16:01:40 -0500] rev 746
merge stable into default
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 16 Oct 2013 18:28:52 +0200] rev 745
add obsolete parents wrapper to the 'parents' command
although the command itself cannot *cause* obsolete changesets, the
information is rather relevant to the state of the parents
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Oct 2013 18:23:54 +0200] rev 744
README: update changelog
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Fri, 26 Jul 2013 12:06:44 +0200] rev 743
conform to the Mercurial custom of lowercase messages
...and while at it, use the more usual long form of "can't"
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 16 Oct 2013 00:37:29 +0200] rev 742
amend: use core mechanism for amend
Evolve used its own code for amending. This was introduced before mercurial
includes commit --amend. The evolve code is now older and buggier. So we just
use the core cod when amend is called.
Message of the temporary commit is different, all test hash changed \o/.
Test change are been carefully checked.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Tue, 15 Oct 2013 16:20:17 +0200] rev 741
amend: drop the deprecated note option
We plan to get closer to the commit --amend implementation dropping this
deprecated option helps.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 25 Sep 2013 02:06:47 +0200] rev 740
test: adapt to 2.6 message improvement
From fd1bb7c1be78 (in core) hidden revision are excluded from partial match in a proper
way resulting in a nicer error message.
Greg Ward <greg@gerg.ca> [Sat, 10 Aug 2013 17:30:44 -0400] rev 739
README: polish the language so it reads better
Greg Ward <greg@gerg.ca> [Sat, 10 Aug 2013 17:27:19 -0400] rev 738
README: fix spelling, capitalization, grammar, punctuation
Greg Ward <greg@gerg.ca> [Sat, 10 Aug 2013 14:51:45 -0400] rev 737
README: fix minor markup inconsistencies
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:29:01 +0200] rev 736
3.2.0
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:50:52 +0200] rev 735
debian: properly clean the docs build
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:31:18 +0200] rev 734
pushexperiment requires mercurial 2.6
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:44:17 +0200] rev 733
ship pushexperiment extension
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:17:47 +0200] rev 732
pushexperiment: guard against non-push-capable remotes
Julien Cristau <julien.cristau@logilab.fr> [Tue, 04 Jun 2013 17:16:09 +0200] rev 731
pushexperiment: fix doc typos
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Jun 2013 15:06:18 +0200] rev 730
merge stable into default
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Jun 2013 15:03:55 +0200] rev 729
push obsolescence marker before anything else
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Jun 2013 14:57:39 +0200] rev 728
add notification at the end of push
We have a dedicated hook to know when a push is done.
Julien Cristau <julien.cristau@logilab.fr> [Mon, 03 Jun 2013 14:53:24 +0200] rev 727
Add a new pushexperiment extension
This extension introduce a faster way to push obsolescence marker. Send the
obsstore directly instead of inefficiently going through pushkey's
inefficiency.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 03 Jun 2013 13:28:13 +0200] rev 726
Adapt to human readable date in patch
Julien Cristau <julien.cristau@logilab.fr> [Fri, 31 May 2013 15:10:34 +0200] rev 725
debian: honor nocheck in DEB_BUILD_OPTIONS
André Sintzoff <andre.sintzoff@gmail.com> [Fri, 31 May 2013 18:47:01 +0200] rev 724
evolve: fix typo
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 31 May 2013 18:45:31 +0200] rev 723
amend: hide the --note option
The intermediate commit will not survive long
AndréSintzoff <andre.sintzoff@gmail.com> [Thu, 02 May 2013 18:00:38 +0200] rev 722
evolve: remove trailing spaces
Pierre-Yves David <pierre-yves.david@logilab.fr> [Mon, 04 Mar 2013 18:02:39 +0100] rev 721
update debian changelog
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 11 Feb 2013 10:46:38 +0100] rev 720
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 11 Feb 2013 10:44:54 +0100] rev 719
Added tag 3.1.0 for changeset cdb52bbbe5b8
Levi Bard <levi@unity3d.com> [Sun, 10 Feb 2013 16:14:45 +0100] rev 718
evolve: update test output.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Mon, 11 Feb 2013 10:28:32 +0100] rev 717
prepare release 3.1.0
Levi Bard <levi@unity3d.com> [Mon, 11 Feb 2013 09:21:22 +0000] rev 716
prune: add --user and --date options
They control the metadata writen to the obsolescence marker.
Levi Bard <levi@unity3d.com> [Mon, 11 Feb 2013 09:21:11 +0000] rev 715
prune: add strip-like bookmark
This prune changesets pointed by the specified bookmark only (and removes the
bookmarks)
Levi Bard <levi@unity3d.com> [Sun, 10 Feb 2013 16:17:01 +0100] rev 714
evolve: remove duplicate alias.
Levi Bard <levi@unity3d.com> [Sun, 10 Feb 2013 00:23:22 +0100] rev 713
evolve: update stabilize order test after output change
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sun, 10 Feb 2013 12:10:32 +0000] rev 712
merge with stable
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 20:53:45 +0000] rev 711
evolve: document --all option
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 20:53:03 +0000] rev 710
merge --all option from tak
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Sat, 09 Feb 2013 20:52:30 +0000] rev 709
minor help changes
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 18:07:49 +0100] rev 708
evolve: clean up help message
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 18:07:36 +0100] rev 707
evolve: remove magic return values from utility functions
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 17:02:34 +0100] rev 706
evolve: clean up evolve implementation.
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 16:21:32 +0100] rev 705
evolve: add test for evolve --all.
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 16:21:22 +0100] rev 704
evolve: add --all argument.
Levi Bard <levi@unity3d.com> [Sat, 09 Feb 2013 15:42:14 +0100] rev 703
evolve: extract evolve --any implementation into a function.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 08 Feb 2013 22:44:43 +0000] rev 702
touch: properly handle touching multiple changeset
Denis Laxalde <denis.laxalde@logilab.fr> [Fri, 08 Feb 2013 22:12:46 +0000] rev 701
add a duplicate option in touch
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 08 Feb 2013 22:09:42 +0000] rev 700
touch: add basic testing
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 08 Feb 2013 21:43:00 +0000] rev 699
amend: prune replacement commit without sucessors
This align with the core behavior of `commit --amend`.
All user of rewrite are not responsible for creating their own marker.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 08 Feb 2013 21:27:48 +0000] rev 698
changelog: add more entry