Fri, 22 Jan 2016 21:41:59 +0900 evolve: close transaction if conflict is detected in relocate (issue4966)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 22 Jan 2016 21:41:59 +0900] rev 1594
evolve: close transaction if conflict is detected in relocate (issue4966) Before this patch, transaction is aborted, if conflict is detected at merging while "hg evolve". Since 8f2ff40fe9c9 (or 3.6) of Mercurial, aborting transaction discards all dirstate changes inside transaction scope for "transactional dirstate" (see below wiki page for detail about it). https://mercurial.selenic.com/wiki/DirstateTransactionPlan Therefore, just aborting transaction causes unchanged (and unexpected) dirstate, even though subsequent commands require dirstate changes while "hg evolve". To keep dirstate changes while "hg evolve", this patch closes current running transaction, if conflict is detected in relocate(), even though exception is raised as usual. Even though "save dirstate and restore it after aborting transaction" like shelve._aborttransaction() of Mercurial can also solve this issue, this patch chose closing transaction for similarity with failure for conflict at "hg unshelve". In addition to it, closing transaction can keep any previous (implicit) changes. In newly added test, there is an additional ancestor revision, which "will be evolved safely". It is used to examine whether failure for conflict doesn't discard already relocated revision(s) while "hg evolve". It is fact for current implementation that "hg evolve" relocates each revisions in separated transactions and already relocated ones are never discarded, even if subsequent relocation fails. Though, this examination is useful to detect unintentional regression in the future.
Sat, 23 Jan 2016 06:18:01 +0900 evolve: remove meaningless transaction nesting
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 23 Jan 2016 06:18:01 +0900] rev 1593
evolve: remove meaningless transaction nesting Before this patch, functions below nest transaction scope, even though they are invoked only inside a transaction scope created at _solveone(). - _solvebumped() - _solvedivergent() - relocate() via _solveunstable() or _solvebumped() Transaction nesting is useful for localizing "success" (e.g. one scope per commit inside wider scope for multiple committing). But such nesting is redundant for _solveone(), because there is no code path, which causes failure after successfully closing inner transaction(s). In addition to it, this nesting makes it complicated to close current transaction successfully with exception raising inside inner scope, like "hg shelve" at detection of conflicts. "tr.close()" is required at each outer scopes for such case. To remove meaningless transaction nesting, this patch replaces repo.transaction() in functions above by repo.currenttransaction(). This reuses transaction created at _solveone(). This patch also adds 'assert tr' after getting current running transaction, to avoid invocation of functions above without transaction.
Tue, 26 Jan 2016 15:42:01 -0800 evolve: extract logic to new method _evolvemerge
Shusen LIU <liushusen@fb.com> [Tue, 26 Jan 2016 15:42:01 -0800] rev 1592
evolve: extract logic to new method _evolvemerge This patch introduces a new method _evolvemerge to merge orig to dest in relocate method. This simplifies the code of the method relocate and allows us to re-use it later in the scope of the rework of 'hg evolve --continue'
Sat, 30 Jan 2016 16:53:12 +0100 test: add extra expected output
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 30 Jan 2016 16:53:12 +0100] rev 1591
test: add extra expected output (I forgot to amend...)
Fri, 22 Jan 2016 19:16:38 +0000 inhibit: make bookmark -D work with a list of bookmarks
Jeroen Vaelen <jeroen@fb.com> [Fri, 22 Jan 2016 19:16:38 +0000] rev 1590
inhibit: make bookmark -D work with a list of bookmarks `hg bookmark -D` was not accepting a list of bookmarks. This behavior was inconsistent with the behavior of `hg bookmark -d`, which does accept multiple bookmarks.
Sun, 17 Jan 2016 16:55:40 -0800 touch: prompt the user for what to do with the revived changeset
Laurent Charignon <lcharignon@fb.com> [Sun, 17 Jan 2016 16:55:40 -0800] rev 1589
touch: prompt the user for what to do with the revived changeset This patch improves our interface for reviving changesets. This patch makes touch not assume that the user wants to create divergence by default and gives a prompt instead. The prompt is skipped for changeset that have no living successor as no divergence would be created by reviving them anyway. To restore the previous behavior, one should now use the --allowdivergence flag. The prompt looks like: [10] <description> reviving this changeset will create divergence unless you make a duplicate. (a)llow divergence or (d)uplicate the changeset? a In further patches we will want to add one more choice to that prompt, for example having a marker between the old and revived nodes but no divergence displayed on the UI.
Wed, 27 Jan 2016 13:57:08 -0800 inhibit: fix compat with rebaseskipobsolete
Laurent Charignon <lcharignon@fb.com> [Wed, 27 Jan 2016 13:57:08 -0800] rev 1588
inhibit: fix compat with rebaseskipobsolete We wrap _computeobsoletenotrebased and _clearrebased to fix the following case: - Assuming that we have markers from revisions of the rebase set and destination set and that these markers are inhibited - At the end of the rebase the nodes are still visible because rebase operate without inhibition and skip these nodes Had we not have those markers to begin with the revisions could be hidden at the end of the rebase. We keep track in repo._obsoletenotrebased of the obsolete commits skipped by the rebase and lift the inhibition at the end of the rebase. We add three test cases to make sure that the edge cases are covered.
Tue, 19 Jan 2016 15:30:23 -0800 test: update with new graft output
Durham Goode <durham@fb.com> [Tue, 19 Jan 2016 15:30:23 -0800] rev 1587
test: update with new graft output Graft now has a --continue it seems. We need to update our test output.
Sun, 17 Jan 2016 22:02:44 -0800 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 17 Jan 2016 22:02:44 -0800] rev 1586
merge with stable
Sun, 17 Jan 2016 21:09:45 -0800 tests: fix change to help output
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 17 Jan 2016 21:09:45 -0800] rev 1585
tests: fix change to help output Core have made minor update to its documentation.
Thu, 14 Jan 2016 14:02:05 -0800 tests: change some double quotes to single quotes stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Jan 2016 14:02:05 -0800] rev 1584
tests: change some double quotes to single quotes Since hg core change 58f8b29c37ff (minirst: change hgrole to use single quotes, 2016-01-12)
Thu, 14 Jan 2016 12:02:38 -0800 inhibit: fix compatibility with changes in rebase
Laurent Charignon <lcharignon@fb.com> [Thu, 14 Jan 2016 12:02:38 -0800] rev 1583
inhibit: fix compatibility with changes in rebase Because we compute the obsolete revisions before calling _computeobsoletenotrebased lifting the inhibition stopped working since 8a8ee8338e6 in core. This patch makes it work again.
Sun, 10 Jan 2016 10:52:24 -0800 inhibit: fix _filterpublic
Laurent Charignon <lcharignon@fb.com> [Sun, 10 Jan 2016 10:52:24 -0800] rev 1582
inhibit: fix _filterpublic Before this patch, _filterpublic would always filter rep._obsinhibit and not its "nodes" argument. Fortunately, we always called it with repo._obsinhibit as its "nodes" argument!
Mon, 04 Jan 2016 14:01:17 -0800 debian: blacklist test-inhibit.t
Laurent Charignon <lcharignon@fb.com> [Mon, 04 Jan 2016 14:01:17 -0800] rev 1581
debian: blacklist test-inhibit.t Since we don't add inhibit to the debian packages, let's not run test-inhibit.t
Mon, 04 Jan 2016 08:39:58 -0800 evolve: duplicate evolution summary entries (issue5014)
Laurent Charignon <lcharignon@fb.com> [Mon, 04 Jan 2016 08:39:58 -0800] rev 1580
evolve: duplicate evolution summary entries (issue5014) Since we added summary entries for trouble changesets in core we don't need to display it anymore in evolve for the version of hg with the change. Tested with 3.6.1 and 3.6.2.
Sun, 03 Jan 2016 16:47:57 +0100 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Jan 2016 16:47:57 +0100] rev 1579
merge with stable
Sun, 03 Jan 2016 15:51:36 +0100 merge with the rest of stable stable
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 03 Jan 2016 15:51:36 +0100] rev 1578
merge with the rest of stable
Wed, 30 Dec 2015 03:48:11 +0530 debian: update changelog to 5.2.1 stable
Faheem Mitha <faheem@faheem.info> [Wed, 30 Dec 2015 03:48:11 +0530] rev 1577
debian: update changelog to 5.2.1
Thu, 26 Nov 2015 20:38:31 -0500 evolve: handle merge commit with single obsolete parent (issue4389)
Andrew Halberstadt <ahalberstadt@mozilla.com> [Thu, 26 Nov 2015 20:38:31 -0500] rev 1576
evolve: handle merge commit with single obsolete parent (issue4389) This handles evolving merge commits with a single obsolete parent. Merge commits with two obsolete parents are still unsupported. Note this depends on a change to merge.graft in core. Older versions of mercurial will not have this functionality. Also, test-unstable.t will fail with older versions.
Tue, 22 Dec 2015 14:11:09 +0000 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 22 Dec 2015 14:11:09 +0000] rev 1575
merge with stable
Sat, 07 Nov 2015 13:39:59 -0500 evolve: rewrite help for prune command stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:39:59 -0500] rev 1574
evolve: rewrite help for prune command
Sat, 07 Nov 2015 13:38:49 -0500 evolve: improve help for split command stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:38:49 -0500] rev 1573
evolve: improve help for split command
Sat, 07 Nov 2015 13:38:22 -0500 evolve: improve help for prev, next commands stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:38:22 -0500] rev 1572
evolve: improve help for prev, next commands
Sat, 07 Nov 2015 13:37:26 -0500 evolve: improve the confusing docstring for _orderrevs() stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 13:37:26 -0500] rev 1571
evolve: improve the confusing docstring for _orderrevs()
Sat, 07 Nov 2015 09:48:04 -0500 evolve: improve help for some debug commands stable
Greg Ward <greg@gerg.ca> [Sat, 07 Nov 2015 09:48:04 -0500] rev 1570
evolve: improve help for some debug commands
Fri, 06 Nov 2015 21:42:06 -0500 evolve: scattered typo fixes in comments, docstrings stable
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 21:42:06 -0500] rev 1569
evolve: scattered typo fixes in comments, docstrings
Mon, 14 Dec 2015 17:21:11 -0800 evolve: extract logic to new method _finalizerelocate
Shusen LIU <liushusen@fb.com> [Mon, 14 Dec 2015 17:21:11 -0800] rev 1568
evolve: extract logic to new method _finalizerelocate This patch introduces a new method _finalizerelocate to finalize current state after merge states in relocate method. This simplifies the code of the method relocate and allows us to modify it later to support a continued keywork to implement evolve state.
Mon, 14 Dec 2015 17:02:55 -0800 evolve: extract logic to new method _relocatecommit
Shusen LIU <liushusen@fb.com> [Mon, 14 Dec 2015 17:02:55 -0800] rev 1567
evolve: extract logic to new method _relocatecommit This patch introduces a new method _relocatecommit to commit current state after merge states in relocate method. This simplifies the code of the method relocate and allows us to modify it later to support a continued keywork to implement evolve state.
Thu, 17 Dec 2015 16:00:32 +0000 evolve: apply API change to 'merge.update'
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 17 Dec 2015 16:00:32 +0000] rev 1566
evolve: apply API change to 'merge.update' Mercurial core43c00ca887d1 (future 3.7) changed the signature of the 'mercurial.merge.update', this impact our code so we update it. This
Mon, 14 Dec 2015 16:29:55 -0800 debian: don't refer to deleted tests/run-tests.py in debian/rules
Martin von Zweigbergk <martinvonz@google.com> [Mon, 14 Dec 2015 16:29:55 -0800] rev 1565
debian: don't refer to deleted tests/run-tests.py in debian/rules tests/run-tests.py was deleted in 25a0c31882df (tests: remove the custom run-tests.py, 2015-11-02), but we still refer to it in debian/rules. Fix by having the user define a HGSRC variable when calling 'debuild' (with e.g '-e HGSRC=~/hg').
Fri, 11 Dec 2015 12:27:37 -0800 prune: changing bookmark argument to be a list
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Fri, 11 Dec 2015 12:27:37 -0800] rev 1564
prune: changing bookmark argument to be a list Currently prune works with a single bookmark the changes in this patch modifies the prune command to accept a list of bookmarks Also changes to inhibit module which internally calls the cmdprune function. the change is to wrap the bookmark input into a list.
Fri, 11 Dec 2015 10:42:46 -0800 prune: remove a list of bookmarks
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Fri, 11 Dec 2015 10:42:46 -0800] rev 1563
prune: remove a list of bookmarks Currently prune works with a single bookmark, the changes in this patch modifies the prune module to work with a list of bookmarks Building on this we can take a list of bookmarks as input and remove all of them in a single go
Fri, 11 Dec 2015 11:15:33 +0000 test: adapt to fix to "known" wireprotocol command
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 11:15:33 +0000] rev 1562
test: adapt to fix to "known" wireprotocol command Core fixed a bug in discovery (in b64b6fdc5c9b) and this is showing up in our test output.
Thu, 10 Dec 2015 15:55:07 -0800 evolve: renaming local variables
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Thu, 10 Dec 2015 15:55:07 -0800] rev 1561
evolve: renaming local variables Renaming local variables to be more precise, i want to store a different list of bookmarks(input-list) and it would be hard to understand what marks represents in that change therefore renaming it to repomarks. Renames mark to bookmark, which will make the changes in next patch more understandable, when it is pluraized. Also renames bookmarks (module) to bookmarksmod so as to free up the name when bookmark gets pluralized.
Thu, 10 Dec 2015 15:34:34 -0800 inhibit: backout 23a34dce5131 remove unused bookmark operation wrapping
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 15:34:34 -0800] rev 1560
inhibit: backout 23a34dce5131 remove unused bookmark operation wrapping This breaks potentially a lot of things. Let's give a change to extensions maintainers to adapt to the new bookmarks.write api before removing this code right away.
Fri, 11 Dec 2015 10:51:04 +0000 readme: add something about bookmark within transaction
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 10:51:04 +0000] rev 1559
readme: add something about bookmark within transaction
Thu, 10 Dec 2015 15:09:25 -0800 commitwrapper: use bookmarks.recordchange instead of bookmarks.write
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 15:09:25 -0800] rev 1558
commitwrapper: use bookmarks.recordchange instead of bookmarks.write Before this patch we were using the deprecated API bookmarks.write, this patch replace its usage by the new API call bookmarks.recordchange.
Thu, 10 Dec 2015 14:43:31 -0800 next: replace call to bookmarks.write by bookmarks.recordchange
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:43:31 -0800] rev 1557
next: replace call to bookmarks.write by bookmarks.recordchange bookmarks.write is now deprecated, we are moving to the new api: bookmarks.recordchange.
Thu, 10 Dec 2015 14:43:00 -0800 previous: replace call to bookmarks.write by bookmarks.recordchange
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:43:00 -0800] rev 1556
previous: replace call to bookmarks.write by bookmarks.recordchange bookmarks.write is now deprecated, we are moving to the new api: bookmarks.recordchange.
Thu, 10 Dec 2015 14:17:27 -0800 prune: use bookmarks.recordchange instead of bookmarks.write
Laurent Charignon <lcharignon@fb.com> [Thu, 10 Dec 2015 14:17:27 -0800] rev 1555
prune: use bookmarks.recordchange instead of bookmarks.write Before this patch we were using the deprecated bookmarks.write instead of bookmarks.recordchange in prune
Fri, 11 Dec 2015 10:49:29 +0000 transaction: fix release order in 'rewrite'
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Dec 2015 10:49:29 +0000] rev 1554
transaction: fix release order in 'rewrite' This was wrong for quite sometime.
Fri, 04 Dec 2015 15:28:29 -0800 check-code: make drophack comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:28:29 -0800] rev 1553
check-code: make drophack comply with check-code
Fri, 04 Dec 2015 15:28:00 -0800 check-code: make directaccess.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:28:00 -0800] rev 1552
check-code: make directaccess.py comply with check-code
Fri, 04 Dec 2015 15:31:19 -0800 check-code: make inhibit.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:31:19 -0800] rev 1551
check-code: make inhibit.py comply with check-code
Fri, 04 Dec 2015 15:31:34 -0800 check-code: make obsolete.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:31:34 -0800] rev 1550
check-code: make obsolete.py comply with check-code
Fri, 04 Dec 2015 15:21:16 -0800 check-code: make pushexperiment.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:21:16 -0800] rev 1549
check-code: make pushexperiment.py comply with check-code
Fri, 04 Dec 2015 15:19:36 -0800 check-code: make simple4server.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:19:36 -0800] rev 1548
check-code: make simple4server.py comply with check-code
Fri, 04 Dec 2015 15:10:53 -0800 check-code: make evolve.py comply with check-code
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 15:10:53 -0800] rev 1547
check-code: make evolve.py comply with check-code
Fri, 04 Dec 2015 14:00:59 -0800 evolve: fix test-inhibit to match latest hg
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:00:59 -0800] rev 1546
evolve: fix test-inhibit to match latest hg When I fixed an issue in core about rebaseset 40a2f972f26d (that I introduced before), it restored the original behavior of inhibit with rebase. This patch fixes test-inhibit to match the latest hg.
Fri, 04 Dec 2015 14:00:48 -0800 evolve: fix test-stabilize-conflict.t to match new extra computation in core
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:00:48 -0800] rev 1545
evolve: fix test-stabilize-conflict.t to match new extra computation in core Recent patches changed the way we compute extras for rebase and graft. This changes the hashes in evolve's tests. This patch fixes the test test-stabilize-conflict.t.
Fri, 04 Dec 2015 14:01:28 -0800 evolve: fix test-sharing.t to match new extra computation in core
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:01:28 -0800] rev 1544
evolve: fix test-sharing.t to match new extra computation in core Recent patches changed the way we compute extras for rebase and graft. This changes the hashes in evolve's tests. This patch fixes the test test-sharing.t
Fri, 04 Dec 2015 14:01:36 -0800 evolve: fix test-tutorial.t to match new extra computation in core
Laurent Charignon <lcharignon@fb.com> [Fri, 04 Dec 2015 14:01:36 -0800] rev 1543
evolve: fix test-tutorial.t to match new extra computation in core Recent patches changed the way we compute extras for rebase and graft. This changes the hashes in evolve's tests. This patch fixes the test test-tutorial.t
Mon, 30 Nov 2015 16:48:40 -0800 inhibit: make rebase see obsolescence even for visible nodes
Laurent Charignon <lcharignon@fb.com> [Mon, 30 Nov 2015 16:48:40 -0800] rev 1542
inhibit: make rebase see obsolescence even for visible nodes Rebase changed recently to take advantage of obsolescence markers to reduce the number of conflicts to resolve. Inhibit users were unable to leverage this new feature because none of their visible nodes could be obsolete. This patch makes the nodes that would be obsolete without inhibit, actually obsolete for the duration of the rebase to take advantage of the feature mentioned before.
Tue, 24 Nov 2015 17:16:27 -0800 inhibit: remove unused bookmark operation wrapping
Laurent Charignon <lcharignon@fb.com> [Tue, 24 Nov 2015 17:16:27 -0800] rev 1541
inhibit: remove unused bookmark operation wrapping Before this patch, inhibit was wrapping bookmarks.write and bookmarks.recordchange. Since all the usage of bookmarks.write are not replaced by bookmarks.recordchange all bookmarks operation happen in a transaction. Inhibit already wraps the transaction mechanism to make sure that no revision can end up being obsolete and visible. This makes the wrapping of bookmarks.write superfluous. Wrapping bookmarks.recordchange was wrong in the first place and redundant with wrapping transactions.
Tue, 01 Dec 2015 10:25:38 -0800 inhibit: update test with new behavior from core
Laurent Charignon <lcharignon@fb.com> [Tue, 01 Dec 2015 10:25:38 -0800] rev 1540
inhibit: update test with new behavior from core The recent changes in core (to make sure that all bookmarks write are done at the end of a transaction) changed the behavior of inhibit. When one rebases a set of hidden revs somewhere, the hidden revs become visible at the end of the rebase. Both the previous behavior and new behavior seems acceptable but the tests have to be changed subsequently. This patch modifies one of the test for inhibit when the case mentioned above happens. We prune the revs inhibited by the rebase to make the change minimal.
Thu, 19 Nov 2015 10:47:32 -0800 inhibit: remove unused import
Laurent Charignon <lcharignon@fb.com> [Thu, 19 Nov 2015 10:47:32 -0800] rev 1539
inhibit: remove unused import The error module from mercurial was imported but unused in the inhibit code.
Fri, 20 Nov 2015 10:30:42 -0800 inhibit: improve handling of error cases for bookmark -D
Laurent Charignon <lcharignon@fb.com> [Fri, 20 Nov 2015 10:30:42 -0800] rev 1538
inhibit: improve handling of error cases for bookmark -D Before this patch bookmark -D was crashing in some cases like: hg book -Dmaster-fix. This was because -m is a valid option for hg bookmark. This patch disallows using -m with -D (moving and pruning does not make much sense) and throws an error instead of crashing if the command is malformed.
Wed, 18 Nov 2015 13:47:26 -0800 directaccess: fix case of shortened hash containing only digits
Laurent Charignon <lcharignon@fb.com> [Wed, 18 Nov 2015 13:47:26 -0800] rev 1537
directaccess: fix case of shortened hash containing only digits For directaccess, there are four cases for what looks like short hashes made of digits only: 1 | the hash is a revision number and not a short hash for another revision: we don't change the visibility 2 | the hash is a revision number and a short hash for another revision: we don't change the visibility 3 | the hash is not a revision number and not a short hash for another revision: we don't change the visibility 4 | the hash is not a revision number but is a short hash for another revision: we make it visible Before the patch we were not lifting visibility in case number 4. This patch fixes the issue.
Tue, 17 Nov 2015 17:06:07 -0800 evolve: evolve --divergent failed when merge had nothing to do (issue4950)
Laurent Charignon <lcharignon@fb.com> [Tue, 17 Nov 2015 17:06:07 -0800] rev 1536
evolve: evolve --divergent failed when merge had nothing to do (issue4950) Before this patch, if the divergence resolution lead to an empty commit, the transaction would be rolled back and the divergence not resolved. This patch allows empty commits in that case. It is legitimate to end up with an empty commit in that case, for example when divergent commits differ over their commit messages.
Tue, 17 Nov 2015 20:25:15 -0800 inhibit: use dirty revset trick to speedup the inhibit search space.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 20:25:15 -0800] rev 1535
inhibit: use dirty revset trick to speedup the inhibit search space. See documentation for details. I'm a bit sad about this changesets.
Tue, 17 Nov 2015 20:19:32 -0800 inhibit: use 'repo.revs' instead of 'repo.set'
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 20:19:32 -0800] rev 1534
inhibit: use 'repo.revs' instead of 'repo.set' This skip the creation of a changectx object.
Tue, 17 Nov 2015 22:43:17 -0800 _inhibitmarkers: turn the result from generator into a list
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 17 Nov 2015 22:43:17 -0800] rev 1533
_inhibitmarkers: turn the result from generator into a list A generator object is always True, we have to turn it into a list in order to be able to use it in the tests. Before this patch we were rewriting the 'obsinhibit' file all the time, this had a performance impact especially on repository where transaction are expensive (hooks, cache invalidation, etc). Writing this file less often have a minor effect on test where a stripped changeset does not get removed from the obsinhibit file is still inhibited when unbundled back. I think this is fine and I'm moving forward.
Fri, 06 Nov 2015 21:37:38 -0500 split: drop the experimental flag
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:37:38 -0500] rev 1532
split: drop the experimental flag I've been using it without issue for some time. The only blocker in my mind was the lack of commit message preservation and this is now fixed.
Fri, 06 Nov 2015 21:34:24 -0500 split: preserve original changesets description
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:34:24 -0500] rev 1531
split: preserve original changesets description Losing the description on split is to much an issue, we offer the original description to edition for every part of the split.
Fri, 06 Nov 2015 21:15:15 -0500 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:15:15 -0500] rev 1530
merge with stable
Fri, 06 Nov 2015 21:14:35 -0500 readme: updateing changelog stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 21:14:35 -0500] rev 1529
readme: updateing changelog We forgot a couple of recent improvement.
Fri, 06 Nov 2015 15:04:45 -0500 evolve: rewrite command help (evolve command only) stable
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 15:04:45 -0500] rev 1528
evolve: rewrite command help (evolve command only)
Fri, 06 Nov 2015 18:37:16 -0500 parents: avoid locking the repository during 'hg parents' stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 06 Nov 2015 18:37:16 -0500] rev 1527
parents: avoid locking the repository during 'hg parents' The wrapping code was initially written for update and pull who need the lock anyway. We duplicated the logic in the parent case to remove the need for locking.
Fri, 06 Nov 2015 18:02:05 -0500 README: update instructions for running tests. stable
Greg Ward <greg@gerg.ca> [Fri, 06 Nov 2015 18:02:05 -0500] rev 1526
README: update instructions for running tests.
Mon, 02 Nov 2015 11:08:32 +0000 tests: remove the custom run-tests.py
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:08:32 +0000] rev 1525
tests: remove the custom run-tests.py This test-runners is a copy from the Mercurial one and slowly drift out of sync. Use the Mercurial's core test runners instead.
Mon, 02 Nov 2015 11:07:34 +0000 make: clean test related target
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:07:34 +0000] rev 1524
make: clean test related target We removed the runner, so they are broken. We can reintroduce them later with proper data to fetch an official 'run-tests.py' runner.
Mon, 02 Nov 2015 11:05:28 +0000 test: use 'dummyssh' from the run-tests directory
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:05:28 +0000] rev 1523
test: use 'dummyssh' from the run-tests directory This is a step toward not shipping our own test runners and relying on the official Mercurial one.
Mon, 02 Nov 2015 11:04:44 +0000 test: use 'killdaemons.py' from the run-tests directory
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 11:04:44 +0000] rev 1522
test: use 'killdaemons.py' from the run-tests directory This is a step toward not shipping our own test runners and relying on the official Mercurial one.
Mon, 02 Nov 2015 00:39:40 +0000 merge back with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:40 +0000] rev 1521
merge back with stable
Mon, 02 Nov 2015 00:39:23 +0000 Added tag 5.2.1 for changeset c15d6168412f stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:23 +0000] rev 1520
Added tag 5.2.1 for changeset c15d6168412f
Mon, 02 Nov 2015 00:39:06 +0000 prepare version 5.1.2 stable 5.2.1
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:39:06 +0000] rev 1519
prepare version 5.1.2
Mon, 02 Nov 2015 00:38:18 +0000 merge with default stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:38:18 +0000] rev 1518
merge with default there is some 3.6 related fix and test change that we need on default. No other significant change happened since last release expect for split, still marked experimental. So we prepare for a bugfix release.
Mon, 02 Nov 2015 00:32:44 +0000 split: mark the command as experimental
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 02 Nov 2015 00:32:44 +0000] rev 1517
split: mark the command as experimental It has a bit too many rough edge for now.
Fri, 30 Oct 2015 15:48:13 +0000 tests: run test with 3.6 and apply test change
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 15:48:13 +0000] rev 1516
tests: run test with 3.6 and apply test change Tested with 3.4, 3.5 and 3.6. Some minor test update had to be done.
Fri, 30 Oct 2015 16:04:37 +0000 prune: have dirstate collaborate with transaction
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 16:04:37 +0000] rev 1515
prune: have dirstate collaborate with transaction With 3.6, dirstate update can work with transaction to ensure proper rollback. We do it if the mercurial version permit it.
Fri, 30 Oct 2015 16:04:19 +0000 evolve: have dirstate collaborate with transaction
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 30 Oct 2015 16:04:19 +0000] rev 1514
evolve: have dirstate collaborate with transaction With 3.6, dirstate update can work with transaction to ensure proper rollback. We do it if the mercurial version permit it.
Fri, 09 Oct 2015 16:21:30 -0700 prune: reuse revset from repair instead of copy-pasting code
Ryan McElroy <rmcelroy@fb.com> [Fri, 09 Oct 2015 16:21:30 -0700] rev 1513
prune: reuse revset from repair instead of copy-pasting code
Mon, 12 Oct 2015 01:23:59 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 12 Oct 2015 01:23:59 -0700] rev 1512
merge with stable
Mon, 12 Oct 2015 01:22:41 -0700 evolve: compatibility with coming 3.6 stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 12 Oct 2015 01:22:41 -0700] rev 1511
evolve: compatibility with coming 3.6 Some function in the import stack changed, we have to adapt.
Tue, 29 Sep 2015 15:40:28 -0400 evolve: be more complete about copying extra from old revisions
Augie Fackler <raf@durin42.com> [Tue, 29 Sep 2015 15:40:28 -0400] rev 1510
evolve: be more complete about copying extra from old revisions For 'hg evolve' we want to copy all extra-level metadata except for branch. This keeps the experimental topics extension from getting obliterated by evolve runs. Many hashes in tests changed due to some extra data coming along for the ride in various places, but no functionality that was tested. It's plausible that this copies too much metadata - maybe we should be dropping rebase_src or convert_revision as well. Right now no tools do that, so I'm biasing towards preserving everything except branch when copying metadata for now.
Wed, 30 Sep 2015 23:33:00 +0900 evolve: ignore ui argument passed to help loader
Yuya Nishihara <yuya@tcha.org> [Wed, 30 Sep 2015 23:33:00 +0900] rev 1509
evolve: ignore ui argument passed to help loader The API changed at Mercurial e0c572d4d112.
Tue, 29 Sep 2015 09:47:10 -0700 directaccess: inspect trees of len() > 3
Durham Goode <durham@fb.com> [Tue, 29 Sep 2015 09:47:10 -0700] rev 1508
directaccess: inspect trees of len() > 3 Previously, when inspecting revset AST's we'd only traverse down the tree if it was length 3 ([op, left, right]). In some situations, like 'or' the tree node will be greater than length 3 ([op, first, second, ..., nth]). So we need to traverse all the parts of the node to catch all the symbols.
Mon, 21 Sep 2015 22:30:44 +0900 debugobsconvert: make sure obsstore is loaded before version comparison
Yuya Nishihara <yuya@tcha.org> [Mon, 21 Sep 2015 22:30:44 +0900] rev 1507
debugobsconvert: make sure obsstore is loaded before version comparison hg 44918682093f delays loading obsstore, so we have to access _all to get the correct store version.
Wed, 16 Sep 2015 16:50:06 -0700 evolve: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Laurent Charignon <lcharignon@fb.com> [Wed, 16 Sep 2015 16:50:06 -0700] rev 1506
evolve: use repo._bookmarks.recordchange instead of repo._bookmarks.write We want to get rid of the api repo._bookmarks.write and this patch removes its use in evolve.py. Before this patch, we were using repo._bookmarks.write to save bookmarks change immediately instead of repo._bookmarks.recordchange that write change when transaction ends.
Wed, 16 Sep 2015 17:12:38 -0700 evolve: indentation change for making next patch more legible
Laurent Charignon <lcharignon@fb.com> [Wed, 16 Sep 2015 17:12:38 -0700] rev 1505
evolve: indentation change for making next patch more legible In the next patch: "evolve: use repo._bookmarks.recordchange instead of repo._bookmarks.write" we need to add a transaction in the rewrite function. To do so adds an indentation level and makes the patch harder to review. This patch makes the indentation change so that the next patch is easier to review.
Mon, 14 Sep 2015 13:52:34 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:52:34 -0700] rev 1504
merge with stable
Mon, 14 Sep 2015 13:48:34 -0700 next/prev: properly lock repo before touching bookmarks stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:48:34 -0700] rev 1503
next/prev: properly lock repo before touching bookmarks
Mon, 14 Sep 2015 13:48:34 -0700 next/prev: properly lock repo before touching bookmarks
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:48:34 -0700] rev 1502
next/prev: properly lock repo before touching bookmarks
Mon, 14 Sep 2015 13:23:43 -0700 prune: ensure we prune bookmarks in a transaction stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Sep 2015 13:23:43 -0700] rev 1501
prune: ensure we prune bookmarks in a transaction
Thu, 10 Sep 2015 16:24:50 -0400 next: add support for --dry-run
timeless@mozdev.org [Thu, 10 Sep 2015 16:24:50 -0400] rev 1500
next: add support for --dry-run also adds support to prev
Wed, 09 Sep 2015 22:25:37 -0400 evolve: spelling uncommitted
timeless@mozdev.org [Wed, 09 Sep 2015 22:25:37 -0400] rev 1499
evolve: spelling uncommitted
Wed, 09 Sep 2015 22:23:48 -0400 evolve: annotate translatable strings with _()
timeless@mozdev.org [Wed, 09 Sep 2015 22:23:48 -0400] rev 1498
evolve: annotate translatable strings with _()
Wed, 09 Sep 2015 22:22:01 -0400 evolve: do not capitalize description of next/previous
timeless@mozdev.org [Wed, 09 Sep 2015 22:22:01 -0400] rev 1497
evolve: do not capitalize description of next/previous
Wed, 09 Sep 2015 22:13:11 -0400 evolve: _() should not contain %
timeless@mozdev.org [Wed, 09 Sep 2015 22:13:11 -0400] rev 1496
evolve: _() should not contain %
Wed, 09 Sep 2015 19:43:24 -0400 evolve: add progress for _obsrelsethashtree
timeless@mozdev.org [Wed, 09 Sep 2015 19:43:24 -0400] rev 1495
evolve: add progress for _obsrelsethashtree
Wed, 09 Sep 2015 19:43:14 -0400 evolve: add progress for the obsmarkers discovery parts
timeless@mozdev.org [Wed, 09 Sep 2015 19:43:14 -0400] rev 1494
evolve: add progress for the obsmarkers discovery parts
Wed, 09 Sep 2015 19:40:54 -0400 test-obsolete: clarify divergence detection output order
timeless@mozdev.org [Wed, 09 Sep 2015 19:40:54 -0400] rev 1493
test-obsolete: clarify divergence detection output order
Mon, 17 Aug 2015 17:01:38 -0700 directaccesss: also look for symbol into list
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 17 Aug 2015 17:01:38 -0700] rev 1492
directaccesss: also look for symbol into list revrange is now much smarted and optimise multiple simple symbol (like hash) into an efficient '_list' call. So we need to look into these to find user provided input too.
Wed, 12 Aug 2015 20:38:39 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 12 Aug 2015 20:38:39 -0700] rev 1491
merge with stable
Wed, 12 Aug 2015 10:51:20 -0700 inhibit: fix inhibit working with non-inhibit repos stable
Durham Goode <durham@fb.com> [Wed, 12 Aug 2015 10:51:20 -0700] rev 1490
inhibit: fix inhibit working with non-inhibit repos Inhibit was breaking when two repos were in memory, but one was not an inhibit repo (like when doing a local pull between two repos). The fix is to add inhibitenabled checks to all the places where inhibit does global wrapping of commands (every code path from the extsetup wrappers).
Wed, 12 Aug 2015 16:08:05 -0700 directaccess: don't try to partialmatch things that aren't hashes stable
Siddharth Agarwal <sid0@fb.com> [Wed, 12 Aug 2015 16:08:05 -0700] rev 1489
directaccess: don't try to partialmatch things that aren't hashes Trying to partialmatch identifiers like '.' turns out to be (a) pointless and (b) extremely slow. On a repo with a million commits, with directaccess enabled, hg log -r .^::. goes from 2.1 seconds to 0.5.
Mon, 10 Aug 2015 00:44:53 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:44:53 -0700] rev 1488
merge with stable
Mon, 10 Aug 2015 00:41:18 -0700 next: properly report no children when --evolve is used stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:41:18 -0700] rev 1487
next: properly report no children when --evolve is used If no aspiring children exist, 'hg next --evolve' should properly issue an error message instead of crashing.
Mon, 10 Aug 2015 00:24:15 -0700 inhibit: do not search for visible obsolete changeset during stripping stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 10 Aug 2015 00:24:15 -0700] rev 1486
inhibit: do not search for visible obsolete changeset during stripping Stripping use transaction in an unorthodox way. We should not run the inhibit postclose hooks as it can lead to crash.
Sat, 08 Aug 2015 12:42:57 -0700 split: handle bookmarks instead of leaving them on precursor
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:42:57 -0700] rev 1485
split: handle bookmarks instead of leaving them on precursor Before this patch we were leaving the bookmarks on the precursor of the split instead of moving them on the tip of the split chain. We add a test to verify the behavior.
Sat, 08 Aug 2015 12:45:36 -0700 split: don't update before it is actually needed
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:45:36 -0700] rev 1484
split: don't update before it is actually needed Before this patch, we were updating the working copy parent needlessly and before the error checking. This patch fixes the issue.
Sat, 08 Aug 2015 12:16:55 -0700 split: add more output to the test
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:16:55 -0700] rev 1483
split: add more output to the test Before this patch, we were not displaying the final graph resulting from the tests but just the obsolscencence markers. This patch adds more output to the test to make it more descriptive.
Sat, 08 Aug 2015 12:12:16 -0700 split: fix commit message numbering error in the test
Laurent Charignon <lcharignon@fb.com> [Sat, 08 Aug 2015 12:12:16 -0700] rev 1482
split: fix commit message numbering error in the test Before this patch, the test was wrong and the successors of a splitted commits all had the same commit messages. This patch makes the test right making sure that the numbering of the split successors is accurate.
Wed, 24 Jun 2015 16:27:36 -0700 evolve: handle split commit for instability
Laurent Charignon <lcharignon@fb.com> [Wed, 24 Jun 2015 16:27:36 -0700] rev 1481
evolve: handle split commit for instability
Fri, 07 Aug 2015 13:59:19 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 07 Aug 2015 13:59:19 -0700] rev 1480
merge with stable
Fri, 07 Aug 2015 11:39:51 -0700 evolve: add test for instability stable
Laurent Charignon <lcharignon@fb.com> [Fri, 07 Aug 2015 11:39:51 -0700] rev 1479
evolve: add test for instability
Thu, 18 Jun 2015 16:48:53 -0700 evolve: add a command to split commits
Laurent Charignon <lcharignon@fb.com> [Thu, 18 Jun 2015 16:48:53 -0700] rev 1478
evolve: add a command to split commits Before this patch, to split commit one had to use prune. This patch adds a new command called split that prompts the user interactively to split a given changeset with record/crecord.
Mon, 03 Aug 2015 11:29:27 -0700 merge with stable
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 11:29:27 -0700] rev 1477
merge with stable
Sat, 01 Aug 2015 22:16:26 -0400 test-inhibit: simplify push destinations for Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 01 Aug 2015 22:16:26 -0400] rev 1476
test-inhibit: simplify push destinations for Windows This was aborting because $pwd is expanding to 'C:/path/to/tests': - pushing to file://$TESTTMP/inhibit2 - abort: hidden revision '003a4735afde'! - (use --hidden to access hidden revisions) + abort: file:// URLs can only refer to localhost
Sat, 01 Aug 2015 21:54:00 -0400 test-sharing: fix globs for Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 01 Aug 2015 21:54:00 -0400] rev 1475
test-sharing: fix globs for Windows
(0) -1000 -120 +120 +1000 +3000 tip