Thu, 07 Dec 2017 16:19:46 +0100 debugformat: add a 'debugformat' command
Boris Feld <boris.feld@octobus.net> [Thu, 07 Dec 2017 16:19:46 +0100] rev 35345
debugformat: add a 'debugformat' command The command displays basic data about all format variants registered for repo upgrades. This gives a quick way to peek into a repository format. The 'fm.write()' calls are very independent because more data will be added in later changeset. Having more separate call make the later patch clearer.
Thu, 07 Dec 2017 15:55:59 +0100 upgrade: rename 'removecldeltachain' to 'plain-cl-delta'
Boris Feld <boris.feld@octobus.net> [Thu, 07 Dec 2017 15:55:59 +0100] rev 35344
upgrade: rename 'removecldeltachain' to 'plain-cl-delta' The new naming is more descriptive of a "state" while the older one was more about "action". I'm looking into command exposing more of data about the state of the repository so "state" oriented work better there. The key has not been made public anywhere outside the debug area so it is fine to update it.
Fri, 08 Dec 2017 23:48:23 -0500 tests: glob away ' that doesn't occur on all platforms in lfs test
Augie Fackler <augie@google.com> [Fri, 08 Dec 2017 23:48:23 -0500] rev 35343
tests: glob away ' that doesn't occur on all platforms in lfs test Differential Revision: https://phab.mercurial-scm.org/D1623
Fri, 08 Dec 2017 12:44:27 -0800 rebase: extract _assignworkingcopy
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
Fri, 08 Dec 2017 15:27:58 -0800 rebase: disable `inmemory` if the rebaseset contains the working copy
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
Wed, 06 Dec 2017 06:40:27 +0530 clone: add support for storing remotenames while cloning
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
Fri, 08 Dec 2017 14:20:34 -0800 revset: use phasecache.getrevset to calculate public()
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
Fri, 08 Dec 2017 16:14:19 -0500 highlight: eagerly discover plugin lexers while demandimport is off
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
Fri, 08 Dec 2017 17:20:11 +0900 patch: move part of tabsplitter logic in _inlinediff
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).
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: invalidate the manifest cache when changing parents
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
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: add `_compact()`
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
Thu, 07 Dec 2017 22:26:07 -0800 overlayworkingctx: add ``tomemctx()``
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
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: add _auditconflicts to write()
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
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: inherit from committablectx instead of workingctx
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35332
overlayworkingctx: inherit from committablectx instead of workingctx We should find a better name for this context at some point. (mutablememctx?) Differential Revision: https://phab.mercurial-scm.org/D1240
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: add a no-op ``clearunknown()``
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35331
overlayworkingctx: add a no-op ``clearunknown()`` We no longer inherit ``workingctx``'s version, but we also don't need to do anything anymore. Differential Revision: https://phab.mercurial-scm.org/D1239
Thu, 07 Dec 2017 16:07:06 -0800 overlayworkingctx: add _manifest, files(), added(), removed(), modified()
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35330
overlayworkingctx: add _manifest, files(), added(), removed(), modified() Differential Revision: https://phab.mercurial-scm.org/D1238
Fri, 08 Dec 2017 12:14:38 -0800 rebase: rerun a rebase on-disk if IMM merge conflicts arise
Phil Cohen <phillco@fb.com> [Fri, 08 Dec 2017 12:14:38 -0800] rev 35329
rebase: rerun a rebase on-disk if IMM merge conflicts arise Differential Revision: https://phab.mercurial-scm.org/D1249
Thu, 07 Dec 2017 22:35:43 -0800 rebase: add concludememorynode(), and call it when rebasing in-memory
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 22:35:43 -0800] rev 35328
rebase: add concludememorynode(), and call it when rebasing in-memory Differential Revision: https://phab.mercurial-scm.org/D1248
Thu, 07 Dec 2017 16:07:06 -0800 rebase: pass the wctx object (IMM or on-disk) to merge.update
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35327
rebase: pass the wctx object (IMM or on-disk) to merge.update Differential Revision: https://phab.mercurial-scm.org/D1247
Thu, 07 Dec 2017 16:07:06 -0800 rebase: do not update if IMM; instead, set the overlaywctx's parents
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35326
rebase: do not update if IMM; instead, set the overlaywctx's parents Differential Revision: https://phab.mercurial-scm.org/D1246
Thu, 07 Dec 2017 16:07:06 -0800 rebase: pass wctx to rebasenode()
Phil Cohen <phillco@fb.com> [Thu, 07 Dec 2017 16:07:06 -0800] rev 35325
rebase: pass wctx to rebasenode() Differential Revision: https://phab.mercurial-scm.org/D1245
Sat, 09 Dec 2017 00:39:15 +0900 check-code: allow tabs in heredoc
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Dec 2017 00:39:15 +0900] rev 35324
check-code: allow tabs in heredoc
Fri, 08 Dec 2017 22:27:14 +0800 hgweb: rewrite `template = A and B or C` to be a proper ternary operator
Anton Shestakov <av6@dwimlabs.net> [Fri, 08 Dec 2017 22:27:14 +0800] rev 35323
hgweb: rewrite `template = A and B or C` to be a proper ternary operator
Wed, 06 Dec 2017 18:37:49 -0800 fsmonitor: fsmonitor should send wlock notifications to watchman
Eamonn Kent <ekent@fb.com> [Wed, 06 Dec 2017 18:37:49 -0800] rev 35322
fsmonitor: fsmonitor should send wlock notifications to watchman The fsmonitor extension should send state-enter and state-leave notifications to watchman when the wlock is acquired/release, respectively. This will allow watchman and watchman subscribers to customize behavior based on whether source control operations are occurring. Test Plan: Tested checkout, update and working copy changes with extension enabled. Differential Revision: https://phab.mercurial-scm.org/D1612
Wed, 06 Dec 2017 18:37:49 -0800 fsmonitor: remove watchman transaction and working copy change notifications
Eamonn Kent <ekent@fb.com> [Wed, 06 Dec 2017 18:37:49 -0800] rev 35321
fsmonitor: remove watchman transaction and working copy change notifications Remove working copy change and transaction notifications. We were relying upon callbacks on transaction function. This caused issues with lock ordering. A different approach will be adopted in a subsequent commit. Differential Revision: https://phab.mercurial-scm.org/D1611
Fri, 08 Dec 2017 16:54:59 +0900 patch: catch unexpected case in _inlinediff
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Fri, 08 Dec 2017 16:54:59 +0900] rev 35320
patch: catch unexpected case in _inlinediff If operation is neither 'diff.inserted' or 'diff.deleted', label and token won't be define. This patch explicitely catches that exception.
Fri, 08 Dec 2017 16:47:18 +0900 patch: reverse _inlinediff output for consistency
Matthieu Laneuville <matthieu.laneuville@octobus.net> [Fri, 08 Dec 2017 16:47:18 +0900] rev 35319
patch: reverse _inlinediff output for consistency
Wed, 06 Dec 2017 15:46:41 +0100 phases: drop the list with phase of each rev, always comput phase sets
Joerg Sonnenberger <joerg@bec.de> [Wed, 06 Dec 2017 15:46:41 +0100] rev 35318
phases: drop the list with phase of each rev, always comput phase sets Change the C implementation of phasecache.loadphaserevs to provide only the sets for draft and secret phase as well as the number of revisions seen. Change the pure Python implementation of the same functino to compute the sets instead of the list of phases for each revision. Change phasecache.phase to check the phase sets and assume public if the revision is in neither draft nor secret set. This is computationally slightly more expensive. Change phasecache.getrevset for public() based queries to compute the set of non-matching revisions and return the result as filtered fullreposet. A shortcut is taken when no draft or secret revision exists. Bump the module version for the changed interface contract. Overall, this saves around 16 Bytes per revision whenever the phasecache is used, for the test case in issue5691 it is around 3MB. getrevset() for a large repository is around 13% slower here, that seems an acceptable trade off. Performance impact for phase() should be similar. Differential Revision: https://phab.mercurial-scm.org/D1606
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 +3000 +10000 tip