- Dec 07, 2017
-
-
Boris Feld authored
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.
-
Boris Feld authored
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.
-
- Dec 09, 2017
-
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D1623
-
- Dec 08, 2017
-
-
Phil Cohen authored
Slightly cleaner, and makes it easier to hook this in an extension. Differential Revision: https://phab.mercurial-scm.org/D1617
-
Phil Cohen authored
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
-
- Dec 06, 2017
-
-
Pulkit Goyal authored
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
-
- Dec 08, 2017
-
-
Jun Wu authored
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 authored
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 authored
It cannot be entirely moved within _inlinediff as long as worddiff is experimental (when turned off, matches is always an empty dict).
-
Phil Cohen authored
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 authored
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 authored
Differential Revision: https://phab.mercurial-scm.org/D1242
-
Phil Cohen authored
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
-
Phil Cohen authored
We should find a better name for this context at some point. (mutablememctx?) Differential Revision: https://phab.mercurial-scm.org/D1240
-
Phil Cohen authored
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
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1238
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1249
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1248
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1247
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1246
-
Phil Cohen authored
Differential Revision: https://phab.mercurial-scm.org/D1245
-
Yuya Nishihara authored
-
Anton Shestakov authored
-
- Dec 07, 2017
-
-
Eamonn Kent authored
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
-
Eamonn Kent authored
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
-
- Dec 08, 2017
-
-
Matthieu Laneuville authored
If operation is neither 'diff.inserted' or 'diff.deleted', label and token won't be define. This patch explicitely catches that exception.
-
Matthieu Laneuville authored
-
- Dec 06, 2017
-
-
Jörg Sonnenberger authored
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
-
- Dec 08, 2017
-
-
Jörg Sonnenberger authored
Revisions are added consecutively, so a range can easily represent them in the changes list. This saves around 45 Bytes / revision on 64bit platforms and reduces the memory footprint of issue5691 by 15MB. Don't copy changes['revs'] in getobsoleted. Ranges have a very efficient contains implementation already. Differential Revision: https://phab.mercurial-scm.org/D1615
-
- Dec 06, 2017
-
-
Augie Fackler authored
This is a little risky, as I think we can have some encoding weirdness crop up. showfunc also isn't the most robust feature, but it's still often useful context... Differential Revision: https://phab.mercurial-scm.org/D1610
-
Augie Fackler authored
This was part of the original proposal, and while *I* don't like the curses interface, most users anecdotally seem to greatly prefer it to plain text interfaces. Differential Revision: https://phab.mercurial-scm.org/D1609
-
Boris Feld authored
This changeset make use of the ability of the set discovery to only search common changeset for a subset of the repository. Restricting that search to the pushed set avoid potential waste of time finding out the status of many unrelated related revision. Repository with many heads were especially badly affected by this. Here is an example of findcommonhead discovery for pushing 11 outgoing changeset on a repository with tens of thousand of unrelated heads. (discovery run over a ssh link to localhost). Before: queries: 92 time: 44.1996s After: queries: 3 time: 0.6938s A x63 speedup even with a network link without latency.
-
Boris Feld authored
Currently, the push discovery first determines the full set of common nodes before looking into what changesets are outgoing. When pushing a specific subset, this can lead to pathological situations where we search for the status of thousand of local heads that are unrelated to the requested pushes. To fix this, we need to teach the discovery to ignores part of the graph. Most of the necessary pieces were already in place. This changeset just makes them available to higher level API and tests them. Change actually impacting pushes are coming in a later changeset.
-
- Dec 07, 2017
-
-
Boris Feld authored
The extensions wrap the necessary function to ensure the 'largefiles' requirements won't be dropped. It is now possible to run `hg debugupgraderepo` on a repository with largefiles.
-
Boris Feld authored
Some requirement does not directly result from config and needs more advanced logic to be preserved. The current example is 'largefiles'. We add a hook point in the upgrade code so that extensions can handle these cases. The 'largefiles' extension will use it in the next changeset.
-
- Sep 22, 2016
-
-
Yuya Nishihara authored
This is the same behavior as ancestors(emptyset).
-
Yuya Nishihara authored
This seems natural given 'log -frREV' (with no file pattern) is equivalent to 'log -frREV *'.
-
Yuya Nishihara authored
Also renamed the argument from 'pattern' to 'file' conforming to followlines().
-
Yuya Nishihara authored
The diff might look slightly complicated, but the initial "c = repo['.']" was effective if rev = None.
-
Yuya Nishihara authored
-