Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Jun 2018 19:52:06 +0530] rev 3805
evolve: implement resolution of content-divergence when on differet parents
This patch implements the basic version of resolution of content-divergence
changesets when they are on different parents but one of the parent is gca of
both the different parents.
The functionality first relocates the divergent changeset which was left behind
and then resolves the content-divergence like it resolves in normal cases.
This is a very basic implementation because it still does not work on
interrupted evolution. Test changes in this patch shows the basic functionality
working. The output of dry-run is also required to be tweaked in such cased.
Upcoming patches will add more tests and will improve the implementation to work
during conflicts too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Jun 2018 19:57:19 +0530] rev 3804
tests: add tests for resolving content-divergence with parent change
This patch adds a new test file test-evolve-content-divergence.t which tests the
resolution of content divergence when the divergent changesets does not have the
same parents.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 03:49:17 +0530] rev 3803
CHANGELOG: add an entry about fixing issue5877
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 03:26:47 +0530] rev 3802
evolve: pop up editor if conflicts occur while merging commit messages
Last patch added support for merging commit messages while resolving content
divergence. In case of conflicts we fallback to one of the divergent commit
messages.
After this patch, we will pop up an editor where user has to resolve the
conflicts in the commit messages and then continue.
Tests are added for this. We need to fix handling in test-sharing.t to use
HGEDITOR to fix conflicts and pass the new commit message.
Future improvement can be that we should respect HGMERGE while merging commit
descriptions too.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Jun 2018 01:28:02 +0530] rev 3801
evolve: merge commit messages while resolving content-divergence (issue5877)
While resolving content-divergence, there can be divergence in commit messages
too which should be resolved.
This patch uses the hg's internal merge API's to merge commit messages of
divergent changesets with predecessor as the base.
In case of conflicts, we fallback to divergent's commit message which should be
changed in future. We should pop up the editor with the commit message and the
conflict markers and let user fix that.
Tests are added for the functionality added.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 01:19:36 +0530] rev 3800
evolve: move if-else block under the right block
the index related if-else should be only executed when all three base, divergent
and other have different branch names.
I coded this last night and mistakenly mis-indented it. Caught when I was adding
more tests.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 22:02:24 +0530] rev 3799
tests: make sure we don't result in commit messages conflict
Upcoming patches will introduce functionality of merging commit messages while
resolving content divergence which can lead to conflicts.
We don't want to test the conflicts scenario here, so let's make sure there are
no conflicts of commit messages in this test.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 21:02:09 +0530] rev 3798
tests: don't use mkcommit shell function in test-divergent.t
Upcoming series will start merging commit descriptions while resolving
content-divergence. This tests are here to test the basics of content-divegrence
resolution and we should not be testing much of commit description merge here.
Replacing mkcommit function with normal hg calls will help us decide on the
commit messages ourselves and prevent conflicts while merging commit messages.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 06 Jun 2018 14:35:36 +0200] rev 3797
evolve: remove duplicated documentation
File saving failureā¦
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jun 2018 04:09:49 +0530] rev 3796
evolve: show `hg help evolve.interrupted-evolve` in error when conflicts
The help list various flags which you can use during interrupted evolve
resolution and description about what they do. This will be very helpful for
user on how to continue an interrupted evolve.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 01:11:59 +0530] rev 3795
evolve: add a help topic `Interrupted-Evolve`
This help topic contains description on how the various flags work during
interrupted evolve. This help topic will be included in error message during
interrupted evolve in next patch.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Jun 2018 03:37:15 +0200] rev 3794
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Jun 2018 03:36:40 +0200] rev 3793
changelog: fix version number error
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 02:12:14 +0530] rev 3792
evolve: return the new node formed only as the replacement
sometimes, the the other content divergent changeset is obsoleted in favour of
the local divergent changeset in which case we should not store that as a
replacement because `hg evolve --abort` will strip that changeset. Let's make
sure we return the newnode only if formed.
The test results shows that we are still not 100% accurate as we need to strip
an obsmarker.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 17:04:20 +0530] rev 3791
tests: add more test of --abort flag for content-divergence resolution
This patch adds test when we resolve multiple content-divergence changesets at
once and resolution fo first content-divergence does not form new commits,
resolution of second one leads to conflicts.
As the output shows, we are wrongly stripping a changeset here, which should be
fixed in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 04 Jun 2018 04:03:02 +0530] rev 3790
evolve: prompt user for branch selection while resolving content-divergence
When resolving content-divergence, there can be case when both the
content-divergent changesets are on different named branches. In that case, we
are not sure which branch should the resolution commit should be on.
This patch adds logic to prompt user to choose the branch which the resolution
commit should be on and then creates the new resolution commit on that branch.
This also adds a new test file which have tests for the branch selection feature
we have added.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 03:51:01 +0530] rev 3789
evolve: pass the base revision in _completecontentdivergent()
We need the base revision to merge commit messages, branches and more stuff.
Let's make sure we have that by passing into the function which completes the
divergence resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 03:49:49 +0530] rev 3788
evolve: store the base of content-divergents in evolvestate
We need the base changeset for merging commit messages, branches. Let's store it
in evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Jun 2018 00:53:21 +0530] rev 3787
evolve: use cmdrewrite.amend() instead of creating a new commit
This patch backs out changeset 88601e1cd5d8.
We replaced cmdrewrite.amend() with creating new commit because using amend(), a
high level function was not good and creating a new commit gave us more control
over things.
**HOWEVER** to get more control, you need to get arrange all the pieces together
perfectly. Creating a new commit, the existing logic has some bugs around
dirstate handling, the `repo.dirstate.setparents()` call especially. Sometimes
this fixes the dirstate correctly sometimes not.
As Pierre-Yves David said, "Having a "clumsy" implementation with the right
behavior is usually a good first step. So having an amend based implementation
seems like a good first step.", let's take a step back and get back using amend
so that we can have a correct basic implementation which is bug free.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 01:59:41 +0530] rev 3786
corecompat: update the tests output to show phase update summary
eb9835014d20 in core added support to transactions to show a summary on the
phase changed during that transaction. Due to this, couple of tests output needs
to be updated. This patch does that.
While realeasing evolve, this patch should be backed out on branches where
hg<=4.6.
CORE-TEST-OUTPUT-UPDATE: eb9835014d20
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:24:43 +0530] rev 3785
CHANGELOG: add an entry about issue 5808 being fixed
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:21:25 +0530] rev 3784
next-prev: replace the error hint to mention about `--merge` flag
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:13:47 +0530] rev 3783
tests: add tests for conflicts while respecting commands.update.check
This patch adds tests to check that we don't run into conflicts while respecting
commands.update.check.
The error message now does not show the hint about --merge option which we
should fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:37:13 +0530] rev 3782
next: respect `commands.update.check` config option in `hg next` (issue5808)
`commands.update.check` config option determines what level of checking should
be done when we update to another revision. When we set this config option to
`noconflict`, it updates your working directory to a specified revision only
when there will be no conflicts which is a very nice behavior.
This patch adds logic to respect the config option so that we can have that nice
behavior with `hg next` too.
It turns out, we just needed to use hg.updatetotally() and add some cases to
check config option.
Right now, we only respect the config if value is set to `noconflict`. Otherwise
we fallback to the default behavior.
This is a part of fixing issue5808. Test changes demonstrate the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:36:24 +0530] rev 3781
prev: respect `commands.update.check` config option in `hg prev` (issue5808)
`commands.update.check` config option determines what level of checking should
be done when we update to another revision. When we set this config option to
`noconflict`, it updates your working directory to a specified revision only
when there will be no conflicts which is a very nice behavior.
This patch adds logic to respect the config option so that we can have that nice
behavior with `hg prev` too.
It turns out, we just needed to use hg.updatetotally() and add some cases to
check config option.
Right now, we only respect the config if value is set to `noconflict`. Otherwise
we fallback to the default behavior.
This is a part of fixing issue5808. Test changes demonstrate the fix.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:50:55 +0530] rev 3780
tests: add test demonstrating issue5808
This patch adds test showing that `next` and `prev` does not respect the
`commands.update.check` config option, particularly when set to `noconflict`.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:26:19 +0530] rev 3779
next: bail out early in `hg next --evolve` if dirty wdir
This patch adds logic to bail out early when --evolve is passed with next
command and the working directory is dirty.
This will help us in preventing the message saying `do you want --merge` which
is useless and misleading when `--evolve` is passed.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 02:24:28 +0530] rev 3778
tests: add test of `hg next --evolve` with dirty working directory
I was testing some output change to `hg next --evolve` in dirty working
directory and found that we don't have any test for that.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 03:35:22 +0530] rev 3777
CHANGELOG: add an entry about fixing issue5897
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 27 May 2018 02:32:58 +0530] rev 3776
evolve: fix `hg abort` when hg next --evolve leads to conflicts (issue5897)
Before this patch, if you do `hg next --evolve` and end up having conflicts and
then you try `hg abort`, it will throw a KeyError. This patch fixes that.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 May 2018 00:34:35 +0530] rev 3775
tests: add a test demonstrating issue5897
When conflicts are caused due to `hg next --evolve`, `hg evolve --abort` breaks!
This patch adds test to demonstrate that. This will be fixed in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 17:50:02 +0530] rev 3774
evolve: add an `--update` flag to `hg evolve` command
This patch adds a new `--update` flag which defaults to True. The update flag
updates the working directory to the head of evolved revisions after `hg evolve`
command.
This flag can be used to not update your working directory after `hg evolve`
which has been one of the biggest feature request from fig team at Google. To
not update your working directory, the user can do `hg evolve --no-update`.
If the working directory get obsoleted by evolve command, it will update to the
successor.
This patch also adds some basic tests for the flag introduced.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 02:02:11 +0530] rev 3773
tests: add tests for testing --abort while content-divergence resolution
This patch adds a new test file with a very basic test of `--abort` on an
interrupted evolve which was resolving content-divergence. Upcoming patches will
add more rigourous tests.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 00:58:50 +0530] rev 3772
evolve: fix storage of replacements and temprevs node in evolvestate
The _completephaseivergent() was not respecting rules on how to store the new
node ids created in evolvestate. The rules are:
* store the temporary relocated commits in temprevs
* store the final new commit in replacements
This patch make sure we follow the above rules and also use the return value
returned by _resolvephasedivergence().
The tests change demonstrates that we are all good now.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 00:58:35 +0530] rev 3771
tests: add more tests related to aborting while resolving phase-divergence
The tests shows the something is still broken related to abort while resolving
phase-divergence which will be fixed in upcoming patches.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 12:16:24 +0200] rev 3770
topic: suggest to clear a topic that becomes empty
We add a hint suggesting "hg topic --clear" when a topic becomes empty.
This usually happens when all its changesets get public, that is when
the user does a 'phase -p' or when they pull from a server. To
discriminate relevant cases for which we should display the hint (and
typically exclude explicit 'hg topic --clear' operation), we look for
the transaction "type" to only consider 'phase' or 'push' transaction.
In the latter case, the transaction name is not simply 'push-response'
but it also included the remote URL so we need to match on string
content.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:37:37 +0200] rev 3769
topic: display a hint pointing at help when a topic becomes non-empty
This is an attempt at avoiding "mistakes" by new users of topics when
they pull a topic and publish its changesets while being checked out. In
this case, the topic will become empty but still be active; however, if
this is a "foreign" topic, the user will not likely want to keep it
active for the next commit operation. So we add a hint message pointing
at general help of "topics" command so that they can eventually do
something and learn about "hg topics --clear".
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 24 May 2018 18:57:46 +0200] rev 3768
branching: merge with compat fix on default
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 May 2018 01:50:26 +0530] rev 3767
evolve: add compat for repair.stripbmrevset which is moved to scmutil
This patch adds compatibility logic for repair.stripbmrevset() which is moved to
scmutil as bookmarkrevs().
This fixes test-prune.t failure.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 May 2018 11:18:14 +0200] rev 3766
evolve: update the readme with more information about contribution
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:03:31 +0200] rev 3765
topic: dedent items about publishing behavior in docstring
Also change item bullets from '#' to '*'.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:00:11 +0200] rev 3764
topic: use preformatted block for config snippets documentation
We add :: markers, empty line and properly indent blocks where needed.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 23 May 2018 11:09:37 +0200] rev 3763
tests: add a test for "hg help -e topic"
Currently, some configuration snippets do not render well; we'll fix
this in forthcoming changesets.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 May 2018 01:24:02 +0200] rev 3762
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 21:33:50 +0530] rev 3761
content-div: add test showing `--stop` works during interrupted resolution
This patch adds a test showing that the --stop flag of `hg evolve` works well
during interrupted content-divergence resolution.
The --stop flag now works with all the three different type of instability
resolution very well and we should advertise it more.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 23 Apr 2018 14:48:53 +0530] rev 3760
evolve: create new commit while resolving content-divergence
Before this patch, we used to amend one of the content-divergent changes with
the changes from the merge. Creating a new commit will certain advantages like
letting user enter a commit message, showing user the new merge diff before
commiting the content-divergent resolution and give us more control in the
implementation part.
The reason amend was used initially was just because it was easy. There are some
tests update due to change.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 20:33:42 +0530] rev 3759
content-divergence: store the resolved revs in evolvestate['replacements']
The support for continuing a conflicted content-divergence resolution was added
some time ago. That support lacked storing of the resolved rev in the
evolvestate['replacements'] which marks the node as resolved and does not try to
resolve that node again.
Since we didn't store, the resolution, processes the same node again. This patch
makes sure we store the information in evolvestate that a certain
content-divergent node is resolved to prevent pre-processing it again.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 23:51:57 +0530] rev 3758
utility: use ui.interactive() instead of checking config value
Before this patch, the rev selection prompt which pops up in case of ambiguity
to ask user to select a rev used to check the config value of ui.interactive
which can is by default set to None.
We should use ui.interactive() instead which is more smart in such cases.
Thanks to martinvonz for suggesting this.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:46:20 +0530] rev 3757
evolve: make `--abort` strip the temporary revs created during resolution
During divergence resolution, `hg evolve` created temporary relocation commits
which needs to be stripped off during `hg evolve --abort` to get back to the
same state where we were. Previous patch added a new list temprevs to be stored
in evolvestate.
This patch starts storing the temp relocated node created during
phase-divergence resolution in evolvestate and make sure we consider stripping
it too while `hg evolve --abort`.
The test changes demonstrate the fix. Now we are sucessfully aborting a
phase-divergence resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:43:23 +0530] rev 3756
evolve: store a list of temprevs in evolvestate
There are temporary revisions which are created as a part of divergence
resolution which needs to be stripped off if user runs `hg evolve --abort`. We
need to save the nodeids of those temporary revisions in the evolvestate.
The temprevs list will help in the above mentioned use cases.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:36:14 +0530] rev 3755
evolve: check for None before adding in set of revisions to strip
After previous patch, replacements can contain None. Let's make sure we don't
add None to the revisions to strip during `hg evolve --abort`
The test changes demonstrate the usefulness of this and the previous patch. Now
abort is working and public changesets are not a problem.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:33:14 +0530] rev 3754
evolve: return the new replacement node to be stored in evolvestate
While resolving phase-divergence, we can end up obsoleting the phase-divergent
commit in favor of the public commit. Before this patch we return the node of
public commit to store as a replacement of the phase-divergent commit.
The above will not cause any problem till the time we use `hg evolve --abort` on
an interrupted evolve which tries to strip the replacement nodes because it
thinks that the replacements nodes are the ones which are created during the
resolution and are new.
Since we will be stripping a public node, `evolve --abort` will error out saying
cannot strip public changeset, unable to abort evolve which is bad.
We should make sure, replacements should only consist of new nodes formed. If
the instablity is resolved by obsoleting in favour of old changeset, we should
not store the old changeset in replacements in evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:39:38 +0530] rev 3753
evolve: don't make values of replacements dict lists
There was inconsistency in code base related to the values stored in
replacements dict in evolvestate. At some places we store a list, at some places
we just store the nodeid. Let's make sure we store only the nodeid, not a list.
If there are cases, when there are multiple replacements or changesets created
during resolution, later patch will introduce storing temprevs in evolvestate
which should be used.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 02:41:08 +0530] rev 3752
tests: add a test file `--abort` flag while resolving phase-divergence
This patch adds a new test file test-evolve-abort-phasediv.t which will contain
tests for `hg evolve --abort` flag while resolving phase-divergence.
There is a case in this test which does not work right which will be fixed in
upcoming patches.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 15 May 2018 22:17:27 -0700] rev 3751
evolve: pass revisions as strings to commands.*()
It's usually fine to pass integer revisions to e.g. commands.update(),
but when directaccess is enabled, it attempts to parse it a revset,
which fails.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 01:27:13 +0530] rev 3750
tests: rename test-evolve-abort.t to test-evolve-abort-orphan.t
We renamed the test file because it contains all the cases related to orphan
resolution. Now we care about divergence resolution too and hence we must have
separate specific test files for each type.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 May 2018 16:56:52 +0200] rev 3749
branching: merge with branch for stable
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 16:25:29 +0200] rev 3748
compat: update obshashrange test output
Mercurial core bfe8ef6e370e seems to have changed the order of some messages.
Simply accept the change in the test file.
CORE-TEST-OUTPUT-UPDATE: bfe8ef6e370e
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 14:56:51 +0200] rev 3747
test: update to new outputs
Mercurial core ea63a2004d09 update the hidden changeset warning during update
after the effective update.
CORE-TEST-OUTPUT-UPDATE: ea63a2004d09
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 13:07:49 +0200] rev 3746
compat: fix obslog with Mercurial 4.6+
Mercurial core 3fe1c9263024 removed the diffopts attribute on
changesetprinter. Backport consuming diffopts in the constructor for old
versions of changesetprinter and update the non-graph code to extract the
patch option and pass it directly.
Faheem Mitha <faheem@faheem.info> [Sat, 19 May 2018 18:26:36 +0530] rev 3745
debian: add line to clean-docs target to delete additional docs file
Martin von Zweigbergk <martinvonz@google.com> [Mon, 14 May 2018 15:25:38 -0700] rev 3744
amend: use context manager for locks (issue5887)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 10 May 2018 21:37:28 -0700] rev 3743
evolve: point to '--abort' in verbose status message
f6979d64b9fb (evolve: point to '--abort' in error message, 2018-04-22)
changed "hg update -C ." to "hg evolve --abort" in error
messages. This commit makes the same change in the verbose status
message (the one that warns about unfinished evolve).
There's still one mention "hg update -C" in our codebase. That's after
"hg evolve --content-divergent" fails, but I don't think "hg evolve
--abort" works in that case (yet?).
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 22 Apr 2018 20:14:42 +0530] rev 3742
evolvecmd: add comments and new lines in content-divergence handling logic
I have visited this logic three times in last 10 days and I have to re-read the
whole code to make sure I don't miss any part. Adding comments will help
understanding the code in better and fast way.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:18:54 +0530] rev 3741
evolve: show cset hash in "merging conetnt-divergent changeset"
While I was here I also mae de it repo.ui.status() instead of repo.ui.note() to
align the behavior with rest of the messages.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:14:41 +0530] rev 3740
evolve: show cset hash in "update to local conflict" message
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:11:29 +0530] rev 3739
evolve: use hg.updaterepo() instead of hg.update() to hide stats
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 19:04:18 +0530] rev 3738
evolve: fix the conflicts error message during content-divergence resolution
Before last patch, we didn't had an automated way to continue an interrupted
content-divergence resolution and we used to show a very long error message on
how to continue manually.
This patch replaces that long error message with nice small message which tells
how to continue and how to abort. We still show `hg update -C .` to abort as we
need to test and make `--abort` work in case of content-divergence.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:51:56 +0530] rev 3737
evolve: add logic to continue interrupted content-divergence resolution
We continue the interrupted content-divergence using the logic to complete
content-divergence which we refactored in it's own function few patches ago.
We had to delete evolvestate file before using cmdutil.amend() because otherwise
we can't use the function. This leads to a hack which deletes the evolvestate
file, we may want to not to use the high level API function here. Also we had to
pass evolvestate also to _completecontentdivergent function because of this.
This patch also, adds a test which demonstrates that the logic works fine.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:48:36 +0530] rev 3736
evolve: store the evolvestate file when encountering conflicts
This patch makes `hg evolve` store the evolvestate file when it encounters merge
conflicts while resolving content-divergence.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 18:13:29 +0530] rev 3735
evolve: take out logic to complete phase-divergence in separate fn
This patch takes out the logic to complete the content-divergence resolution to
it's own separate function so that we can reuse it in case of interrupted
resolution.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 29 Apr 2018 17:54:01 +0530] rev 3734
evolve: store divergent nodes in evolvestate when resolving content-divergence
We need to store the divergent nodes in evolvestate so that we can continue an
interrupted phase divergence resolution.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 May 2018 11:59:06 +0200] rev 3733
branching: merge stable into default
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 28 Apr 2018 18:44:07 +0530] rev 3732
tests: add test showing `hg evolve --stop` works fine with phase-divergence
This patch adds a new test file which contains test demonstrating that `--stop`
flag works well while resolving phase-divergence using `hg evolve`.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 28 Apr 2018 18:03:32 +0530] rev 3731
tests: rename the test file to add 'orphan' in the name
test-evolve-stop.t contains test for `hg evolve --stop` for orphan resolution
only. We also need to test the flag while resolving divergence. It will be good
if we have a test file for each type of instability.
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:28:34 +0800] rev 3730
tests: test that `hg obslog wdir()` aborts with a useful message
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:19:45 +0800] rev 3729
obshistory: make obslog work when a commit doesn't have any description
This logic is taken from logcmdutil.changesetprinter class. It checks that
commit description is not empty before extracting the first line (before this
patch it would try to index an empty list).
Stripping description also makes obslog behave more like regular log when there
are trailing/leading whitespaces.
Anton Shestakov <av6@dwimlabs.net> [Fri, 27 Apr 2018 16:14:10 +0800] rev 3728
obshistory: use a more appropriate type for obslog entries
cand is actually a regular changeset and not 'M' (graphmod.MISSINGPARENT). And
'M' is only used for graph edges, but cand is drawn as a graph node.
Visually there's no effect, but the code makes more sense this way.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:19:13 +0100] rev 3727
packaging: mark as development version
This help avoiding confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:18:19 +0100] rev 3726
branching: merge with latest release
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:16:35 +0100] rev 3725
packaking: mark as development version
This avoid confusion when installing from source.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:36 +0100] rev 3724
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:35 +0100] rev 3723
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:34 +0100] rev 3722
test-compat: merge stable into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:09:14 +0100] rev 3721
Added tag 8.0.0 for changeset 116cdd8c102a
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 14:02:43 +0100] rev 3720
packaging: update version number
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 13:55:52 +0100] rev 3719
packagin: update `tested-with` statement
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 13:49:00 +0100] rev 3718
changelog: mention 4.6 compatibility
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 11:55:49 +0100] rev 3717
Changelog: pre-version gardening
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 25 Apr 2018 01:58:45 +0100] rev 3716
testcompat: update output for Mercurial 4.3
Lets of minor update + one major update to tests/test-evolve-phase-divergence.t
since all hashed chance (different instability name).
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:23:00 +0200] rev 3715
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:11:10 +0200] rev 3714
test-compat: merge mercurial-4.5 into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:57:18 +0100] rev 3713
testcompat: revert output change from new capabilities
This new capabilities is 4.6 only.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:42:47 +0100] rev 3712
testcompat: revert output change from 54a469cd5b26
These are 4.6 only changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 08:41:57 +0100] rev 3711
testcompat: revert output change from 1de6ba0ac6d7
These are 4.6 only changes.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:10:26 +0200] rev 3710
testcompat: merge stable into mercurial-4.5
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 15:23:15 +0100] rev 3709
compat: handle different `ui.edit` signature with Mercurial 4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 16:13:42 +0100] rev 3708
wirepeer: try modern module first
This avoid some issue with remaining .pyc
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 24 Apr 2018 12:07:35 +0100] rev 3707
compat: handle lack of allpredecessors for Mercurial 4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 12:03:05 +0100] rev 3706
branching: merge further fix into stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 11:44:05 +0100] rev 3705
wrapping: fix a silly error were we checking on module and wrapping the other
...
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 23 Apr 2018 11:04:27 +0200] rev 3704
brancing: merge next release into default
We are about to release hg-evolve 8.0.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 21 Apr 2018 11:01:12 +0200] rev 3703
test-compat: open mercurial-4.5 branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 22 Apr 2018 11:40:17 +0200] rev 3702
evolve: point to '--abort' in error message
The way to escape and evolve run has been updated and we need to tell our user
about it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:27:13 +0200] rev 3701
compat: drop compatibility layer for pager
All versions we support now support `ui.pager`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:25:17 +0200] rev 3700
compat: drop compatibility layer for duplicatecopies
We no longer support version before Mercurial 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:21:44 +0200] rev 3699
compat: drop compatibility layer for bookmark.applychanges
We now only support Mercurial version down to 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:15:10 +0200] rev 3698
compat: from compatibility layer for allprecursors
We only support down to 4.3 now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:12:37 +0200] rev 3697
compat: drop compatibility layer for successorssets
We support down to Mercurial 4.3 now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:08:01 +0200] rev 3696
compat: drop compatibility wrapper for "relevantmarkers"
We no longer support version without the logic we have been adding.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:51:53 +0200] rev 3695
compat: drop compat layer for cleanupnodes
We no longer support version lower than 4.3.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:07:23 +0200] rev 3694
compat: from compatibility layer for createmarkers
We support down to 4.3 now. It supports operation.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 16:01:49 +0200] rev 3693
compat: drop obsutile layer
Mercurial 4.2 is no longer supported.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 15:59:39 +0200] rev 3692
compat: drop vfsmod compat layer
Mercurial 4.2 is no longer supported.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:26:03 +0200] rev 3691
evolve: use in code filtered error for 4.6
Things have been upstream into core for a while, let us use them instead of the
evolve version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 15:51:44 +0200] rev 3690
documentation: refer to 4.3 in the help text
Minimal version supported is now 4.3. Drop reference to 4.2 in the help.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:14:34 +0200] rev 3689
topic: remove compatibility for older version in discovery wrapping
Support for 4.1 and 4.2 has been dropped.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:01:24 +0200] rev 3688
obscache: drop compat layer to access public changeset
We can now access precomputed sets. (compat to 4.1 and 4.2 dropped)
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 14:00:12 +0200] rev 3687
obscache: drop compat layer for obsmarkers reading
We cna now use a version with the argument we needs.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 13:40:57 +0200] rev 3686
template: drop compatibility layer
Support has been dropped for 4.1 and 4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 13:35:31 +0200] rev 3685
timer: drop compat layer for time
Support for 4.1 and 4.2 has been dropped.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 11:38:13 +0200] rev 3684
compat: drop support for Mercurial 4.2
Since Mercurial 4.6 is about to be released, we drop support for 4.2 too.
(code still need to be cleaned up).
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 11:39:04 +0200] rev 3683
compat: close test-compat branch for mercurial-4.2
Support for this version have just been dropped.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 18 Apr 2018 22:54:11 -0700] rev 3682
evolve: add support for hg >= b4d85bc1
Mercurial commit b4d85bc1 deleted the wireproto module and its
contents are now in various other modules, so we can not even do
unchecked imports of it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:59:12 +0200] rev 3681
discovery: handle deletion of 'wireproto' module
Mercurial commit b4d85bc122bd. deleted the wireproto module and its
contents are now in various other modules, so we can not even do
unchecked imports of it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:55:57 +0200] rev 3680
evolve: handle wireproto module deletion for registering new commands
Module have been deleted in b4d85bc122bd. We can no longer import it blindly.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:53:59 +0200] rev 3679
minitopic: handle wireproto module change from b4d85bc122bd
This module have been scattered in other place, so we need to detect and handle
this for 4.6+
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:50:24 +0200] rev 3678
topic: handle wireproto module change from b4d85bc122bd
This module have been scattered in other place, so we need to detect and handle
this for 4.6+