Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:26:33 -0700] rev 1410
evolve: unify revision handling and rework error message
This changesets do a massive refactoring of the way evolve select changesets to
be evolve. We now use a two stages approach:
1) read command line argument and produce a list of revision to evolve.
2) evolve all these revisions.
This allow a much cleaner, robust and extensible code. In the process the error
message issued when there is nothing to evolve have been updated to informs
about other troubles in the repository and point at useful option to solve them.
The 'update' case is handled independently at the start of the function.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:32:54 -0700] rev 1409
evolve: move the 'update' if '.' is obsolete earlier
A big refactoring of the computation of the revision to evolve is coming. This
case won't be handled by it, so we extract it earlier.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 17:56:23 -0700] rev 1408
evolve: skip unstable changesets with multiple successorssets
We were previously crashing when encountering them, but we want to be able to
solve the other solvable troubles instead of stopping right there.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 14:18:45 -0700] rev 1407
evolve: allow multiple --rev argument
This is standard behavior for Mercurial commands.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 16:49:59 -0700] rev 1406
test-evolve: fix tests failing on some platform
We change from echo to printf to print newlines so that evolve's tests work
cross-platforms.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 16:58:38 -0700] rev 1405
evolve: prevent using --rev and --any together
Before this patch it was possible to use evolve --rev --any and it meant
evolve --rev. This patch throws an error when using evolve --rev --any.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 15:14:37 -0700] rev 1404
evolve: add selector for trouble types
This patch adds command line flags to select the kind of troubles to solve.
Before this patch evolve was solving any kind of troubled. With this patch
evolve --all and evolve --rev can be configured to only solve only some type
of troubles (divergent, bumped or unstable). To give this choice to the
user we add three new command line flags to the evolve command: --bumped,
--divergent and --unstable.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 13:57:16 -0700] rev 1403
evolve: refresh the documentation
Multiple behavior change are coming, a perfect timing to refresh the doc before
we rework it more.
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 15:08:44 -0700] rev 1402
evolve: check for uncommited change earlier
Before this patch we were checking for uncommited change multiple times and
quite late for uncommited change. This patch moves the check at the beginning
of the evolve method to avoid these shortcomings.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 12:39:15 -0700] rev 1401
merge with some old heads
Pierre-Yves David <pyd@fb.com> [Mon, 16 Jun 2014 14:31:49 -0700] rev 1400
merge with some older backport
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 12 Jun 2014 16:10:01 -0700] rev 1399
template: add a troubles keyword
This keyword list all evolution troubles that affect a changeset. Evolution
troubles can be "unstable", "divergent" and "bumped".
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 11:04:18 -0700] rev 1398
evolve: make fold aware of allowunstable
Before this patch, the fold command was performing the same way regardless of
the value of experimental.evolution.
With this patch if the configuration does not allow unstability, fold won't
create instability.
Laurent Charignon <lcharignon@fb.com> [Fri, 19 Jun 2015 11:03:51 -0700] rev 1397
evolve: make prune respect allowunsable
Before this patch, the prune command was performing the same way regardless
of the value of experimental.evolution.
With this patch if the configuration does not allow unstability, prune won't
create instability.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 10:47:02 -0700] rev 1396
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 10:44:25 -0700] rev 1395
evolve: add a hint about how to abort an evolve with conflict
The whole evolve --continue is hacky, but the way to abort it have been arcane
knowledge, carried from sith lord to its apprentice for centuries. We add a hint
to help the use discover it.
One day a clean solution will come.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:17:34 -0700] rev 1394
merge with branch closing commit
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:16:56 -0700] rev 1393
close 3.1 compat branch
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 19 Jun 2015 00:15:55 -0700] rev 1392
evolve: marks the extension as tested with 4.1
Because it is.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 23:45:37 -0700] rev 1391
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 18:05:57 -0700] rev 1390
evolve: fix default value for --confirm
Before this changes, the default was yes, unlike advertised.
The test were actually catching that so I go them updated.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 18:12:24 -0700] rev 1389
prune: use the bookmark wrapper for 3.4 compatibility
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:57:11 -0700] rev 1388
merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:56:02 -0700] rev 1387
evolve: update readme regarding the preview perf improvement
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:28 -0700] rev 1386
evolve: move 'allsuccessors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:21 -0700] rev 1385
evolve: move 'successors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:13 -0700] rev 1384
evolve: move 'allprecursors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:15:00 -0700] rev 1383
evolve: move 'precursors()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:08:38 -0700] rev 1382
evolve: move 'suspended()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:08:11 -0700] rev 1381
evolve: move 'troubled()' to smarted usage
The "new" smarted can be significantly more efficient than the old was. We
convert our revset to take advantage of that.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:14:32 -0700] rev 1380
evolve: avoid creating changectx object in _allsuccessors
The repo lookups and object creations have a significant performance overhead.
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:14:16 -0700] rev 1379
evolve: avoid creating changectx object in _successors
The repo lookups and object creations have a significant performance overhead.