Wed, 11 Jul 2018 15:12:01 -0700 rebase: use revnums (not nodes) for set of extinct revisions
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:12:01 -0700] rev 38673
rebase: use revnums (not nodes) for set of extinct revisions There is no need to convert extinct revisions to nodeids. Differential Revision: https://phab.mercurial-scm.org/D3942
Wed, 11 Jul 2018 15:01:47 -0700 rebase: avoid converting from nodes to revnums twice
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:01:47 -0700] rev 38672
rebase: avoid converting from nodes to revnums twice In the case where the node has successors, but none of them is an ancestor of the destination, we would iterate over the successor nodes twice, check if they're in the repo and convert them to revnums. I doubt it's a measureable cost, but it gets simpler this way too. Differential Revision: https://phab.mercurial-scm.org/D3941
Wed, 11 Jul 2018 15:03:39 -0700 rebase: reduce scope of a variable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:03:39 -0700] rev 38671
rebase: reduce scope of a variable Differential Revision: https://phab.mercurial-scm.org/D3940
Thu, 12 Jul 2018 08:22:28 -0700 context: rename descendant() to isancestorof()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 08:22:28 -0700] rev 38670
context: rename descendant() to isancestorof() This makes the direction much clearer, IMO. Differential Revision: https://phab.mercurial-scm.org/D3936
Thu, 12 Jul 2018 09:25:02 -0700 copies: delete now-unnecessary check for "a == b" before "a.descendant(b)"
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 09:25:02 -0700] rev 38669
copies: delete now-unnecessary check for "a == b" before "a.descendant(b)" Unnecessary since 879cbdde63df (revlog: do inclusive descendant testing (API), 2018-06-21). Differential Revision: https://phab.mercurial-scm.org/D3935
Thu, 12 Jul 2018 08:14:21 -0700 revlog: delete isdescendantrev() in favor of isancestorrev()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Jul 2018 08:14:21 -0700] rev 38668
revlog: delete isdescendantrev() in favor of isancestorrev() As agreed on by Boris, Yuya, and me on D3929. Differential Revision: https://phab.mercurial-scm.org/D3934
Sat, 30 Jun 2018 12:42:49 +0530 rebase: add --confirm option
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 30 Jun 2018 12:42:49 +0530] rev 38667
rebase: add --confirm option This feature adds a functionality in rebase to confirm before applying changes. When there is no conflict and user confirm to apply actions, we just finish the unfinished rebase. But when there is a conflict and user confirm to apply actions then we can't just finish rebasing using rbsrt._finishrebase() because in-memory merge doesn't support conflicts, so we have to abort and run on-disk merge in this case. And if user doesn't confirm to apply actions then simply abort the rebase. Differential Revision: https://phab.mercurial-scm.org/D3870
Wed, 11 Jul 2018 16:29:23 -0700 revlog: introduce a isancestorrev() and use it in rebase
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:29:23 -0700] rev 38666
revlog: introduce a isancestorrev() and use it in rebase Differential Revision: https://phab.mercurial-scm.org/D3931
Wed, 11 Jul 2018 16:37:30 -0700 revlog: make isdescendantrev(a, b) check if a < b
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:37:30 -0700] rev 38665
revlog: make isdescendantrev(a, b) check if a < b This check was taken from rebase.py. It seems to make sense to move it here, but I haven't done any measurements. Differential Revision: https://phab.mercurial-scm.org/D3930
Wed, 11 Jul 2018 16:21:41 -0700 revlog: replace descendant(b, a) by isdescendantrev(a, b) (API)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:21:41 -0700] rev 38664
revlog: replace descendant(b, a) by isdescendantrev(a, b) (API) The "is" is to match "isancestor" and to make it clear that it doesn't return a descendant. The "rev" is to make it clear that it's not about nodeids (unlike e.g. isancestor()). The argument order change is just seems more natural (and makes isancestor() less confusing). Differential Revision: https://phab.mercurial-scm.org/D3929
Wed, 11 Jul 2018 16:27:40 -0700 revlog: move comment about commonancestorsheads where it's used
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 16:27:40 -0700] rev 38663
revlog: move comment about commonancestorsheads where it's used Differential Revision: https://phab.mercurial-scm.org/D3928
Wed, 11 Jul 2018 13:02:06 -0700 removeemptydirs: add test for `hg split` inside a disappearing directory
Kyle Lippincott <spectral@google.com> [Wed, 11 Jul 2018 13:02:06 -0700] rev 38662
removeemptydirs: add test for `hg split` inside a disappearing directory Differential Revision: https://phab.mercurial-scm.org/D3927
Wed, 11 Jul 2018 14:28:13 +0100 fncache: avoid loading the filename cache when not actually modifying it
Martijn Pieters <mj@zopatista.com> [Wed, 11 Jul 2018 14:28:13 +0100] rev 38661
fncache: avoid loading the filename cache when not actually modifying it With time, fncache can become very large. The mozilla-central repo for example, has a 31M and growing fncache file. Loading this file takes time (280ms for the mozilla-central repository). In many scenarios, we don't need to load fncache at all. For example, when committing changes to existing files, or pushing such commits to another clone. This patch detects when a name is added via store.vfs(), and only loads the cache if a) the data metadata file doesn't already exist, or b) when opening for appending, the data or metadata file exists but has size (a transaction rollback leaves behind such files). Benchmarks (run on Macos 10.13 on a 2017-model Macbook Pro with Core i7 2.9GHz and flash drive), each test without and with patch run 5 times: * committing to an existing file, against the mozilla-central repository. Baseline real time average 2.3736, with patch 1.9884. * unbundling a large changeset consisting *only* of existing-file modifications (159 revisions, 1050 modifications, mozilla-central 4a250a0e4f29:beea9ac7d823), into a clone limited to the ancestor revision of that revset). Baseline real time average 1.5048, with patch 1.3108.
Wed, 11 Jul 2018 16:11:33 +0200 tests: add diff color trailing whitespace test
Sune Foldager <cryo@cyanite.org> [Wed, 11 Jul 2018 16:11:33 +0200] rev 38660
tests: add diff color trailing whitespace test
Wed, 11 Jul 2018 13:40:50 -0400 scmutil: fix shortesthexnodeidprefix on Python 3 for 0-prefixed nodes
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 13:40:50 -0400] rev 38659
scmutil: fix shortesthexnodeidprefix on Python 3 for 0-prefixed nodes This fixes test-bookmarks.t on Python 3 (which had regressed.) Differential Revision: https://phab.mercurial-scm.org/D3926
Wed, 11 Jul 2018 12:36:37 -0400 tests: add missing b prefix in test-context.py
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 12:36:37 -0400] rev 38658
tests: add missing b prefix in test-context.py # skip-blame just a b prefix Differential Revision: https://phab.mercurial-scm.org/D3925
Wed, 11 Jul 2018 11:43:22 -0400 manifest: just duplicate the definition of items as iteritems
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 11:43:22 -0400] rev 38657
manifest: just duplicate the definition of items as iteritems The forwarding trick was failing test-check-interfaces on Python 3. Duplicating a line of code is easy enough I'm doing that rather than try and figure out what's going on in any kind of detail. Differential Revision: https://phab.mercurial-scm.org/D3924
Wed, 11 Jul 2018 11:41:14 -0400 tests: properly sort imports in test-nointerrupt.t
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 11:41:14 -0400] rev 38656
tests: properly sort imports in test-nointerrupt.t Somehow this was only detected in Python 3. Differential Revision: https://phab.mercurial-scm.org/D3923
Wed, 11 Jul 2018 11:34:41 -0400 revlog: adjust doctest examples to be portable to Python 3
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 11:34:41 -0400] rev 38655
revlog: adjust doctest examples to be portable to Python 3 The range() builtin returns a special object rather than a list, but we really wanted a list in these examples. Differential Revision: https://phab.mercurial-scm.org/D3922
Wed, 11 Jul 2018 13:41:47 -0400 py3: whitelist 3 more passing tests caught with the ratchet
Augie Fackler <augie@google.com> [Wed, 11 Jul 2018 13:41:47 -0400] rev 38654
py3: whitelist 3 more passing tests caught with the ratchet Differential Revision: https://phab.mercurial-scm.org/D3921
Tue, 10 Jul 2018 22:55:30 +0900 grep: hide cryptic revision number by default
Yuya Nishihara <yuya@tcha.org> [Tue, 10 Jul 2018 22:55:30 +0900] rev 38653
grep: hide cryptic revision number by default I believe nobody would want to see the "2147483647:" prefix while grepping working directory files. The wdir revision is still visible if "-r wdir()" is specified since a revset may point to more than one revisions, and it seems confusing to change the visibility dynamically by the number of the matched revisions. Differential Revision: https://phab.mercurial-scm.org/D3920
Wed, 11 Jul 2018 22:06:04 +0900 grep: restore pre-9ef10437bb88 behavior, enable wdir search by tweakdefaults
Yuya Nishihara <yuya@tcha.org> [Wed, 11 Jul 2018 22:06:04 +0900] rev 38652
grep: restore pre-9ef10437bb88 behavior, enable wdir search by tweakdefaults Unfortunately, python-hglib relies on the original grep behavior and is documented as such. Even though we agreed to introduce the BC, we shouldn't break existing libraries. So this patch flips the default again and move the new default to ui.tweakdefaults. We could instead use HGPLAIN to turn this flag off, but that would be rather confusing as the old/new behaviors are quite different. Differential Revision: https://phab.mercurial-scm.org/D3919
Wed, 11 Jul 2018 21:51:47 +0900 grep: add config knob to enable/disable the default wdir search
Yuya Nishihara <yuya@tcha.org> [Wed, 11 Jul 2018 21:51:47 +0900] rev 38651
grep: add config knob to enable/disable the default wdir search This allows us to conditionally enable the new behavior to unbreak python-hglib. See the next patch. The config option is undocumented since the --all-files is still experimental and isn't fully implemented. It can be moved to [experimental] if that's preferred. Differential Revision: https://phab.mercurial-scm.org/D3918
Wed, 11 Jul 2018 21:35:31 +0900 grep: search working directory files by default if --all-files is specified
Yuya Nishihara <yuya@tcha.org> [Wed, 11 Jul 2018 21:35:31 +0900] rev 38650
grep: search working directory files by default if --all-files is specified The default was -rtip:0 before, but "--all-files -rtip:0" would be the most useless combination, and it isn't supported yet. Let's change the default to something useful. This isn't flagged as BC since --all-files isn't released. Differential Revision: https://phab.mercurial-scm.org/D3917
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip