Anton Shestakov <av6@dwimlabs.net> [Fri, 14 Jun 2019 18:26:24 +0800] rev 4690
pick: actually delete pickstate if --abort is given
Makes pick to be, uh, actually aborted.
Anton Shestakov <av6@dwimlabs.net> [Tue, 18 Jun 2019 17:17:31 +0800] rev 4689
evolve: orphans that evolve into nothing don't need successors (issue5967)
When continuing to solve an orphan that created no changes (i.e. clean wdir),
_completeorphan() used to create an obsmarker that said that the result of that
orphan evolution is the currently checked out changeset. That's not a correct
obsmarker, because all of the orphan's changes were dropped and so it had no
effect on the currently checked out changeset.
This is an issue that has only existed when --continu'ing evolve, that's why
the fix touches _completeorphan(), but not _solveunstable(). This fix is
adapted from a similar "if node is None" block in _finalizerelocate().
Anton Shestakov <av6@dwimlabs.net> [Sat, 22 Dec 2018 18:31:32 +0800] rev 4688
tests: demonstrate obsmarker creation after discarding conflicting changes
Continued evolve creates an incorrect obsmarker that says 2 is a successor of
1. It's incorrect because 1 was dropped as it created no changes to commit
(after conflict resolution that discarded its changes).
If evolve does the same thing in one go (e.g. just by using --tool :local and
without subsequent need to continue) the obsmarker is correct.
Anton Shestakov <av6@dwimlabs.net> [Fri, 07 Jun 2019 18:14:48 +0800] rev 4687
pick: remove transaction on the whole command (issue6037)
At its core, pick is a pretty straightforward and well-behaving command, it
uses functions already in core hg, it checks that wdir is clean and that
changeset to pick is not public, it checks if there happen to be merge
conflicts and can be --continue'd later, etc.
It is very similar to graft in core (it also uses mergemod.graft function), but
it obsoletes the original changeset. However, graft does not experience this
incorrect behavior from issue 6037.
What happens in the test case for this issue when we pick a revision that
touches both "a" and "b": mergemod.graft() takes the original changeset and
tries to apply it to the wdir, which results in "b" being marked as newly added
and ready to be committed, "a" updated with the new content and being marked as
modified, but "a" also has conflicts. Pick correctly notices this and saves its
state before asking for user intervention. So far so good. However, when the
command raises InterventionRequired to print a user-facing message and exit
while being wrapped in repo.transaction() context manager, the latter partially
undoes what mergemod.graft() did: it unmarks "b" as added. And when user
continues pick, "b" is therefore not tracked and is not included in the
resulting commit.
The transaction is not useful here, because it doesn't touch wdir (it's still
dirty), it doesn't remove pickstate (and other commands will refuse to work
until pick --abort or --continue), it just makes "b" untracked.
The solution is to use repo.transaction() only to wrap code that writes data to
hg store in the final stages of the command after all checks have passed and is
not expected to fail on trivial cases like merge conflicts. For example,
committing the picked changeset. But since pick uses repo.commit() for that,
and because that function already uses a transaction, wrapping it in another
transaction doesn't make sense.
Anton Shestakov <av6@dwimlabs.net> [Sun, 23 Dec 2018 01:02:36 +0800] rev 4686
tests: demonstrate hg pick forgetting files after conflicts
This test currently passes to show that pick is behaving incorrectly.
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Jun 2019 13:27:26 +0800] rev 4685
packaging: follow hg's supported python version (>= 2.7)
"Mercurial 4.3 and newer require Python 2.7." (From
https://www.mercurial-scm.org/wiki/SupportedPythonVersions)
Also add X- prefix, because that's the correct form, apparently.
This line can also be removed in future, since "When Debian supported multiple
Python versions, X-Python-Version was used, but it is obsolete now as no
supported Debian release supports anything other than python2.7." (From
https://wiki.debian.org/Python/LibraryStyleGuide)
That page also mentions "X-Python3-Version".
Anton Shestakov <av6@dwimlabs.net> [Thu, 13 Jun 2019 13:19:44 +0800] rev 4684
packaging: require hg 4.5 also for usage, not just for building
Philippe Pepiot <philippe.pepiot@logilab.fr> [Tue, 11 Jun 2019 10:04:11 +0200] rev 4683
packaging: require mercurial >= 4.5
Otherwise building the doc package fails with:
(third party extension evolve requires version 4.5 or newer of Mercurial; disabling)
Exception occurred:
File "/usr/lib/python2.7/dist-packages/mercurial/help.py", line 624, in help_
raise error.Abort(msg, hint=hint)
Abort: no such help topic: evolve
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 08 Jun 2019 16:03:05 +0530] rev 4682
evolve: clarify why returning by adding inline doc
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 08 Jun 2019 15:59:31 +0530] rev 4681
evolve: move a code block to have right value in has_some_val
Because of this we were having wrong value of has_some_val and
had some buggy behavior which is being fixed by this patch.
Fixed behavior is reflected by the changes in test file.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 27 Apr 2019 13:09:34 +0530] rev 4680
topic: add tests which demonstrate topicset failure of FilteredRepoLookupError
When topics are used, it fails to find hidden revs mentioned in a revset as
we are not using unfiltered view of repo. Next patch will fix it.
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:57:34 +0800] rev 4679
pick: reduce configoverride() scope
Merge tool is only needed for merge.graft() (it's what graft in core hg does),
so let's make the scope of the ui.configoverride() narrower.
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:09:37 +0800] rev 4678
evolve: correct action verb in a message
Anton Shestakov <av6@dwimlabs.net> [Sat, 08 Jun 2019 16:06:24 +0800] rev 4677
evolve: internationalize a message
This exact message was already wrapped in _() in the same file, just not here.
Anton Shestakov <av6@dwimlabs.net> [Thu, 06 Jun 2019 17:37:42 +0800] rev 4676
evolvecmd: the proper way to deal with conflicts is to resolve them
And it's worth making the suggestion an actual hint.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:56:44 +0200] rev 4675
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:46:06 +0200] rev 4674
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:45:45 +0200] rev 4673
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:42:50 +0200] rev 4672
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:39:32 +0200] rev 4671
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:38:32 +0200] rev 4670
test-compat: merge stable into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:25:02 +0200] rev 4669
branching: merge with 9.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:24:08 +0200] rev 4668
branching: merge back with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:22:05 +0200] rev 4667
packaging: mark as development versions
This help to distinct official release from in progress work.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jun 2019 02:15:50 +0200] rev 4666
Added tag 9.0.0 for changeset 756db65030c6
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 14:24:19 +0200] rev 4665
packaging: prepare release 9.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 14:32:25 +0200] rev 4664
doc: clarify the status of configuration of the obshashrange protocol
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jun 2019 13:26:44 +0200] rev 4663
changelog: add various missing bits
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 19:45:35 +0200] rev 4662
templatekw: keep compatibility with Mercurial 4.5
This is simple enough to do.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 05 Jun 2019 17:21:45 +0200] rev 4661
test: adjust output to stable branch
We are about to make a release.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 11:08:44 +0200] rev 4660
branching: merge with stable
Joerg Sonnenberger <joerg@bec.de> [Sat, 01 Jun 2019 02:30:14 +0200] rev 4659
templates: don't alias keywords directly
Putting the same function twice in the registry results in duplicate
doc strings and therefore confusing "hg help template" output.
Anton Shestakov <av6@dwimlabs.net> [Tue, 28 May 2019 16:46:18 +0800] rev 4658
stack: remove 'topic.' prefix from colors/labels
Stack is related to topics, sure, but it is also good enough to be recognized
on its own.
Anton Shestakov <av6@dwimlabs.net> [Sat, 18 May 2019 16:56:47 +0800] rev 4657
stack: handle hash sizes when --debug flag is provided
Since showstack() now uses fm.hexfunc() for node hashes, which depends on
ui.debugflag, we should handle situations when hashes are full-sized as well.
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:50:25 +0800] rev 4656
stack: always provide (full) node hash to non-default --template
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:42:06 +0800] rev 4655
stack: remove unnecessary prefix from stack output with non-default --template
"index" template keyword already exists (the current iteration of the loop), so
"stack_index" it is. It follows the same convention as other template keywords,
such as "files_added", "line_number", etc.
Anton Shestakov <av6@dwimlabs.net> [Fri, 17 May 2019 17:59:58 +0800] rev 4654
stack: provide context to formatter with non-default --template
This allows using template keywords that we don't explicitly provide to the
formatter, e.g. rev, branch and topic.
Anton Shestakov <av6@dwimlabs.net> [Sat, 11 May 2019 17:14:32 +0800] rev 4653
stack: leverage labelsgen() to produce all needed labels for fm.write()
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 May 2019 16:00:34 +0800] rev 4652
stack: check if stack is empty more pythonically
Anton Shestakov <av6@dwimlabs.net> [Wed, 08 May 2019 15:57:54 +0800] rev 4651
stack: implement __bool__ and __nonzero__
Anton Shestakov <av6@dwimlabs.net> [Sun, 05 May 2019 17:39:46 +0800] rev 4650
stack: get stack data directly from stack and remove stackdata()
stackdata function began its life in 137f8b04901e as a proto-stack: it computed
stack revs on its own and only had one property to return, "changesetcount".
Later it started to prepare and return more properties, but since b933a8068c17
it was computing revs using a getstack function. And then finally in
17749d9d3968 it started to rely on stack class entirely.
It was a good function, but now, when all the logic it provided was factored
into stack class, I'd say it's finally time for it to be put to rest.
Anton Shestakov <av6@dwimlabs.net> [Sun, 05 May 2019 16:14:53 +0800] rev 4649
stack: use stack._revs instead of stack.revs[1:] in external children revset
The revset in question excludes all revs that are part of the stack. Using
stack.revs[1:] works (rev #0 is stack base, which is not a part of the stack),
but using stack._revs is technically more correct, because this variable is
specifically designed to hold only revisions that are part of the stack.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 10:30:56 +0200] rev 4648
test: update output to match the parent changesets
This amend was forgotten.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 03:42:35 +0200] rev 4647
topic: add a simple option to reject publishing
The option is pretty basic but it can be used as base to build larger feature.
The main target for going in this direction is to be able to distinct between
user that are "simple contributors" pushing topic for review and the
"maintainers" or "automation" that can publish changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 04 Jun 2019 10:07:08 +0200] rev 4646
compat: adjust `wrapadd` for upstream
Mercurial core updated the API in f385ba70e4af.
Faheem Mitha <faheem@faheem.info> [Sun, 05 May 2019 22:48:41 +0530] rev 4645
debian: override default value for SPHINXBUILD in docs/makefile
This is the recommended Debian approach.
As suggested by Debian Developer Stephen Kitt, use the approach
recommended by Debian for building Sphinx documentation. See
https://wiki.debian.org/Python/LibraryStyleGuide#Sphinx_documentation
Also belated credit to Zash on the #mercurial channel on the Freenode
IRC network, who suggested the Make variable approach in the first
place.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 02:19:48 +0200] rev 4644
obshashtree: move obshashtree in its own module
The code no longer serve a core purpose. We just keep it because the command
might be useful. We move it in a dedicated module so that it does not get in the
way of other work.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 01:53:36 +0200] rev 4643
obsdiscovery: drop `obshash` discovery protocol (issue6136)
The protocol has been superseeded by stablerange for a long time. It is untested
and more and more buggy. Since this is deprecated experimental code in an
experimental code, we drop it.
We keep the underlying computation and debug command around for now. They might
still be useful to looks at repositories
Martin von Zweigbergk <martinvonz@google.com> [Thu, 09 May 2019 09:42:51 -0700] rev 4642
cmdrewrite: use context manager for some locks and transactions
These were the trivial cases where I didn't even need to extend the
scope of a transaction or change indentation to fix it.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 29 Apr 2019 23:43:16 +0530] rev 4641
evolve: mention that --all is default, in list of options
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:47:58 +0530] rev 4640
touch: use util.acceptintervention() for closing the transaction
It will close the transaction on InterventionRequired.
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:45:00 +0530] rev 4639
touch: use context manager for locks
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 13 May 2019 18:39:43 +0530] rev 4638
touch: extract the logic of touching rev's to its own function
This refactoring will also help us in using the context manager for locks
in next patches and also help reducing the nested depth.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 27 May 2019 02:42:11 +0200] rev 4637
changelog: mention user merging in the changelog
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 05 May 2019 18:24:59 +0530] rev 4636
evolve: consider using three way merge to get the user for div resolution
This patch adds the logic to merge the users from two divergent csets
considering the base (i.e three way merge).
The case when all the three are different, we concatenate the two authors
of divergent csets.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 05 May 2019 18:24:50 +0530] rev 4635
evolve: add tests for the case when div csets has different users
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 May 2019 01:23:12 +0200] rev 4634
branching: merge with stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 26 Apr 2019 01:20:08 +0530] rev 4633
evolve: move status msg to verbose mode in content-divergence resolution
As suggested by Pierre-Yves, lets move these too verbose message for the user
to verbose mode to decrease some noise.
Faheem Mitha <faheem@faheem.info> [Fri, 03 May 2019 03:52:44 +0530] rev 4632
debian: Override default value for SPHINXBUILD in docs/makefile
Sphinx now defaults to Python 3 in Debian Buster, so we need to
explicitly select the Python 2 version of sphinx-build for building
docs.
Faheem Mitha <faheem@faheem.info> [Fri, 03 May 2019 03:44:48 +0530] rev 4631
docs: add SPHINXBUILD make variable
This defaults to sphinx-build. The current use case is for the Evolve
Debian package build.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 27 Apr 2019 20:56:37 +0530] rev 4630
topic: add test to increase code coverage in case of multiple topics
This patch adds a test which cover the part that when we have one topic
on top of other topic, this make sure that when evolving it's boundary
are the current active topic (i.e hg stack)
Anton Shestakov <av6@dwimlabs.net> [Sat, 27 Apr 2019 17:11:12 +0800] rev 4629
changelog: --no-update is the default, recommend --update instead
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 27 Apr 2019 01:18:08 +0300] rev 4628
topic: drop support for accessing csets in branch stack using bxx (issue6119)
When topic extension is enabled and we have some cset whose hash is `b1234`,
topic extension thinks that we are accessing 1234 cset in current branch stack.
However that's not the case generally. Also I am not sure many people use this
bxxx thing.
Since we have a generic sxxx way to access csets, let's drop support for
accessing csets using bxx which leads to bad behavior.
Looking at the tests, we don't show bxxx in hg stack output anymore.
I update the test to use sxxx instead of bxxxx.
Matt Harbison <matt_harbison@yahoo.com> [Mon, 29 Apr 2019 23:16:29 -0400] rev 4627
legacy: drop the check for `obsolete._enabled`
This looks like an ancient version check, and presumably `minimumhgversion` will
do the same thing.
Matt Harbison <matt_harbison@yahoo.com> [Sun, 28 Apr 2019 00:21:28 -0400] rev 4626
docs: drop references to the old temporary commit that was created with amend
The sharing.rst page also mentions amend, but the diagrams aren't showing, so
I'm not sure if they're in some other repo and needing to be updated.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:45:16 -0400] rev 4625
templatekw: add `instabilities` alias for `troubles`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:59:48 -0400] rev 4624
revset: switch internal uses and tests to `predecessors` from legacy name
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:33:16 -0400] rev 4623
revset: add `predecessor` aliases for `precursors` and `allprecursors`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 22:24:30 -0400] rev 4622
revset: add `unstable` alias for `troubled`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary. The old name is still
available (but undocumented) for compatibility. `Orphan` was renamed from
`unstable` in core in 4.4, so this seems safe to do now.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:54:52 -0400] rev 4621
docs: change `bumped` references to `phase-divergent`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:41:04 -0400] rev 4620
docs: change `divergent` references to `content-divergent`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:27:54 -0400] rev 4619
docs: change `troubled` references to `unstable`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:24:18 -0400] rev 4618
docs: change `unstable` references to `orphan`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 21:09:47 -0400] rev 4617
doc: correct a typo
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 19:42:42 -0400] rev 4616
docs: change `troubles` references to `instability`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary. There are a couple
instances of 'troublesome' which probably need a word, as deriviatives of
'instability' didn't really fit. At least some of these are in the unlinked
obs-terms.rst page.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 19:32:03 -0400] rev 4615
docs: change `precursors` references to `predecessors`
Per https://www.mercurial-scm.org/wiki/CEDVocabulary
Matt Harbison <matt_harbison@yahoo.com> [Sat, 27 Apr 2019 14:42:48 -0400] rev 4614
docs: import figure diagrams with inkscape 0.92
No changes to the content here. This simply accepts the default option ("This
file contains digital artwork for screen display") on the prompt when first
opened, which is trying to upgrade from 90DPI to 96DPI.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 15:14:21 -0700] rev 4613
messages: standardize on "working copy is now at" including "is"
It seemed that we mostly used "is", but `hg next` and `hg prune` could
print it without the "is".
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 13:58:29 -0700] rev 4612
evolve: move more of the progress-related variables together
Martin von Zweigbergk <martinvonz@google.com> [Thu, 25 Apr 2019 14:02:11 -0700] rev 4611
evolve: delete dead calculation of number of troubled revisions
The "count" variable is recalculated in the regular (no --continue)
code path and it isn't used anywhere else (it used to be set to 1 in
the --continue code path, but that now has its own progress counting).
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:23:53 -0700] rev 4610
evolve: drop nested locks and transactions
All callers of _solveone() now take the locks and start the
transactions, so there's no need to do that anymore.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 11:12:00 -0700] rev 4609
next: start transaction before calling _solveone()
All other callers do this, and I'm about to make _solveone() not
create a transaction.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:22:25 -0700] rev 4608
evolve: use single transaction also when continuing
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 09:41:39 -0700] rev 4607
evolve: run in a single transaction
This speeds up `hg evolve --all` of a stack of 24 commits in the hg
repo from 11.5s to 3.7s (3x). As can be seen in the tests, it also
avoid some warnings about transiently unstable commits.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:01:32 -0700] rev 4606
evolve: extract function for solving one revision, including merges
Will make the next patch simpler.
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Apr 2019 17:20:32 +0800] rev 4605
evolve: mention that --all is the default behavior now
Anton Shestakov <av6@dwimlabs.net> [Thu, 25 Apr 2019 17:19:41 +0800] rev 4604
evolve: mention that not all successful operations currently update wdir
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:07:28 -0700] rev 4603
evolve: add progress support for --continue
The progress starts where it left off when the previous command ran
into merge conflicts.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:56:42 -0700] rev 4602
evolve: reduce scope of progress-related variables
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:49:47 -0700] rev 4601
evolve: move progress-clearing out of _cleanup()
The progress is only used with --all or --rev, so there's no need to
clean it in any other case. It's therefore easier to clean it
specifically in that case.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:52:33 -0700] rev 4600
evolve: stop passing no-op "progresscb" into continueevolve()
The "progresscb" doesn't do anything in the --continue case, so
there's no need to pass it into continueevolve().
This lets us remove the --no-all that was added to the test as a
workaround.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:45:45 -0700] rev 4599
evolve: _solveunstable() update progress only once
There's no need to draw it, then possibly write text over it (with
--verbose), and then draw it again.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:35:34 -0700] rev 4598
evolve: don't update progress just before clearing it
_cleanup() will clear the progress, so there's little reason to update
it just before (except for progress.debug=yes).
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 09:31:32 -0700] rev 4597
evolve: clean up progress bar also when using -r
It looks like 1fe3da0b4601 (evolve: add --rev option to the evolve
command, 2015-05-05) forgot to update the "showprogress" variable.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 10:20:03 -0700] rev 4596
tests: add some basic testing of progress
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:03:39 -0700] rev 4595
evolve: increment progress *after* a whole merge commit is done
The "re-stabilize" step was using the progress that was supposed to be
for the next revision.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 11:02:35 -0700] rev 4594
evolve: use util.acceptintervention() for closing transactions
util.acceptintervention() will close the transaction on
InterventionRequired.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:32:32 -0700] rev 4593
evolve: use context manager for transactions
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:52:16 -0700] rev 4592
evolve: use consistent message and just re-raise InterventionRequired
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:47:12 -0700] rev 4591
evolve: use standard InterventionRequired instead of MergeFailure
Martin von Zweigbergk <martinvonz@google.com> [Fri, 19 Apr 2019 10:41:56 -0700] rev 4590
evolve: don't use exception for local flow control
The LocalMergeFailure class was added in 3f91654713dd (obsolete Move
merge failure handling into stabilize code, 2012-08-20). I think the
"if compat.hasconflict(r)" check was added later. Now that we have
that check, we should use that for flow control instead.
Note that this means that any unexpected exception from
_relocatecommit() will now just raise (and roll back the
transaction). I think that's an improvement.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:02:08 -0700] rev 4589
evolve: reduce indentation with an early return statement
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Apr 2019 11:01:44 -0700] rev 4588
evolve: remove a useless return statement at end of function
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 13:04:40 +0530] rev 4587
test: move a test to an appropriate test file
This patch introduce a new test file test-evolve-orphan-corner-cases.t
for tests which covers corner cases.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 12:07:26 +0530] rev 4586
test: improve the title of a test
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 21 Apr 2019 12:06:31 +0530] rev 4585
test: remove duplicated test
We have the test in test-evolve-orphan-split.t which is covering the same
case this test does. Also this test states that evolve shows some error in
split case, but now this is not the case we update to the top of splitted
csets.
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 09 Mar 2019 19:35:45 +0530] rev 4584
evolve: warn user for the metadata being lost in public divergence resolution
This patch print warnings if some "extras" of a divergent changeset that
is possibly important metadata which is being lost during the resolution
of public divergence.
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 17 Apr 2019 21:16:17 +0530] rev 4583
evolve: show a status message when merging leads to public cset
I think it would be fine to tell the user that merging the two divergent
csets while resolving public divergence resulted into the public cset
itself.
If you think we don't need to tell the user, then we can include this
in debug-mode for debugging purposes at least.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Apr 2019 20:32:01 +0200] rev 4582
test: use a shorter test name
This is still long but easier to read.
Anton Shestakov <av6@dwimlabs.net> [Wed, 10 Apr 2019 18:20:33 +0800] rev 4581
stack: rename troubledcount to unstablecount
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 17:21:21 +0800] rev 4580
evolve: use --all by default (BC)
allopt defaults to None to avoid touching _checkevolveopts(). If it were True
by default, that function would always act like the flag was provided by user,
and so using --abort, --stop, --continue or --rev on their own would never work
(hg evolve will complain that you cannot specify both --rev and --all).
A notable change in tests is "no troubled changesets" line that gets printed
when using `hg evolve` to update to the evolved successor of working directory
parent, but there were no actual instabilities.
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 17:02:27 +0800] rev 4579
tests: add --rev to hg evolve to reduce test changes for the next patch
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 16:35:01 +0800] rev 4578
tests: add --no-all to hg evolve to reduce test changes
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 15:59:02 +0200] rev 4577
evolve: don't update after instability resolution by default (BC)
Anton Shestakov <av6@dwimlabs.net> [Sun, 14 Apr 2019 02:18:19 +0800] rev 4576
tests: add --update to hg evolve to reduce test changes for the next patch
Anton Shestakov <av6@dwimlabs.net> [Wed, 24 Apr 2019 15:57:49 +0200] rev 4575
tests: don't create a nested repo for no reason
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 24 Apr 2019 14:38:26 +0200] rev 4574
branching: merge with stable
VErsion 8.5.0 got released
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 15:57:04 +0200] rev 4573
Added tag 8.5.1 for changeset 05c9dcf5512e
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 15:30:39 +0200] rev 4572
packaging: prepare version 8.5.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:12 +0200] rev 4571
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:11 +0200] rev 4570
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:10 +0200] rev 4569
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:08 +0200] rev 4568
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:06 +0200] rev 4567
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 14:18:05 +0200] rev 4566
test-compat: merge stable into mercurial-4.9
Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 Apr 2019 22:14:26 -0700] rev 4565
evolve: fix progress display with hg<4.7
Since d1aab9d82f5b (evolve: adapt for deprecated ui.progress(),
2019-01-14), the "item", "units" and "total" are all set to default
values. The last one is especially bad since it results in a "spinner"
instead of a progress bar.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 05:21:14 +0200] rev 4564
packaging: mark extensions as tested with 5.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 13:26:35 +0200] rev 4563
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:50 +0200] rev 4562
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:48 +0200] rev 4561
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:47 +0200] rev 4560
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:45 +0200] rev 4559
test-compat: merge mercurial-4.8 into mercurial-4.7
Martin von Zweigbergk <martinvonz@google.com> [Mon, 11 Mar 2019 23:57:12 -0700] rev 4558
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.
[This re-install a changeset backed out for compatibility reason]
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:44 +0200] rev 4557
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:24:22 +0200] rev 4556
compat: drop support for Mercurial 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:29:42 +0200] rev 4555
test-compat: merge stable into mercurial-4.9
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:20:12 +0200] rev 4554
compat: backed out changeset cfcb7eedc666
That changesets breaks 4.4 compat. We will reinstall it for the next version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 Apr 2019 12:28:32 +0200] rev 4553
test-compat: adapt test output to 4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:11 +0200] rev 4552
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:10 +0200] rev 4551
test-compat: merge mercurial-4.6 into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:09 +0200] rev 4550
test-compat: merge mercurial-4.7 into mercurial-4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:07 +0200] rev 4549
test-compat: merge mercurial-4.8 into mercurial-4.7
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:06 +0200] rev 4548
test-compat: merge mercurial-4.9 into mercurial-4.8
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 20 Apr 2019 03:55:04 +0200] rev 4547
test-compat: merge stable into mercurial-4.9
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 19 Apr 2019 10:31:53 +0530] rev 4546
compat: fix a typo in compat patch
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 23:51:13 +0200] rev 4545
changelog: mention extensions isolation (issue6121)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Apr 2019 13:03:01 +0200] rev 4544
topic: only wrap wireprotocaps 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 13:02:52 +0200] rev 4543
topic: only wrap _pushb2phases 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 13:02:44 +0200] rev 4542
topic: only wrap handlecheckheads 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 13:02:06 +0200] rev 4541
topic: only wrap wireprotobranchmap 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 13:01:39 +0200] rev 4540
topic: only wrap _headssummary 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:41:41 +0200] rev 4539
topic: only wrap desthistedit 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:40:53 +0200] rev 4538
topic: only wrap _destupdatetopic 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: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.