Danny Hooper <hooper@google.com> [Thu, 02 Sep 2021 14:08:45 -0700] rev 48178
fix: reduce number of tool executions
By grouping together (path, ctx) pairs according to the inputs they would
provide to fixer tools, we can deduplicate executions of fixer tools to
significantly reduce the amount of time spent running slow tools.
This change does not handle clean files in the working copy, which could still
be deduplicated against the files in the checked out commit. It's a little
harder to do that because the filerev is not available in the workingfilectx
(and it doesn't exist for added files).
Anecdotally, this change makes some real uses cases at Google 10x faster. I
think we were originally hesitant to do this because the benefits weren't
obvious, and implementing it efficiently is kind of tricky. If we simply
memoized the formatter execution function, we would be keeping tons of file
content in memory.
Also included is a regression test for a corner case that I broke with my first
attempt at optimizing this code.
Differential Revision: https://phab.mercurial-scm.org/D11280
Danny Hooper <hooper@google.com> [Thu, 02 Sep 2021 14:07:55 -0700] rev 48177
fix: add test to demonstrate how many times tools are executed
The current implementation wastes a lot of effort invoking fixer tools more
than once on the same file name+content. It is good to track changes in this
behavior.
Differential Revision: https://phab.mercurial-scm.org/D11279
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 Jun 2021 15:00:08 +0530] rev 48176
rhg: add ui.plain() and check it before showing relative paths in status
Adds a very basic replica of `ui.plain()`.
Differential Revision: https://phab.mercurial-scm.org/D10912
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Oct 2021 18:10:04 +0530] rev 48175
rhg: add relative paths support in `rhg status`
Differential Revision: https://phab.mercurial-scm.org/D11614
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 05 Oct 2021 18:02:22 +0530] rev 48174
rhg: refactor function to relativize paths in utils
Commands like `files`, `status` supports printing relative paths. Hence we need
to re-use this code in other places too. So let's take this out from `rhg files`
into a utility function.
Next patch will make `rhg status` use it.
Differential Revision: https://phab.mercurial-scm.org/D11613
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 06 Oct 2021 13:32:07 +0530] rev 48173
hg: let extensions call the func without populating opts keys
This change is to help extensions by not forcing them to populate with
opts[b'bundle'] and opts[b'force'] when calling hg.incoming(...)
Differential Revision: https://phab.mercurial-scm.org/D11619
Arseniy Alekseyev <aalekseyev@janestreet.com> [Tue, 05 Oct 2021 16:09:20 +0100] rev 48172
rhg: in rhg cat cli, fix the long name of the --rev flag
Also tweak the help for the anonymous argument.
Differential Revision: https://phab.mercurial-scm.org/D11617
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 24 Jun 2021 14:23:11 +0530] rev 48171
rhg: fallback if tweakdefaults or statuscopies is enabled with status
`rhg status` is experimental right now and does not support all functionalities.
While the long term target is to implement them, for now we add a fallback to
have all tests pass with `rhg status` enabled.
Differential Revision: https://phab.mercurial-scm.org/D10906
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jul 2021 04:13:50 +0530] rev 48170
largefiles: partially undo 61e526585b20e2ff15f19497d0451d18fea02db8 and child
Since the largefiles dirstate is now part of transaction, we get rid of this
temporary fix which lived for ~7 years.
Differential Revision: https://phab.mercurial-scm.org/D11612
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 19 Jul 2021 04:12:14 +0530] rev 48169
largefiles: add tr backup for largefilesdirstate
This will help us in automatically restoring the largefilesdirstate if a
transaction is rolled back.
Differential Revision: https://phab.mercurial-scm.org/D11611