Thu, 18 Jun 2015 17:57:11 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 17:57:11 -0700] rev 1388
merge with stable
Thu, 18 Jun 2015 17:56:02 -0700 evolve: update readme regarding the preview perf improvement 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
Thu, 18 Jun 2015 16:15:28 -0700 evolve: move 'allsuccessors()' to smarted usage stable
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.
Thu, 18 Jun 2015 16:15:21 -0700 evolve: move 'successors()' to smarted usage stable
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.
Thu, 18 Jun 2015 16:15:13 -0700 evolve: move 'allprecursors()' to smarted usage stable
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.
Thu, 18 Jun 2015 16:15:00 -0700 evolve: move 'precursors()' to smarted usage stable
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.
Thu, 18 Jun 2015 17:08:38 -0700 evolve: move 'suspended()' to smarted usage stable
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.
Thu, 18 Jun 2015 17:08:11 -0700 evolve: move 'troubled()' to smarted usage stable
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.
Thu, 18 Jun 2015 16:14:32 -0700 evolve: avoid creating changectx object in _allsuccessors stable
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.
Thu, 18 Jun 2015 16:14:16 -0700 evolve: avoid creating changectx object in _successors stable
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.
Thu, 18 Jun 2015 16:13:35 -0700 evolve: avoid creating changectx object in _allprecursors stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:13:35 -0700] rev 1378
evolve: avoid creating changectx object in _allprecursors The repo lookups and object creations have a significant performance overhead.
Thu, 18 Jun 2015 16:13:15 -0700 evolve: avoid creating changectx object in _precursors stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:13:15 -0700] rev 1377
evolve: avoid creating changectx object in _precursors The repo lookups and object creations have a significant performance overhead.
Thu, 18 Jun 2015 16:18:29 -0700 evolve: fix the template keyworkd decorator docstring stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 16:18:29 -0700] rev 1376
evolve: fix the template keyworkd decorator docstring It was still talking about revsets.
Thu, 18 Jun 2015 15:56:56 -0700 evolve: search divergence within all precursors stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:56:56 -0700] rev 1375
evolve: search divergence within all precursors Before this patches we looking for divergence base in immediate successors only. This was a bug leading the divergence base to be reported missing more than it should.
Thu, 18 Jun 2015 15:25:51 -0700 evolve: make sure we use an unfiltered repo when looking for divergence data stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:25:51 -0700] rev 1374
evolve: make sure we use an unfiltered repo when looking for divergence data Let's be double sure
Thu, 18 Jun 2015 15:25:51 -0700 evolve: make sure we use an unfiltered repo when looking for divergence data
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 18 Jun 2015 15:25:51 -0700] rev 1373
evolve: make sure we use an unfiltered repo when looking for divergence data Let's be double sure
Wed, 17 Jun 2015 11:31:05 -0700 directaccess: remove import from the no warning list
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 17 Jun 2015 11:31:05 -0700] rev 1372
directaccess: remove import from the no warning list removal of the list previously failed for some reason.
Wed, 17 Jun 2015 10:30:07 -0700 directaccess: add some commands to the directaccess list
Laurent Charignon <lcharignon@fb.com> [Wed, 17 Jun 2015 10:30:07 -0700] rev 1371
directaccess: add some commands to the directaccess list Before this patch we had a limited list of commands in the directaccess list. This patch adds about 20 commands to that list: - all the read-only commands in core supporting a rev as an argument - 'outgoing': since people can use 'outgoing' to know what is going to be pushed, the output of hg outgoing should be consistent with to the output of hg push and must therefore disallow directaccess since hg push forbids it.
Tue, 16 Jun 2015 14:49:28 -0700 evolve: move test for evolve --rev ordering in a separate file
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 14:49:28 -0700] rev 1370
evolve: move test for evolve --rev ordering in a separate file evolve --rev reordering is a complicated enough topic to justify a separate test.
Tue, 16 Jun 2015 14:30:43 -0700 evolve: properly evolve stacked unstable with --rev
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 14:30:43 -0700] rev 1369
evolve: properly evolve stacked unstable with --rev Before this patch, _singlesuccessor was not returning a revision number for the case where the parent of the argument was not obsolete. This resulted in bug when testing membership with the set of revisions. This patch fixes it and adds a test.
Tue, 16 Jun 2015 10:19:17 -0700 directaccess: disable directaccess for push and serve
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:19:17 -0700] rev 1368
directaccess: disable directaccess for push and serve Before this patch, push and serve were subject to directaccess. This patch makes them throw error when trying to access hidden hashes.
Tue, 16 Jun 2015 10:08:48 -0700 directaccess: change rule from opt-in to opt-out
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:08:48 -0700] rev 1367
directaccess: change rule from opt-in to opt-out Before this patch we would opt-in commands for direct access and the default filter for new repository was 'visible'. With this patch, the default filter for new repos is 'visible-directaccess-warn'. It means that by default all the commands have directaccess with warnings.
Tue, 16 Jun 2015 10:07:51 -0700 inhibit: move transaction wrapping outside of repo setup
Laurent Charignon <lcharignon@fb.com> [Tue, 16 Jun 2015 10:07:51 -0700] rev 1366
inhibit: move transaction wrapping outside of repo setup Before this patch, transaction wrapping code was done in reposetup. It happened to cause stackoverflows in repos with a lot of subreps. This patch moves the wrapping to extsetup and avoids this problem.
Mon, 15 Jun 2015 17:44:12 -0700 tests: ignores other core output in capability testing
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Jun 2015 17:44:12 -0700] rev 1365
tests: ignores other core output in capability testing This will avoid breaking the test anytime core changes.
Wed, 20 May 2015 12:46:13 -0700 evolve: make uncommit respect allowunsable
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 12:46:13 -0700] rev 1364
evolve: make uncommit respect allowunsable Before this patch, the uncommit command was performing the same way regardless of the value of experimental.evolution. With this patch if the configuration does not allow unstability, uncommit won't create instability.
Sat, 13 Jun 2015 11:14:07 -0700 directaccess: use cached filteredrevs
Laurent Charignon <lcharignon@fb.com> [Sat, 13 Jun 2015 11:14:07 -0700] rev 1363
directaccess: use cached filteredrevs Before this patch we were calling directly repoview.computehidden(repo) to compute the revisions visible with direct access, without going through the caching mechanism for the filtered revisions. There was two issues with that: (1) Performance: We were not leverating the cached values of the 'visible' revs (2) Stability: If there were to be a cache inconsistency with the computation of 'visible' we would crash in the branchmap consistency check partial.validfor. Consider the scenario of rebase with bookmarks: - when we delete a bookmark on an obsolete changeset (like what rebase does when moving the bookmark after rebasing the changesets) - then this changes the value returned by repoview.computehidden(repo) as bookmarks are used as dynamic blockers in repoview.computehidden(repo) - as of now, we don't invalidate the cache in the case of bookmark change - if we have a cached value from before the bookmark change, repoview.filterrevs(repo, 'visible') considers the cached value correct and returns something different than repoview.computehidden(repo) - in turn, if we use repoview.computehidden(repo) in directaccess, the subset relationship is broken and the cache consistency assertion (parial.validfor) fails if branchmap.updatecache is called in this time window This patch leverages the caching infrastructure in place to speed up the computation of the filteredrevs for visible-directaccess-nowarn and visible-directaccess-warn. Incidentally it prevents the bug discussed in (2) from crashing when running a rebase with a bookmark. Note that there still needs to be a fix in core for the case discussed in (2). The test for this side of the fix (not core's fix for (2) is very hard to implement without introducing a lot of dependencies and does not belong here. It is much easier to have the test of the fix for the scenario (2) in core along with the fix.
Sat, 13 Jun 2015 11:14:27 -0700 inhibit: improve performance of transaction wrapping
Laurent Charignon <lcharignon@fb.com> [Sat, 13 Jun 2015 11:14:27 -0700] rev 1362
inhibit: improve performance of transaction wrapping Before this patch, transaction wrapping was the most expensive part of inhibit computation wise. This patch changes the revset that we use in the transaction wrapping to make it ~50x faster to compute: revset #0: obsolete() - hidden() 0) wall 0.000214 comb 0.000000 user 0.000000 sys 0.000000 (best of 11209) vs revset #0: (not hidden()) and obsolete() 0) wall 0.010965 comb 0.010000 user 0.010000 sys 0.000000 (best of 237)
Thu, 04 Jun 2015 16:49:16 -0700 evolve: extract the code computing dependencies in a separate function
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 16:49:16 -0700] rev 1361
evolve: extract the code computing dependencies in a separate function The code to compute dependencies between unstable changeset can be reused to compute the next reveset. This patch extracts it in its own function to make it reusable.
Thu, 04 Jun 2015 10:01:02 -0700 directaccess: add mechanism to load directaccess after some other extensions
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 10:01:02 -0700] rev 1360
directaccess: add mechanism to load directaccess after some other extensions directaccess needs to load after some extensions to avoid interfering with them. This patch adds a mechanism to specify what extension directaccess needs to load after.
Tue, 02 Jun 2015 15:24:12 -0700 evolve: add another test for evolve --rev
Laurent Charignon <lcharignon@fb.com> [Tue, 02 Jun 2015 15:24:12 -0700] rev 1359
evolve: add another test for evolve --rev This patch adds one test for three conditions not covered before: - evolve --rev on a stack with obsolete commits without successors - evolve --rev on two sets of stacks in parallel - evolve --rev on a set of stack partially solvable (because all of the commits of the stack are not specified with --rev)
Tue, 02 Jun 2015 15:23:50 -0700 evolve: add a more complex test for evolve --rev
Laurent Charignon <lcharignon@fb.com> [Tue, 02 Jun 2015 15:23:50 -0700] rev 1358
evolve: add a more complex test for evolve --rev The previous tests of evolve --rev would have passed with an ordering of revs by increasing revision numbers. This patch adds a test that would fail if that was what we were doing and therefore tests the implementation better.
Thu, 04 Jun 2015 13:35:12 -0700 evolve: add ordering of the revisions for evolve --rev
Laurent Charignon <lcharignon@fb.com> [Thu, 04 Jun 2015 13:35:12 -0700] rev 1357
evolve: add ordering of the revisions for evolve --rev When running evolve --rev we want to process the revisions in an optimal fashion to solve the maximum amount of trouble in the minimum number of steps. This patch adds a step to evolve --rev to order the revision before solving the troubles. A simple test is added to cover a basic case.
Thu, 04 Jun 2015 13:26:58 -0700 test: adapt to change in mercurial core
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Jun 2015 13:26:58 -0700] rev 1356
test: adapt to change in mercurial core Bundle2 is one by default and more capability have been added.
Wed, 03 Jun 2015 16:01:28 -0700 evolve: add directaccess to the setup.py
Laurent Charignon <lcharignon@fb.com> [Wed, 03 Jun 2015 16:01:28 -0700] rev 1355
evolve: add directaccess to the setup.py directaccess was missing from the list so that when we were building evolve it was not contained in the build.
Mon, 01 Jun 2015 12:29:12 -0700 evolve: don't crash on singled out revisions
Laurent Charignon <lcharignon@fb.com> [Mon, 01 Jun 2015 12:29:12 -0700] rev 1354
evolve: don't crash on singled out revisions Before this patch, we were crashing on unsolvable revisions when using evolve --rev. This patch removes the crash and prints a warning when we encounter such revision.
Mon, 01 Jun 2015 10:58:50 -0700 test: adapt test to less frequent branch warning
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 10:58:50 -0700] rev 1353
test: adapt test to less frequent branch warning The 701df761aa94 changeset in mercurial core made the branch warning issue only for the first branch created. We adapt the tests to reflect this change.
Mon, 01 Jun 2015 10:56:49 -0700 tests: adapt summary output to 6084926366b9
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 10:56:49 -0700] rev 1352
tests: adapt summary output to 6084926366b9 The 'summary' commands recently gained phases related output, 6084926366b9 put it into a "final" state. We adapt the test to this new style.
Wed, 27 May 2015 10:23:37 -0700 evolve: small refactoring of the uncommit function
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 10:23:37 -0700] rev 1351
evolve: small refactoring of the uncommit function We introduce a new variable to simplify the implementation of hg uncommit --interactive.
Wed, 13 May 2015 09:46:34 -0700 evolve: improve error message
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:46:34 -0700] rev 1350
evolve: improve error message We add a new line and change the wording from 'revsets' to 'revisions'.
Wed, 13 May 2015 09:43:36 -0700 evolve: move return statement at the right level
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:43:36 -0700] rev 1349
evolve: move return statement at the right level When no trouble was found with the --rev option, the code of the evolve function would continue running and would solve unwanted troubles. This patch makes sure it does not happen.
Wed, 27 May 2015 14:00:01 -0700 evolve: remove extra whitespace
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 14:00:01 -0700] rev 1348
evolve: remove extra whitespace This patch removes a whitespace at the end of a line.
Fri, 22 May 2015 10:38:16 -0700 directaccess: don't crash when evolve is not loaded
Laurent Charignon <lcharignon@fb.com> [Fri, 22 May 2015 10:38:16 -0700] rev 1347
directaccess: don't crash when evolve is not loaded Before this patch, when evolve was not loaded direct access was crashing. This patch catches the error and prevents the crash.
Wed, 20 May 2015 10:58:32 -0700 inhbit: don't crash on commit with no changes
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 10:58:32 -0700] rev 1346
inhbit: don't crash on commit with no changes Before this patch inhibit would crash when running hg amend with no changes. This patch fixes this case and adds a test to prevent regression.
Wed, 20 May 2015 13:32:32 -0700 evolve: add a test for prune --keep -r . with active bookmark
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 13:32:32 -0700] rev 1345
evolve: add a test for prune --keep -r . with active bookmark We recently changed the behavior of prune to make sure that the active bookmark stays active after prune -r . This patch adds a test for the case of prune --keep -r . that does not take the same code path.
Wed, 20 May 2015 13:23:20 -0700 Merge with stable
Laurent Charignon <lcharignon@fb.com> [Wed, 20 May 2015 13:23:20 -0700] rev 1344
Merge with stable
Thu, 14 May 2015 11:32:04 -0700 inhibit: add test to ensure that --hidden is working with inhibit
Laurent Charignon <lcharignon@fb.com> [Thu, 14 May 2015 11:32:04 -0700] rev 1343
inhibit: add test to ensure that --hidden is working with inhibit There was a concern with the transaction hook in inhibit and its potentially devastating effect when used with --hidden. The transaction hook in inhibit hides all the visible & obsolete commits when the transaction ends using the visible() and the obsolete() revset. --hidden does not change the visible() revset so it is fine. If this changes in the future and --hidden actually ends up impacting the visible() revset, this test will catch it and prevent inhibit from putting inhibition markers on all of the obsolete changesets.
Mon, 18 May 2015 17:24:38 -0700 prune: with active bookmark should stay active stable
Laurent Charignon <lcharignon@fb.com> [Mon, 18 May 2015 17:24:38 -0700] rev 1342
prune: with active bookmark should stay active hg prune with an active bookmark was deactivating the bookmark after the prune. This patch makes sure that if a bookmark was active before a "prune" operation (except prune -B) then the bookmark stays activate afterwards.
Tue, 19 May 2015 00:47:00 -0500 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 19 May 2015 00:47:00 -0500] rev 1341
merge with stable
Mon, 18 May 2015 13:58:57 -0400 evolve: migrate off of now-dead util.any stable
Augie Fackler <raf@durin42.com> [Mon, 18 May 2015 13:58:57 -0400] rev 1340
evolve: migrate off of now-dead util.any
Thu, 14 May 2015 11:23:40 -0700 inhibit: create direct access extension
Laurent Charignon <lcharignon@fb.com> [Thu, 14 May 2015 11:23:40 -0700] rev 1339
inhibit: create direct access extension Since we want to use direct access without necessarily using inhibit, this patch separates both extensions. Inhibit depends on direct access and we add a test to check that it complains if that is not the case.
Thu, 14 May 2015 15:59:06 -0700 inhibit: handle inhibit marker on stripped revision
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 14 May 2015 15:59:06 -0700] rev 1338
inhibit: handle inhibit marker on stripped revision If a revision disappear from the repo, we should not crash.
Wed, 13 May 2015 17:25:15 -0700 update README stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 13 May 2015 17:25:15 -0700] rev 1337
update README
Wed, 13 May 2015 09:03:11 -0700 evolve: don't use python sets on top of revset for evolve --rev
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 09:03:11 -0700] rev 1336
evolve: don't use python sets on top of revset for evolve --rev In --rev we were wrapping the revsets in python sets. This is wrong as the use python sets force the wrapper revision set to be computed earlier than it has to and have no order guarantee. Removing this wrapping changes a test because the ordering does not appear to be the same but the end result is the same.
Wed, 13 May 2015 08:47:27 -0700 evolve: current bookmark wrongly moving during prune (issue4559) stable
Laurent Charignon <lcharignon@fb.com> [Wed, 13 May 2015 08:47:27 -0700] rev 1335
evolve: current bookmark wrongly moving during prune (issue4559) Before this patch: prune -r <otherbookmark> also moved the current bookmark eventhough it was not related to the pruned changes. This patch fixes it and adds a test to catch regressions.
Tue, 12 May 2015 13:52:29 -0700 inhibit: direct access with and without warning on a per command basis
Laurent Charignon <lcharignon@fb.com> [Tue, 12 May 2015 13:52:29 -0700] rev 1334
inhibit: direct access with and without warning on a per command basis We introduce a new filtername visibile-directaccess-nowarn to enable direct access with no warning on a per command basis. The motivation behing this change is to display warning when attempting direct access in destructive commands.
Tue, 12 May 2015 12:26:46 -0700 inhbit: make tests work with evolution.createmarkers config
Laurent Charignon <lcharignon@fb.com> [Tue, 12 May 2015 12:26:46 -0700] rev 1333
inhbit: make tests work with evolution.createmarkers config Before this patch, the test for inhibit was assuming evolve fully running. For most of the features that inhbit enables, createmarkers is sufficient. This patch makes the test of inhibit run with the createmarkers config and only lifts it for operations in the middle of the stack.
Thu, 30 Apr 2015 17:37:11 -0700 inhibit: config to enable only direct access
Laurent Charignon <lcharignon@fb.com> [Thu, 30 Apr 2015 17:37:11 -0700] rev 1332
inhibit: config to enable only direct access Inhibit provides several features to hide instability and direct access. We want to use direct access in evolve without hiding the instability. This patch adds a config flag to enable only direct access in inhibit, when this config flag is not set or set to false we enable all the features of inhibit that don't concern direct access.
Mon, 11 May 2015 14:31:17 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 11 May 2015 14:31:17 -0700] rev 1331
merge with stable
Thu, 07 May 2015 13:20:11 -0700 bookmarks: update to use new bookmarks api via compatibility layer stable
Ryan McElroy <rmcelroy@fb.com> [Thu, 07 May 2015 13:20:11 -0700] rev 1330
bookmarks: update to use new bookmarks api via compatibility layer Tested against 3.4 and latest hg + upcoming bookmarks patches
Thu, 07 May 2015 10:54:37 -0700 simple4server: remove buggy wrapping of pull related function stable
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 07 May 2015 10:54:37 -0700] rev 1329
simple4server: remove buggy wrapping of pull related function Not only the wrapping was all buggy, but simple4server is not supposed to affect client side pull.
(0) -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip