Phil Cohen <phillco@fb.com> [Fri, 08 Dec 2017 12:44:27 -0800] rev 35342
rebase: extract _assignworkingcopy
Slightly cleaner, and makes it easier to hook this in an extension.
Differential Revision: https://phab.mercurial-scm.org/D1617
Phil Cohen <phillco@fb.com> [Fri, 08 Dec 2017 15:27:58 -0800] rev 35341
rebase: disable `inmemory` if the rebaseset contains the working copy
As described in the comment, rebasing the working copy parent with in-memory
merge, and then updating to the new commit, isn't much faster because of the
extra overhead of uppdating. Best to leave it off in that case.
This commit makes deploying in-memory merge via an extension easier, because
you can just set `inmemory=True` based on some config or probability, and this
will turn off the cases where it's not desired.
Differential Revision: https://phab.mercurial-scm.org/D1616
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Dec 2017 06:40:27 +0530] rev 35340
clone: add support for storing remotenames while cloning
If `experimental.remotenames` is set to True, we store the remotenames in case
of `hg pull`. This patch adds that support to clone command also.
Differential Revision: https://phab.mercurial-scm.org/D1601
Jun Wu <quark@fb.com> [Fri, 08 Dec 2017 14:20:34 -0800] rev 35339
revset: use phasecache.getrevset to calculate public()
Other revsets like secret(), draft(), _nonpublic() are using
phasescache.getrevset already. The latter is more efficient after D1606.
So let's migrate the public() revset function too.
Tested using:
$ hg debugshell --hidden --cwd hg-committed`
In [1]: %timeit len(repo.revs('public()'))
* Before D1606: 10 loops, best of 3: 22.5 ms per loop
* Before this change, after D1606: 10 loops, best of 3: 28.6 ms per loop
* After this change: 10 loops, best of 3: 20.2 ms per loop
Therefore `public()` revset becomes even slightly faster after the data
structure change by D1606. A similar performance win could also be observed
on a large repo.
A side effect is `phasecache.getrevset` needs to take a `subset` parameter.
That was added with a default value so it won't cause BC issues.
Differential Revision: https://phab.mercurial-scm.org/D1620
Augie Fackler <augie@google.com> [Fri, 08 Dec 2017 16:14:19 -0500] rev 35338
highlight: eagerly discover plugin lexers while demandimport is off
Since highlight is only relevant for servers, it seems worthwhile to
just trigger this eagerly, which avoids really weird traceback
problems caused by demandimport messing with some of the lexer plugins.
Differential Revision: https://phab.mercurial-scm.org/D1619
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Fri, 08 Dec 2017 17:20:11 +0900] rev 35337
patch: move part of tabsplitter logic in _inlinediff
It cannot be entirely moved within _inlinediff as long as worddiff is
experimental (when turned off, matches is always an empty dict).
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35336
overlayworkingctx: invalidate the manifest cache when changing parents
This fixes problems noticeable when rebasing several commits into one
destination commit using ``--collapse``. The manifest cache needs to be cleared
each time.
Differential Revision: https://phab.mercurial-scm.org/D1244
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35335
overlayworkingctx: add `_compact()`
Alas, presence of a key in the cache isn't sufficient evidence that the file
is actually dirty.
Differential Revision: https://phab.mercurial-scm.org/D1243
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 22:26:07 -0800] rev 35334
overlayworkingctx: add ``tomemctx()``
Differential Revision: https://phab.mercurial-scm.org/D1242
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35333
overlayworkingctx: add _auditconflicts to write()
Alas, part of Mercurial's conflict detection (for file<->folder conflicts,
for example) depends on the filesystem. We don't have the filesystem with IMM,
so we have to run these checks ourselves.
Differential Revision: https://phab.mercurial-scm.org/D1241