Mon, 11 Jun 2018 20:17:56 +0530 evolve: strip the extra obsmarkers if any on `hg evolve --abort`
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 20:17:56 +0530] rev 3832
evolve: strip the extra obsmarkers if any on `hg evolve --abort` Previous patches started storing some obsmarkers which needs to stripped during `evolve --abort` which can't be stripped by stripping the new evolved changesets because they point to a node which existed before the evolution was performed. This patch adds logic to strip those obsmarkers by finding their indices in the obsstore and then stripping them.
Mon, 11 Jun 2018 20:13:36 +0530 evolve: store the obsmarkers to be deleted in evolvestate
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 20:13:36 +0530] rev 3831
evolve: store the obsmarkers to be deleted in evolvestate Sometimes, we don't create a new node and obsolete one of the old node in favour of an existing node. When user calls, `hg evolve --abort`, we need to strip that obsmarker to go back in the same old state. The obsmarker created for new node are stripped when the new nodes are stripped. This patch start storing such obsmarkers in the evolvestate so that we can delete them later if required. Right now we just store successsor and predecessor information, we might need a better obsmarker serialization techinque in future to make it more robust.
Mon, 11 Jun 2018 15:52:11 +0530 evolve: store obsmarkers to be deleted in evolvestate
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 15:52:11 +0530] rev 3830
evolve: store obsmarkers to be deleted in evolvestate There are operations which don't create a new node rather they just obsolete one of the unstable node in favour of existing one. In such cases if a further resolution leads to conflicts and user calls `evolve --abort` or `evolve --stop`, we might need to delete that obsmarker. So let's store such obsmarkers in the evolvestate.
Mon, 11 Jun 2018 15:38:43 +0530 evolve: factor out logic to merge branches in separate function
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 15:38:43 +0530] rev 3829
evolve: factor out logic to merge branches in separate function This patch moves the logic to merge branches while resolving content-divergence to a separate function. This makes code clear and better to understand.
Mon, 11 Jun 2018 01:00:57 +0530 tests: add more test of --stop while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 01:00:57 +0530] rev 3828
tests: add more test of --stop while resolving content-divergence This tests the --stop flag when conflicts occur while relocating one of the divergent changesets.
Mon, 11 Jun 2018 00:47:28 +0530 evolve: strip the relocation commit on `hg evolve --stop`
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 00:47:28 +0530] rev 3827
evolve: strip the relocation commit on `hg evolve --stop` While resolving content-divergence on multiple parents, we relocate one of the commit on the parent of another one and then merge the divergent changesets. Merging can leads to conflicts, and if user does `hg evolve --stop`, we need to strip that relocated changeset too! This patch does that. Test changes demonstrates the fix.
Mon, 11 Jun 2018 00:43:39 +0530 evolve: declare updated and pctx variables in stopevolve()
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 11 Jun 2018 00:43:39 +0530] rev 3826
evolve: declare updated and pctx variables in stopevolve() They will used in next patch.
Sun, 10 Jun 2018 22:52:11 +0530 evolve: store the old other divergent node after relocation in evolvestate
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 10 Jun 2018 22:52:11 +0530] rev 3825
evolve: store the old other divergent node after relocation in evolvestate When the content-divergent changes are on different parents and we relocate of the node to the parent of another one, we get a new other-divergent node. We still need to store the older other-divergent in evolvestate so that we can use that information.
(0) -3000 -1000 -300 -100 -30 -10 -8 +8 +10 +30 +100 +300 +1000 tip