Sat, 23 Mar 2019 02:10:31 +0530 evolve: add logic to handle a particular case in divergence resolution
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Mar 2019 02:10:31 +0530] rev 4442
evolve: add logic to handle a particular case in divergence resolution Case is: In content divergence, to check if the two csets are on different parent or same parent what we do is find gca of the two csets and then compare it with the singlesuccessors of two csets's parents. Now, if gca is same as singlesuccessors of both the csets then we conclude that both are on the same parent which is not totally correct as it is possible that both the parents of two csets are obsolete with a single successor. This patch adds the logic to cover the above metioned case correctly, deciding the part when we need to relocate a cset to other side while resolving the stack of divergent csets. Changes in test file demonstrate that before this patch we were not doing it right because it should have relocated every node to other side instead of just relocating the first one from the stack.
Fri, 22 Mar 2019 00:16:44 +0530 evolve: add a test reflecting wrong behaviour of content-div resolution
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Mar 2019 00:16:44 +0530] rev 4441
evolve: add a test reflecting wrong behaviour of content-div resolution This patch shows that currently the case when stack of divergent csets have different parents is not handled correctly. For a stack of csets which has different parent, right behaviour is to relocate every node before performing merge but present implementation only relocate first cset in the stack and skip relocation for the rest of csets, this is not what we expect it to do. Next patch will be about fixing this issue.
Fri, 22 Mar 2019 09:45:07 -0700 compat: add support for new arg name in memfilectx.__init__
Martin von Zweigbergk <martinvonz@google.com> [Fri, 22 Mar 2019 09:45:07 -0700] rev 4440
compat: add support for new arg name in memfilectx.__init__ This makes us compatible with 550a172a603b (memctx: rename constructor argument "copied" to "copysource" (API), 2019-03-19).
Wed, 13 Mar 2019 17:32:14 +0530 evolve: preserve compatibility for hg < 4.8 versions
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 13 Mar 2019 17:32:14 +0530] rev 4439
evolve: preserve compatibility for hg < 4.8 versions This patch make sure evolve don't break if user using a version of hg before this 7694b685bb10 patch on hg-committed.
Sat, 09 Mar 2019 19:25:34 +0530 evolve: warn user if cset desc is being lost
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 09 Mar 2019 19:25:34 +0530] rev 4438
evolve: warn user if cset desc is being lost In public divergence when merging results in same as public cset, we only create markers to solve the divergence i.e. [(public, (other,))] In this case if other cset had a desc which was different from public that will be lost. So this print out a warning message to user that desc of non-public cset is being lost. Changes in test files reflect the added behaviour.
Sun, 10 Mar 2019 18:00:08 +0100 changelog: mention latest improvement
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 10 Mar 2019 18:00:08 +0100] rev 4437
changelog: mention latest improvement
Sun, 10 Mar 2019 18:50:00 +0800 stack: make @ (current) more important than $ (some sort of unstable)
Anton Shestakov <av6@dwimlabs.net> [Sun, 10 Mar 2019 18:50:00 +0800] rev 4436
stack: make @ (current) more important than $ (some sort of unstable) Base is still ^ even if it's currently checked out.
Sat, 09 Mar 2019 13:13:53 +0800 stack: show content and phase divergent state and symbol
Anton Shestakov <av6@dwimlabs.net> [Sat, 09 Mar 2019 13:13:53 +0800] rev 4435
stack: show content and phase divergent state and symbol Replacing ' ' with '-' is just for color labels.
Sat, 09 Mar 2019 12:54:00 +0800 stack: handle external-children just like other states
Anton Shestakov <av6@dwimlabs.net> [Sat, 09 Mar 2019 12:54:00 +0800] rev 4434
stack: handle external-children just like other states This also fixes color labels: previously when external-children was combined with another state, --color=debug would show something like: [topic.stack.index topic.stack.index.current - external-children|s4] Now there is a separate label for each state.
Thu, 07 Mar 2019 22:50:56 +0800 stack: optimize revset used for stack --children
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 Mar 2019 22:50:56 +0800] rev 4433
stack: optimize revset used for stack --children Since that option needs to exclude changesets on the current stack, let's just use stack.revs (that are cached) for that and skip branch() or topic() revset. st.revs[0] is the stack base, we don't consider it actual part of stack.
Thu, 07 Mar 2019 19:13:45 +0800 stack: rename unstable -> orphan
Anton Shestakov <av6@dwimlabs.net> [Thu, 07 Mar 2019 19:13:45 +0800] rev 4432
stack: rename unstable -> orphan That's the only instability stack can currently show, but it's about to show more and showing "unstable" for one type of instability just isn't good.
Wed, 06 Mar 2019 21:47:08 +0800 evolvecmd: compatibility with older geteffectflag() that took a tuple
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 21:47:08 +0800] rev 4431
evolvecmd: compatibility with older geteffectflag() that took a tuple Before bae6f1418a95 the function took a tuple of 2 arguments instead of these 2 arguments directly.
Wed, 06 Mar 2019 21:42:32 +0800 obshistory: remove unused geteffectflag(), it's been in core since 4.4
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 21:42:32 +0800] rev 4430
obshistory: remove unused geteffectflag(), it's been in core since 4.4
Wed, 06 Mar 2019 16:56:25 +0800 compat: remove old vocabulary change fallbacks
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Mar 2019 16:56:25 +0800] rev 4429
compat: remove old vocabulary change fallbacks Mercurial 4.4 (minimal hg version evolve currently supports) already uses the new names and in fact has deprecation warnings saying that 4.4 is the last version of Mercurial to support the old names.
Thu, 07 Mar 2019 10:51:48 +0100 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 07 Mar 2019 10:51:48 +0100] rev 4428
branching: merge with stable
Thu, 07 Mar 2019 01:57:43 +0530 evolve: fix a typo from directory to dirty stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:57:43 +0530] rev 4427
evolve: fix a typo from directory to dirty
Thu, 07 Mar 2019 01:47:14 +0530 evolve: fix the dirstate after setting parents with dirty wdir (issue5930) stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:47:14 +0530] rev 4426
evolve: fix the dirstate after setting parents with dirty wdir (issue5930) Before this patch, during an interrupted evolve it can be confused about copies. This patch fix the dirstate when parents are changed using dirstate.setparents() with a dirty wdir. Changes in test file reflect the fixed behaviour.
Thu, 07 Mar 2019 01:02:05 +0530 evolve: add tests which shows evolve can get confused about copies (issue5930) stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 07 Mar 2019 01:02:05 +0530] rev 4425
evolve: add tests which shows evolve can get confused about copies (issue5930) This test demonstrate that an interrupted evolve can get confused about copies. Next patch will fix this.
Tue, 05 Mar 2019 21:15:05 +0530 test: include some documentation to describe the case briefly stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 05 Mar 2019 21:15:05 +0530] rev 4424
test: include some documentation to describe the case briefly
Tue, 05 Mar 2019 20:07:23 +0530 split: use ui.configoverride to preserve phase while commiting stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 05 Mar 2019 20:07:23 +0530] rev 4423
split: use ui.configoverride to preserve phase while commiting As we need to preserve the phase of revision which is going to be splitted into multiple revision. This patch use ui.configoverrides to temporarily overwrite the phases.new-commit config option at the time of committing a new node.
Mon, 04 Mar 2019 12:30:15 +0100 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Mar 2019 12:30:15 +0100] rev 4422
branching: merge with stable
Mon, 04 Mar 2019 11:54:49 +0100 changelog: add entries for the recent fixes stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 04 Mar 2019 11:54:49 +0100] rev 4421
changelog: add entries for the recent fixes
Mon, 04 Mar 2019 03:16:51 +0530 evolve: make sure user can recover from conflict (issue6053) stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Mar 2019 03:16:51 +0530] rev 4420
evolve: make sure user can recover from conflict (issue6053) we make sure while continuing interrupted evolve it reach to right code This patch fix the issue6053 which is about falling evolve into unrecoverable state and this is how it call fall into it: If after some rewrite operations we reach to a point where resparent for two content divergent csets is obsolete and we hit a conflict in relocation, so now if you run `hg evolve --continue` after resolving the conflict: code execution would check if wdir parent is obsolete and run solveobswdp() rather than going to continueevolve() part and there we will hit by a "abort: outstanding uncommitted merge" And same for `--abort` or `--stop` flags. Changes in tests reflect the fixed behaviour.
Mon, 04 Mar 2019 02:55:38 +0530 evolve: add test which shows unrecoverable evolve state (issue6053) stable
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 04 Mar 2019 02:55:38 +0530] rev 4419
evolve: add test which shows unrecoverable evolve state (issue6053)
Sat, 02 Mar 2019 02:34:29 +0530 evolve: add a test in pubdiv where only merging leads to conflict
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 02 Mar 2019 02:34:29 +0530] rev 4418
evolve: add a test in pubdiv where only merging leads to conflict Added a test in public divergence where both the cset are on the different parent and no conflict in relocation but in merging.
Thu, 28 Feb 2019 03:12:39 +0530 evolve: cover continue case in pubdiv when merging results in same as public
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 03:12:39 +0530] rev 4417
evolve: cover continue case in pubdiv when merging results in same as public This patch is the part of a series which is adding support of public divergence resolution of the case when merging results in same as pubic cset. Changes made in this patch cover the --continue flag for the case: when we had conflicts in merging. Modified lines in previously added tests reflects the changed behaviour. Also added some additional tests. I guess I have covered every possbile case in test-evolve-public-content-divergent.t While reviewing, if you see any test missed please let me know. (I think there is one test missed that I will send as a follow-up)
Fri, 22 Feb 2019 01:02:51 +0530 evolve: handle a case in pubic-div when merging results in same as public
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 22 Feb 2019 01:02:51 +0530] rev 4416
evolve: handle a case in pubic-div when merging results in same as public In public divergence resolution, what we do is: 1) first apply content divergence resolution 2) then phase divergent resolution on resultant node of 1) case While doing case 1 it is possible that result of merging the two csets would have same changes as public one contains. And then processing the case 2 would create an empty commit which is not something we want to do. So this patch catch that same case when merging results in same as public cset and don't create a new node, instead to solve the divergence it just add a obsmarker from "other divergent" to "public divergent" i.e. [other, (public,)] Next patch will add the continue case handling for this same case. This patch also adds the tests for the different cases which are possible for the above mentioned case. There is test for continue case too which is broken in this patch and will be fixed in next patch.
Thu, 28 Feb 2019 02:08:58 +0530 evolve: rename npublicdiv to publicnode
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 02:08:58 +0530] rev 4415
evolve: rename npublicdiv to publicnode In next patches it would make more sense to use publicnode instead of npublicdiv.
Thu, 28 Feb 2019 02:02:18 +0530 evolve: in pubdiv resolution make sure that transaction get closed
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Feb 2019 02:02:18 +0530] rev 4414
evolve: in pubdiv resolution make sure that transaction get closed Before this patch it could be possible that transaction won't get closed if res is False in the pubic divergence resolution when continuing the hg evolve.
Mon, 25 Feb 2019 22:50:24 +0530 evolve: pin the public cset to local side in merging when solving public div
Sushil khanchi <sushilkhanchi97@gmail.com> [Mon, 25 Feb 2019 22:50:24 +0530] rev 4413
evolve: pin the public cset to local side in merging when solving public div While working on public divergence, I think it would be better to pin the public cset to local side of merge for understanding and handling the future cases without any ambiguity. Changes in tests reflect the changed behaviour.
(0) -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 tip