Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 19 Apr 2018 10:50:24 +0200] rev 3678
topic: handle wireproto module change from b4d85bc122bd
This module have been scattered in other place, so we need to detect and handle
this for 4.6+
Martin von Zweigbergk <martinvonz@google.com> [Wed, 18 Apr 2018 22:36:54 -0700] rev 3677
obsexchange: remove unused import of wireprotoserver
This seems to be unused since 300d7d019b9.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 18 Apr 2018 10:08:05 +0200] rev 3676
compat: rename resolvepartialhexnodeid to resolvehexnodeidprefix
The name changed in 5f8f013e7d52
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 19:42:46 +0200] rev 3675
compat: access datestr in a way compatible with verison prior to 4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 19:42:26 +0200] rev 3674
compat: fallback to compatible partial lookup prior to 4.6
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 18:30:56 +0200] rev 3673
import: adapt to fd1dd79cff20
With the latest state of the code, the patch is passed to "import try one" as
parsed.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 18:10:53 +0200] rev 3672
import: grab the expected node value on the fly
We no longer parse the patch beforehand this will reduce inconsistency with
newer API.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 17:58:12 +0200] rev 3671
import: use a less direct approach to store the expected node
This will help later refactoring.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 15:45:58 +0200] rev 3670
compat: adapt `amend --patch` to the new `patch.extract` API
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Apr 2018 15:04:15 +0200] rev 3669
compat: deal with change in the wireproto module
Martin von Zweigbergk <martinvonz@google.com> [Mon, 16 Apr 2018 12:46:23 -0700] rev 3668
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 20:18:10 +0200] rev 3667
topic: allow '.' in topic names
This is also commonly used.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 16 Apr 2018 10:58:06 -0700] rev 3666
relocate: look up partial nodeids in unfiltered repo
This accidentally changed to using the filtered repo in commit
0f0f3135.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 17:11:27 +0200] rev 3665
compat: avoid using partial node ID in lookup
This is getting deprecated in 4.6.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 16 Apr 2018 00:05:54 +0200] rev 3664
test: apply output change from protocaps
CORE-TEST-OUTPUT-UPDATE: afcfdf53e4b5
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 15 Apr 2018 23:24:03 +0200] rev 3663
test: update output to match upstream
The exact wording for filtered error has been changed.
CORE-TEST-OUTPUT-UPDATE: ecd3f6909184
Martin von Zweigbergk <martinvonz@google.com> [Fri, 13 Apr 2018 09:26:28 -0700] rev 3662
evolve: don't pass stringified int to repo.__getitem__
We were doing repo['-1'], which is now deprecated. Switch to
repo['tip'], which is much clearer anyway (I initially thought this
was nullrev and sent an incorrect patch until Pierre-Yves corrected
me).
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 11 Apr 2018 07:23:34 +0200] rev 3661
patch: offer the user a chance to fix the patch if it fails to apply
The experience is still not great, but better than purely dropping the changes.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 23:48:06 +0530] rev 3660
amend: add a new flag `--patch` to `hg amend`
This patch adds a new flag `--patch` to `hg amend` which pops up an editor with
the patch of working directory parent which you can change, and when you exit
the editor the patch with changes is applied to current working directory with
old changeset being obsoleted in favour of new one created by the applied patch.
If supplied filenames, only those filenames are present in the popped editor and
rest files stay the same way in the commit as they were.
The extension of the file which opens up in editor is '.diff', we cannot have it
as '.patch' as there will be develwarns related to that. We need to change to
patch core and undo some change to achieve this.
The implementation does not use any core API rather it has picked chunks from
API which are required. One main reason to not use core import API is that we
have to change wdir parent before using patch.patch() which I will like to avoid
to make sure we handle merge cases too. While writing this patch I have spend
lot of time try to use internal API's to work for this but none of them served
the purpose well. If I have time in future and work on similar problem again, I
am going to write better high-level API's which uses patchstore to achieve this.
A new test file test-amend-patch.t which contains a lot of testing of the
feature.
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Apr 2018 13:30:28 +0800] rev 3659
stablerangecache: include units in ui.progress() calls
Anton Shestakov <av6@dwimlabs.net> [Thu, 12 Apr 2018 13:28:30 +0800] rev 3658
stablerange: include units in ui.progress() calls
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 20:00:43 +0530] rev 3657
tests: add test demonstarting issue5833 is fixed
Previous patch which fixed issue5832 also fixed issue5833 as the root cause for
both was same. This patch adds test of issue5833 as well.
CHANEGLOG entry is also added for the fixed issues.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 20:13:27 +0530] rev 3656
utility: convert node from MultipleSuccessorsError to rev numbers (issue5832)
utility.builddependencies() deals with rev numbers but MultipleSuccessorsError
returns nodeid which breaks the function and also breaks instability resolution.
Previou patch demonstrate the breakage. This patch makes sure we convert those
nodeids to rev numbers before processing ahead.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 15:35:57 +0530] rev 3655
tests: add a test demonstarting issue5832 traceback
The traceback will be fixed in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 14:56:27 +0530] rev 3654
CHANGELOG: add an entry about `hg evolve --abort`
Previous patches added a new flag `--abort` for `hg evolve` which aborts an
interrupted evolve. Currently this only works for orphan resolution cases which
is very common and most people use `evolve` for that. So let's add an entry
about that.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 17:34:51 +0530] rev 3653
evolve: restore bookmarks correctly after `hg evolve --abort`
This patch adds logic to store bookmark movements in evolvestate class and
restore bookmarks to their original place if `hg evolve --abort` is called.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 17:42:32 +0530] rev 3652
topic-ext: restrict the format of topic names
This patch restrict the format of topic names to make sure they consist only of
alphanumeric, '_' and '-' characters.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Apr 2018 23:42:47 +0530] rev 3651
serverminitopic: wrap context.changectx.branch instead of context.changectx
Recently some changes in core resulted in this wrapping of class leading to an
infinite recursion. Let's wrap the particular function instead of wrapping the
whole command.
This fixes test-minitopic.t which was breaking.
Boris Feld <boris.feld@octobus.net> [Fri, 06 Apr 2018 17:53:41 +0200] rev 3650
templatekw: remove obsfatedata templatekw
Individuals fields are available in core as single template functions.
Kyle Lippincott <spectral@google.com> [Thu, 29 Mar 2018 13:01:05 -0700] rev 3649
evolve: do not exit 1 when there are no troubled changesets (issue5823)
There are possibly other cases we also do not wish to exit non-zero for in this
function, but I did not analyze them closely and am just looking at resolving
issue5823.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 06 Apr 2018 17:54:58 +0200] rev 3648
changelog: add an entry about the memory fixes
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:37:22 +0800] rev 3647
safeguard: use self instead of repo in noautopublishrepo.checkpush()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:36:36 +0800] rev 3646
stablerangecache: use self instead of repo in stablerangerepo.stablerange()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Anton Shestakov <av6@dwimlabs.net> [Fri, 06 Apr 2018 14:26:24 +0800] rev 3645
obscache: use self instead of repo in obscacherepo.updatecaches()
Referring to repo here was somehow preventing it from being garbage-collected
(important in hgweb, where currently every request gets a new repo).
Boris Feld <boris.feld@octobus.net> [Wed, 04 Apr 2018 16:29:48 +0200] rev 3644
templatekw: fix templatedata for 46
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 31 Mar 2018 11:53:09 +0200] rev 3643
style: fix a couple of pyflakes complains
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 16:43:28 +0530] rev 3642
evolve: add a `--abort` flag for `hg evolve` command
This patch adds a new flag `--abort` to `hg evolve` command which will abort the
interrupted evolve going on undoes the changes created by the evolve command
till now. The changes are bookmark movements, creation of evolved commits,
obsolete the old commits in favor of evolved commits.
In case when user changed things while the interrupted evolve, like did some
actions which created a new commit on top of evolved commits, or changed phase
of evolved commits to public, the evolve fails to abort as we should not strip
out the new commit formed by user neither we can strip the public changeset. The
abort fails and tell user to use `hg evolve --stop` instead.
Right now bookmark movement is broken, and will be fixed in upcoming patches.
Tests are added for the new flag.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 29 Mar 2018 16:38:00 +0530] rev 3641
evolve: don't allow updating or commiting when there is interrupted evolve
We should make things simple in the starting and restrict user from doing things
which can lead to problems.
This is same as the rebase behavior.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:47:49 +0530] rev 3640
evolve: internationalize the entry of --list in hg evolve help
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:37:10 +0530] rev 3639
evolve: add evolvestate as an argument to _finalizerelocate()
This will help us to store bookmark changes to evolvestate to revert them in
case when `hg evolve --abort` is called.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:33:54 +0530] rev 3638
evolve: add evolvestate as an argument to evolvecmd.relocate()
This will help us in passing it to _finalizerelocate() and store the bookmark
changes which happend.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 17:13:08 +0530] rev 3637
tests: add test about handling phase-divergent merges
We don't handle phase-divergent merges and we should. Upcoming patches will add
the ability to handle them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 14:11:13 +0530] rev 3636
evolve: show a message when evolution leads to no changes to commit
In case of orphan resolution, evolution may result in no changes to commit. This
patch adds a use message in such cases. This is same as the rebase behavior.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 13:48:34 +0530] rev 3635
evolve: pass the instability category to relocate() and _finalizerelocate()
This patch adds category argument to relocate() and _finalizerelocate()
functions to take the type of instability which we are processing so that we
perform actions accordingly.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Mar 2018 12:56:35 +0530] rev 3634
tests: add more tests for solving phase-divergence using `hg evolve`
This patch adds more tests for resolving phase-divergence caused due to fold or
split using `hg evolve` command. The resolution in case of split is not very
good and will be fixed in upcoming patches
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 17:21:42 +0530] rev 3633
evolve: handle interrupted phase-divergence resolution gracefully
This patch adds logic to handle the interrupted phase-divergence resolution by
`hg evolve` command gracefully. We first complete the relocation of the
changeset and then do the divergence resolution. Previous functions moved
required code separate fucntions so that we can use them here.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 16:41:14 +0530] rev 3632
evolve: move logic to resolve phase-divergence in a new function
This patch moves logic which does the revert and create a commit on top of
public changeset because we need to repeat that logic while handling
continuation of `hg evolve` when there are conflicts while rebasing the
phase-divergent changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 16:38:03 +0530] rev 3631
evolve: store the precursor of phase-divergent in evolvestate
This patch makes `hg evolve` store the precursor of phase-divergent changeset in
evolvestate so that we don't need to calculate that again.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 13:17:05 +0530] rev 3630
evolve: move logic to complete interrupted relocation to new fn
This moves logic which completed the interrupted relocation to it's own separate
function as we will need that function in continuing phase-divergence and
content-divergence too.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 24 Mar 2018 12:58:12 +0530] rev 3629
evolve: move logic to complete interrupted orphan resolution to new fn
This patch moves logic which completes an interrupted orphan resolution to it's
own new function. We will defining such functions for completing
phase-divergence and content-divergence too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 19:36:08 +0530] rev 3628
evolve: write data to evolvestate in case on conflicts in phase-divergence
This patch makes phase-divergence resolution write data to evolvestate instead
of graftstate. The `evolve --continue` handling of phase-divergence is broken
which will be done in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 19:16:25 +0530] rev 3627
evolve: explicitly turn revs to list before storing into evolvestate
The cbor library which we are using cannot handle encoding and decoding Python
sets, and revs was set there. Let's convert revs explicitly to list to make sure
we don't try writing sets.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 18:58:19 +0530] rev 3626
tests: add tests of content+parent change creating phase-divergence
This patch adds tests which shows handling of phase divergence cases by `hg
evolve` command which involved content+parent change. The conflicts case is not
handled and will be fixed in upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 18:28:37 +0530] rev 3625
tests: show first line of commit message in test-evolve-phase-divergence.t
This patch adds 'firstline' filter to description in the log template.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:49:26 +0530] rev 3624
evolve: make sure bookmarks are moved after phase-divergence resolution
This patch adds logic to move bookmarks from the rebased node to the
phase-divergence resolved node.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:46:46 +0530] rev 3623
evolve: use the new rebased changeset to resolve phase-divergence
When there is a parent change in phase-divergence, `hg evolve` first rebases the
diveregent changeset on parent of public changeset and then continue the
resolution of phase-divergence *but* we used to continue with the old divergent
changeset rather than the new rebased one.
This patch makes sure we use the new rebased changeset to proceed with the
resolution. Tests changes shows that it fixes things which were broken earlier.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:21:09 +0530] rev 3622
evolvecmd: add a detailed comment and some newlines
This patch adds a detailed comment on a chunk and some newlines to make things
look better and more understandable for upcoming patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 17:20:20 +0530] rev 3621
tests: add one more test case about handling of phase-divergence by evolve
This patch adds a test case when phasedivergence is caused by rebase command and
there is parent change involved. As the tests show, we are not handling things
correctly here. Upcoming patches will fix that.
Fixing things in later patches showed there was a wrong case in one another
test which will be fixed by later patches, so let's add description on why that
test is wrong in this patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 15:27:26 +0530] rev 3620
tests: add more tests for handling of phase divergence by `hg evolve`
This patch adds more tests related to handling of phase-divergence by `hg
evolve` command.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 13:16:42 +0530] rev 3619
tests: temporary delete the merge test of handling phase divergence
This patch temporary deletes the merge test of handling phase divergence by `hg
evolve` command to that other important tests can be plugged in before this.
This will make adding more tests easy. As I say, this is temporary to ease out
adding more tests, the test will be added back.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 30 Mar 2018 19:38:55 +0200] rev 3618
tests: various comment on test-evolve-phase-divergence
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 30 Mar 2018 19:37:06 +0200] rev 3617
tests: make test-evolve-phase-divergence more descriptive
This patch adds description to what each part is doing in
test-evolve-phase-divergence.t and some commands which should be used to analyze
the divergence before resolving that.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Mar 2018 20:26:54 +0200] rev 3616
compat: use updateresult API if available
The status return is no longer a tuple, we access attribute instead.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 30 Mar 2018 20:13:06 +0200] rev 3615
compat: provide an explicit default value to the 'odiff' config
There is a devel warning about this now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Mar 2018 19:47:48 +0200] rev 3614
compat: keep passing arguments as keyword argument
Otherwise, This break with new changes in upstream Mercurial.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 29 Mar 2018 18:34:32 +0200] rev 3613
compat: search for stringmatcher in the new location
More of util has been split into sub modules.
Boris Feld <boris.feld@octobus.net> [Thu, 29 Mar 2018 14:13:13 +0200] rev 3612
rebase: update the rebase wrapping to works with hg 4.6
Mercurial core commit bd0086bd3af4 removed _makeextrafn hence breaking our
wrapping. Update the code to wrap rebaseruntime directly in a way that's
compatible with hg 4.1+.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 23 Mar 2018 09:08:21 -0700] rev 3611
compat: call current obsolete.createmarkers(), not one from load time
Other extensions may wrap obsolete.createmarkers(). If they do, we
should call their wrapped version. However, since f61a23a84dac
(compat: add wrapper for obsolete.createmarkers() that accepts
"operation" arg, 2018-03-16), we started storing the version of the
function as it was when our compat module was loaded. This broke an
extension we use internally at Google.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:44:06 +0530] rev 3610
tests: rename test-evolve-bumped to test-evolve-phase-divergence.t
While I was here, I added a heading to test mentioning what the test if for.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:39:00 +0530] rev 3609
evolve: replace bumped in function name to phasedivergence
bumped was the old name of phasedivergence. Lets replace with its new name so
that we can forget the old one.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 23 Mar 2018 12:35:37 +0530] rev 3608
evolve: drop duplicate import of rewriteutil._bookmarksupdater
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:39:18 +0100] rev 3607
obslog: more 4.1 code compatibility drop
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:38:01 +0100] rev 3606
template: drop some 4.1 compatibility code
Simplify all the things.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:35:27 +0100] rev 3605
checkheads: drop upstreamed code
Mercurial 4.2 has all the code that used to live in the evolve extensions so we
can drop it now.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:34:44 +0100] rev 3604
obslog: cleanup patch handling after 4.1 compat drop
We can remove some of your compatibility code.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:25:01 +0100] rev 3603
packaging: further mark 4.1 support as dropped
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 10:05:50 +0100] rev 3602
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 09:53:42 +0100] rev 3601
tests: extend the globing to the user name
Silly me.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 01:20:03 +0100] rev 3600
branching: close mercurial-4.1 test branch
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 15 Mar 2018 00:09:24 +0530] rev 3599
evolve: kill `--obsolete` and `--old-obsolete` flags for graft
Evolve extension used to add the couple of flags to `hg graft` command for
reasons I don't know but they were deprecated. For the functionality of `hg
graft --old-obsolete`, we have `hg grab` now which can do that.
One more reason to kill this is that we have logic to parse the graftstate,
whereas in core, we are going to change how state files are read and write.
Tweaked the tests a bit to use `hg grab` instead of these flags to make rest of
the test output consistent. Replaced an entry of `hg graft -O` in doc by `hg
grab`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:56:48 +0100] rev 3598
compat: drop support for Mercurial 4.1
This version is over 1 year old and we are dropping support for it.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:50:11 +0100] rev 3597
packaging: mark versiond as devel versions
This will help prevent confusion when installing a non-tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:49:04 +0100] rev 3596
packaging: merge stable back into default
Version have been released.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:47:09 +0100] rev 3595
packaging: mark version as devel version
This will help prevent confusion when installing non-tagged version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Mar 2018 00:45:47 +0100] rev 3594
Added tag 7.3.0 for changeset e4ac2e2c2086
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:35:18 +0100] rev 3593
test-compat: merge mercurial-4.2 into mercurial-4.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:32:54 +0100] rev 3592
test-compat: merge mercurial-4.3 into mercurial-4.2
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:18:31 +0100] rev 3591
test-compat: merge mercurial-4.4 into mercurial-4.3
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:06:17 +0100] rev 3590
test-compat: merge stable into mercurial-4.4
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 16:03:46 +0100] rev 3589
branching: merge future 7.3.0 into stable
Release belong to stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:57:53 +0100] rev 3588
tests: update test output for the stable branch
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:34:29 +0100] rev 3587
debian: add version 7.3.0 to changelog
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:32:59 +0100] rev 3586
packaging: update version numbers
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:30:06 +0100] rev 3585
changelog: prepare release 7.3.0
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:36:10 +0100] rev 3584
tests: updated tested with version
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 17:03:55 +0530] rev 3583
__init__: show some internationalization love
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 17:04:41 +0530] rev 3582
evolvecmd: show some internationalization love
Some outputs are not internationalized because I doubt that they are gonna stay
here for long.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 21 Mar 2018 16:52:46 +0530] rev 3581
utility: make sure prompt text is internationalized
This patch internationlize the prompt text by passing the into mercurial.i18n._
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 17:59:15 +0100] rev 3580
test: do not use revision number
This get confused with older version.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 19:30:51 +0100] rev 3579
compat: use mergetoolopts from commands.py
Mercurial <= 4.2 do not have cmdutils.py yet.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Mar 2018 15:24:51 +0100] rev 3578
branching: merge stable into default
Some bugfix that we could use here (also getting ready for a release).
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Mar 2018 18:41:31 +0530] rev 3577
evolve: add a `--stop` flag for `hg evolve` command
This patch adds a `--stop` flag for `hg evolve` command. The stop flag lets you
stop the evolution from where you are and let you move to other things if you
want. This fuctionality is great as user can decide to resolve conflicts later
on, stop the command execution, do something else and get back once they has
time or care about resolving them.
As implementation details, it clears the evolvestate, updates to the parent of
working directory clearing the uncommitted changes which also deletes the
mergestate.
A new test file test-evolve-stop.t is added with tests of the new flag added.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 15:20:40 -0700] rev 3576
obsexchange: make compatible with some unreleased 4.5 versions
We don't generally care to be compatible with unreleased versions of
hg, but this is just a one-line change to be compatible with a range
of commits before 158d4ecc03c8 (wireprotoserver: move all wire
protocol handling logic out of hgweb, 2018-03-08), so hopefull it can
be worth it.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 15:46:17 -0700] rev 3575
compat: make override of createmarkers work on wrapped function
If createmarkers() has been wrapped using functools.partial(), the
__code__ attribute won't exist. Fix by unwrapping partial functions. I
tried to find another attribute to use as proxy for the
"__code__.co_argcount < 6", but there were no new functions or similar
added in that commit.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 19 Mar 2018 11:18:47 -0700] rev 3574
previous/next: add -m short form for --merge
This matches core's option to `hg update`.
This patch also covers `hg next`, but test-check-commit.t only lets me
mention one of them.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 17:29:32 +0530] rev 3573
evolve: handle stabilization of merge changeset with both parents obsoleted
This patch adds logic to stabilize an orphan merge changeset having both parents
obsoleted.
The logic tries to first stabilize the merge changeset on successor of second
parent and then stabilize the new changeset formed on the successor of first
parent. We are stabilizing on second parent first and then to second parent to
preserve the first parent's successor as first parent of the merge changeset.
Conflicts can occcur and we can loose processing information, therefore we store
a variable in statefile `orphanmerge` which represents whether we are processing
a merge changeset with both parents obsoleted.
Thanks to Pierre-Yves David for suggesting this way and helping to understand
the correctness of this.
More rigourous test cases for this will be added in next patch.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 13:11:55 +0530] rev 3572
state: add __setitem__() for cmdstate class
Adding __setitem__() will help us in setting the value of variables stored in
state files using `state[key] = value` in our code which is very convenient.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 12:58:31 +0530] rev 3571
evolve: preserve the order of merge parents in `hg evolve --continue`
This patch makes sure we preserves the order of merge parents in case of `hg
evolve --continue`.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:41:51 -0700] rev 3570
topics: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:43 -0700] rev 3569
grab: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:34 -0700] rev 3568
touch: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:26 -0700] rev 3567
split: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:17 -0700] rev 3566
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:51:07 -0700] rev 3565
metaedit: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:59 -0700] rev 3564
fold: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:45 -0700] rev 3563
uncommit: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:40:28 -0700] rev 3562
evolve: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 15:50:25 -0700] rev 3561
amend: include "operation" metadata in obsmarkers
This is for the legacy handling support for "hg commit --amend"
case. I picked "amend" because it feels more natural than
"commit". Besides, and more importantly, that's consistent what core
uses.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Mar 2018 10:22:27 -0700] rev 3560
compat: add wrapper for obsolete.createmarkers() that accepts "operation" arg
I want to start passing the operation argument, but hg < 4.3 does not
support it, so we need a compat wrapper. For older hg, the operation
is simply ignored.
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Mar 2018 23:26:25 -0700] rev 3559
tests: do not glob out fixed dates
Perhaps these dates historically have not been fixed, but they seem to
be now. I got tired of not being able to use "run-tests.py -i".
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 17:00:01 +0530] rev 3558
evolve: de-duplicate some function calls
_cleanup() was called in continueevolve() and evolve() function too. Let's call
it at a single place for both the cases. Also call progresscb() outside of
conditionals to call it both times.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 16:11:22 +0530] rev 3557
evolve: move deletion of evolvestate out of continueevolve() function
We need to extract some data at evolve() function from evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 16:04:28 +0530] rev 3556
evolve: load evolvestate before passing to continueevolve()
This patch moves some code from continueevolve() to evolve() function so that we
have a loaded evolvestate present in the evolve() function for post processing.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:56:05 +0530] rev 3555
evolve: move the handling for non-continue part in else conditional
This will help us do factor out which operations we want to do for continue,
which for non-continue and which operations we want to do for both of them.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 21:21:10 +0530] rev 3554
evolve: move the logic of continuation handling of `hg evolve` in own fn
The function which defines the evolve command is pretty big with all the logic
messed up there. It's better to have individual functions for individual uses.
The movement of code will help in adding more logic to continue part in clean
way. Moreover for implementing `hg continue`, we need all continuation handling
in their own functions, so it will help there too.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:24:56 +0530] rev 3553
CHANGELOG: add an entry about next and prev being interactive
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 13:24:57 +0530] rev 3552
prev: show changeset hash in --dry-run instead of rev numbers
rev numbers can change, so it's better to show changeset hash.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 13:13:21 +0530] rev 3551
prev: prompt user to choose parent in case of multiple parents
This patch adds functionality to `hg prev` to prompt user to choose one parent
to update when multiple parents exist.
Surprisingly there were no tests for this case before this patch, I added one
with this patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 12:48:03 +0530] rev 3550
next: cleanup logic around return by returning early
In the cmdnext function, there are some conditionals which returns early and
some which sets a result value to be returned later. Let's return from all the
conditionals early.
There are if, elif and else involved, so it's sure we will end up in one of the
conditional, each conditional will return, so it's guranteed that we are
returning the correct value and returning everytime.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 12:14:39 +0530] rev 3549
next: prompt user to choose child in ambiguity in `hg next --evolve`
This patch makes `hg next --evolve` prompt user to choose a child to evolve and
update when multiple of them exists. This is improvement over previous behavior
where we used to error out saying ambiguous next unstable changeset and told
user to manually use `hg evolve -r rev`. While writing this patch, I am
personally very happy to have this feature as I have encountered this stage many
times and I wanted `next --evolve` to take care of that.
It uses the revselectionprompt thing added in earlier patches.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:56:50 +0530] rev 3548
next: move logic to evolve the children to it's own function
This patch moves the logic which evolves the children and updates to it in `hg
next --evolve` to it's own function as we want to use that again.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:46:47 +0530] rev 3547
next: prompt user to choose a children in case of ambiguity
This patch adds functionality to prompt user and ask the children to which next
should move to incase of multiple childrens. This is a very nice UI because
otherwise user has to lookup changeset hash, and then manually do `hg update` to
that. In this case we show hash and description so user can choose which one to
update easily.
It is using the interactive revision choosing functionality added in a previous
patch.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:31:13 +0530] rev 3546
next: show changeset hash in `--dry-run` instead of rev numbers
Rev numbers can change, hence we should show rev hash instead of rev numbers in
dry-run.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 18 Mar 2018 01:27:02 +0530] rev 3545
evolve: make sure we consider all cases in if-else
The part of code which is touched decides on evolution of merge changeset. We
need proper handling of each case there, so before adding logic, let's add
conditional for each case so that upcoming patches are easy to understand.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Mar 2018 14:03:41 +0100] rev 3544
tests: add more cases about stabilization of an orphaned merge commit
This patch adds three more cases related to stabilization of orphaned merge
commits.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Mar 2018 13:47:07 +0100] rev 3543
evolve: fix missing negation
Spotted by Pulkit Goyal.
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Mar 2018 12:01:07 +0100] rev 3542
evolve: clarify message for ambiguous destination from split
Message is a bit long, but should be less scary.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 18:24:22 +0530] rev 3541
evolve: prompt user to select destination for stabilization in case of split
This patch adds functionality to prompt user to select a revision when there
exists multiple stabilization destination because of split on multiple branches.
Test are also added for the feature.
I am not sure whether this is the best message which we can show, if people have
suggestions I will like to improve the messages shown in prompt.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 18:36:35 +0530] rev 3540
tests: remove some tests which are moved to dedicated files
The tests in test-unstable.t files are now moved to their dedicated file with
all the cases to that in that file. Let's delete them from here.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 11:24:35 +0530] rev 3539
next: factor out the logic to update to changeset in another function
This patch moves the logic to update to children changeset during `hg next` in a
separate function because we want to re-use the logic when we will prompt user
to choose a changeset in case of multiple childrens.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 17:59:53 +0530] rev 3538
utility: add a function to prompt user to choose a revision
This patch adds a utility function to interactively prompt user to choose a
revision to proceed in cases when there are multiple revisions which are
candidates.
The function will be used in `hg evolve`, `hg next`, `hg prev` etc. If user
feedback will be good, I plan to move it to core and use it at more possible
places.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 14 Mar 2018 17:20:20 +0530] rev 3537
tests: add a test about evolve stabilizing orphan caused by splits
There are some similar tests lying around in the test suite but they are not
well arranged. I wanted the test suite to be a goto reference for all the
behaviors till the time we get all of them documented.
Boris Feld <boris.feld@octobus.net> [Mon, 19 Mar 2018 11:36:55 +0100] rev 3536
test: fix output after rev-branch-cache has been merged
Mercurial core 2090044a288d added a new revbranchcache part which changed some
exchange-related outputs. Glob them to ease merging with old Mercurial
versions branches.
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Mar 2018 09:13:33 -0700] rev 3535
cleanup: remove duplicate import of "obsolete"
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:21:05 +0530] rev 3534
previous: fix behavior on obsolete cset when topic is involved (issue5708)
This patch fixes the behavior of `hg previous` when done on an obsolete
changeset having a successor of different topic.
The underlying code is bit messed up, I wanted to split the topic handling to
topic extension but I have postponed it to next bug.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:15:17 +0530] rev 3533
previous: add test case when it's broken on obsolete cset
This patch adds couple of tests showing `hg previous` is broken on obsolete
changeset when the successor has different topic. Upcoming patch will fix this.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 15:01:44 +0530] rev 3532
prev: fix the breakage of `hg previous` from obsolete cset
This patch fix the breakage of `hg prev` from obsolete changeset when topic is
involved. We get the topicidx of it's succesor and proceed.
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 16 Mar 2018 14:59:10 +0530] rev 3531
prev: add a test case which shows traceback when doing prev on obsolete cset
This patch adds a test which shows how `hg prev` is borken when called from a
obsolete changeset and there is an active topic. The next patch will fix that.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 19:06:14 +0530] rev 3530
tests: add more tests related to stabilization of orphaned merge commit
This patch more tests related to stabilization of orphaned merge commit.
Stabilization of a merge changeset with both the parents is not supported right
now and prints a message on how to do that. Maybe we should do that internally
as a part of `hg evolve` but I need to think about this.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 18:17:50 +0530] rev 3529
evolve: fix stabilization of orphan merge changesets in case of conflicts
As demonstrated by tests added in previous patch, if one of the parent of a
merge changeset has a new version and merge changeset gets, running `hg evolve`
to stabilize that if results in conflicts will lead to lose of other parent of
that merge changeset when we resolve conflicts and do `hg evolve --continue`.
This patch fixes the behavior, by checking whether we are continuing evolving a
merge changeset and if yes, setting the dirstate parents according to that.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 15:29:35 +0530] rev 3528
tests: add a test file of resolving orphaness of merge changesets
This patch adds a new test file named test-evolve-orphan-merge.t which contains
test cases when `hg evolve` try to stabilize a merge changeset which was orphan.
This file contains 20-30% of all the cases as we have got something to fix
before we add tests for rest of the cases. Going by this approach will make sure
we don't live unfixed cases in the test file and the test files does not become
a pile of hacks which are used to get in state when we fix the bugs.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 13 Mar 2018 20:44:51 +0530] rev 3527
grab: gracefully handle the case when we try to grab parent of wdir
Before this patch, we go all the way down to obsmarker creation logic and gets
an error saying that changeset cannot obsolete itself. We should be more smart
here and error out early saying we cannot grab that changeset.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 03 Mar 2018 23:31:46 +0530] rev 3526
grab: move the initialization of pctx variable outside of if-else
The pctx variable is used outside of the if-else but it was initialized
under the conditional statements.
Added test for the case when the initialization inside the if-else broke `hg
grab --continue`.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:32:08 +0100] rev 3525
compat: drop hack around http request handling for 4.6
The approach we used in 4.5 works again :-)
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:08:53 +0100] rev 3524
obsdiscovery: add compatibility layer to register wireproto command
Mercurial core 0b18604db95e changed the way permissions are registered.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Mar 2018 02:21:07 +0100] rev 3523
compat: pass all hgweb dispatch argument to the orig function
This make use compatible with whatever changes on this side.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Mar 2018 00:00:02 -0500] rev 3522
grab: add short version for continue and abort
Anton Shestakov <av6@dwimlabs.net> [Fri, 23 Feb 2018 20:27:17 +0800] rev 3521
obsdiscovery: include units in ui.progress() calls (issue5773)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 20:19:19 -0500] rev 3520
tests: commit tests changes missing in the previous changeset
(guess who forgot to amend)...
Boris Feld <boris.feld@octobus.net> [Sun, 04 Mar 2018 11:34:49 -0500] rev 3519
obslog: add the operation to the Obslog output
The operation is helpful when debugging a case where we don't know how we
ended up in this case while effect-flag are useful to understand what semantic
changes happens to a changeset.
Add the operation when displaying an obs-marker in the following form:
`rewritten as X using amend`
The other proposal is interesting but seems harder to internationalize and
might requires update each time we introduce new operation:
`Amended as X`
Let's use the first proposal right now.
Sean Farley <sean@farley.io> [Tue, 19 Dec 2017 13:15:00 -0600] rev 3518
serverminitopic: attempt to fix assertion for repoview in branchmap
This seems fine since we topic never impact public only caches.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:41:45 -0500] rev 3517
compat: register a version of 'obsfatedata' template that works with 4.6
Since showlist is deprecated, let us use compatlist.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:09:41 -0500] rev 3516
compat: register a version of 'troubles' template that works with 4.6 API
Since showlist is deprecated, let us use compatlist.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 04 Mar 2018 17:07:53 -0500] rev 3515
exthelper: add support for "requires" argument for template keyword
This will help use to support the new template API.
Boris Feld <boris.feld@octobus.net> [Sat, 03 Mar 2018 23:17:26 -0500] rev 3514
compat: add compat layer for date related functions
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Mar 2018 22:25:24 -0500] rev 3513
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 03 Mar 2018 22:12:35 -0500] rev 3512
compat: more straight forward alias for old template names
The template registration have significantly changed in core:7b74afec6772. We
take simpler approach to define the alias in a way that works for all versions.
Sean Farley <sean@farley.io> [Tue, 05 Dec 2017 20:45:46 -0800] rev 3511
serverminitopic: fix wrong object being passed to phase
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 19:33:20 -0500] rev 3510
legacy: respect explicit config for server.bundle1
Unconditionally disabling bundle1 is a problem for larger hosting website. We
adopt a less aggressive approach and only disable it the default would be used.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:31:08 -0500] rev 3509
branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:30:48 -0500] rev 3508
compat: only wrap wireprotoserver function if they exist
Older version does not need the wrapping so everything should be fine.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 02 Mar 2018 16:07:33 -0500] rev 3507
pure: make sure what we expect to be list are list
In the pure version, some of these object would be generator.
Boris Feld <boris.feld@octobus.net> [Mon, 26 Feb 2018 13:59:30 +0100] rev 3506
evolve: update code for not implicitly converting ctx to revision
Mercurial core 38f480502043 removed the capacity to implicitly convert
contexts to revisions using `int(ctx)`. Update Evolve code to explicitly call
rev instead.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Feb 2018 11:02:59 +0100] rev 3505
legacy-push: fix the code forbidding legacy obsmarkers pulling
changeset e69e65b2b4a9 in code remove a key try/except. We reintroduce it for
compatibility.
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Feb 2018 17:45:50 +0100] rev 3504
updatecaches: handle any new parameters to the method
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 07 Feb 2018 13:42:30 +0530] rev 3503
evolvecmd: fix broken `evolve --continue` ran after `next --evolve`
Recent series broke `evolve --continue`in cases when run after `hg next
--evolve`. The previous patch adds test demonstarting the broken behaviour, this
patch fixes that by storing the command which leads us to evolve --continue in
the evolvestate.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 07 Feb 2018 22:41:30 +0530] rev 3502
tests: add test showing `evolve --continue` after `next --evolve` is broken
Recent series fixing `hg evolve --continue` break the continue functionality
after a conflicting `hg next --evolve`. This patch adds a test to demonstrate
that. It will be fixed in the upcoming patch.
Boris Feld <boris.feld@octobus.net> [Wed, 17 May 2017 09:39:15 +0200] rev 3501
color: add some colors to evolve command itself
Boris Feld <boris.feld@octobus.net> [Wed, 14 Feb 2018 14:53:43 +0100] rev 3500
wireproto: fix *_capabilities for change of API types
Mercurial commit 2f7290555c96 introduced new types for *_capabilities, update
the code to use them.
Boris Feld <boris.feld@octobus.net> [Wed, 14 Feb 2018 09:46:56 +0100] rev 3499
obsfate: fix changeset description diff computing
Mercurial core 8b6dd3922f70 changed the mdiff.unidiff API. Add a new compat
method for all supported Mercurial versions.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 15:11:35 +0530] rev 3498
evolve: add comptability to read old evolvestate files
When a user runs `hg evolve` with old evolve where we used to write evolvestate
the old ways i.e. without using cbor, and faces conflicts, the evolve is
interrupted. If the user updates evolve before completing the evolve, that can
result in traceback as the new evolve cannot read the old evolvestate file.
The previous patch added function to read old evolvestate file and this patch
uses that when we encounter the above mentioned case.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 15:02:40 +0530] rev 3497
state: bring back the function to read old evolvestate files
Before introduction of this nice cmdstate file wrapper, we had individual
methods to write data to evolvestate file. Let's bring back the function which
used to read data from the old evolvestae file so that we can use it in next
patch for BC purposes.
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 00:02:29 +0530] rev 3496
evolve: add entry in CHANGELOG about fixed behavior of `hg evolve --continue`
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 30 Jan 2018 00:00:45 +0530] rev 3495
evolve: store the skippedrevs in evolvestate
While doing `hg evolve`, there are some revs which are skipped as they can't be
evolved. Before this patch, we did not store this information in evolvestate and
neither they were evolved, so `hg evolve --continue` will again try to stabilize
those revisions. As much time as we run `hg evolve --continue`, this will
happen which is not a good behavior.
This patch adds a skippedrevs list to evolvestate where we store such revisions
so that we don't try to stabilize them again.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 29 Jan 2018 00:09:44 +0530] rev 3494
evolve: show the updated working directory after `hg evolve --continue`
`hg evolve` shows a nice message about the new working directory when the evolve
ends but if the evolve is interrupted by conflicts and you continue the evolve
resolving the conflicts, that nice message is lost. Let's have that in case of
`--continue` too.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 28 Jan 2018 23:49:46 +0530] rev 3493
evolve: make `hg evolve --continue` respect `--confirm`
Previous patch added capability to `hg evolve --continue` to continue the rest
of the stack, not just the current revision but that was missing respecting the
`--confirm` flag which user passed earlier. This patch makes sure we respect the
`--confirm` flag.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 24 Jan 2018 13:20:18 +0530] rev 3492
evolve: make `--continue` continue evolving all remaining revisions
This patch makes `hg evolve --continue` to continue all remaining revisions
instead of just the current conflicted one.
There are some still improvements required to this behavior after which the
CHANGELOG entry will be added.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 04 Feb 2018 20:58:03 +0530] rev 3491
tests: add more tests to test-evolve-continue.t
This patch adds more tests for `hg evolve --continue`. The tests demonstrates
how the continuation handling of hg evolve is broken and the later patches fixes
that handling.
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 22 Jan 2018 18:52:27 +0530] rev 3490
evolve: handle case when newnode can be None while continuing evolve
There can be case when `hg evolve --continue` is run, when working directory is
clean and there is nothing to be included in the new commit. Let's make sure we
handle such cases correctly and obsolete the node which is evolved with parent
of wdir as successor. This is same as what rebase does.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 28 Jan 2018 19:28:08 +0530] rev 3489
tests: add tests for `hg evolve --continue`
This patch adds a new test file containing tests for `hg evolve --continue`.
The test file still does not contains all the tests related to `hg evolve
--continue` as one of the case is broken which needs to be fixed first. The case
is when resolving a conflicting evolve results in empty wdir.
Next patch will fix the traceback and then a later patch will add more tests.
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 06 Feb 2018 13:00:28 +0100] rev 3488
merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 04 Feb 2018 21:05:03 +0530] rev 3487
CHANGELOG: add an entry about resolve showing how to continue evolve