Wed, 13 Sep 2017 21:15:46 -0700 show: use consistent (and possibly shorter) node lengths
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 13 Sep 2017 21:15:46 -0700] rev 34203
show: use consistent (and possibly shorter) node lengths `hg show` makes heavy use of shortest() to limit the length of the node hash. For the "stack" and "work" views, you are often looking at multiple lines of similar output for "lines" of work. It is visually appeasing for things to vertically align. A naive use of {shortest(node, N)} could result in variable length nodes and for the first character of the description to vary by a column or two. We implement a function to determine the longest shortest prefix for a set of revisions. The new function is used to determine the printed node length for all `hg show` views. .. feature:: show: use consistent node length in views Our previous shortest node length of 5 was arbitrarily chosen. shortest() already does the work of ensuring that a partial node isn't ambiguous with an integer revision, which is our primary risk of a collision for very short nodes. It should be safe to go with the shortest node possible. Existing code is also optimized to handle nodes as short as 4. So, we decrease the minimum hash length from 5 to 4. We also add a test demonstrating that prefix collisions increase the node length. .. feature:: show: decrease minimum displayed hash length from 5 to 4 Differential Revision: https://phab.mercurial-scm.org/D558
Thu, 03 Aug 2017 21:51:34 -0700 show: pass the minimum length for nodes as a template keyword
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Aug 2017 21:51:34 -0700] rev 34202
show: pass the minimum length for nodes as a template keyword This will allow us to make the displayed length configurable and/or dynamic. Differential Revision: https://phab.mercurial-scm.org/D556
Thu, 03 Aug 2017 21:13:27 -0700 cmdutil: allow extra properties to be added to each context
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 03 Aug 2017 21:13:27 -0700] rev 34201
cmdutil: allow extra properties to be added to each context The changeset displayer allows setting extra keywords to be available to the templating layer. This patch adds an argument to displaygraph() to pass a dict of extra properties to be available to every changeset. Differential Revision: https://phab.mercurial-scm.org/D555
Thu, 14 Sep 2017 09:41:22 -0700 dirstate: perform transactions with _map using single call, where possible
Michael Bolin <mbolin@fb.com> [Thu, 14 Sep 2017 09:41:22 -0700] rev 34200
dirstate: perform transactions with _map using single call, where possible This is in the same style as https://phab.mercurial-scm.org/D493. In general, this replaces patterns such as: ``` f in self._map: entry = self._map[f] ``` with: ``` entry = self._map.get(f): if entry is not None: # use entry ``` Test Plan: `make tests` Differential Revision: https://phab.mercurial-scm.org/D663
Tue, 05 Sep 2017 00:34:13 +0200 extensions: register config item early
Boris Feld <boris.feld@octobus.net> [Tue, 05 Sep 2017 00:34:13 +0200] rev 34199
extensions: register config item early Config items are likely to be used in during extensions setup. So we much register them before that. For example this apply to the 'win32text.warn' options.
Tue, 05 Sep 2017 00:31:59 +0200 extensions: factor extra data loading out
Boris Feld <boris.feld@octobus.net> [Tue, 05 Sep 2017 00:31:59 +0200] rev 34198
extensions: factor extra data loading out Some of the extra data need to be registered earlier than they currently are (eg: config items). We first factor out the logic to registered them in a small function before reusing it in the next changeset.
Fri, 30 Jun 2017 03:45:56 +0200 configitems: register the 'win32text.warn' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:56 +0200] rev 34197
configitems: register the 'win32text.warn' config
Fri, 30 Jun 2017 03:43:17 +0200 configitems: register the 'mq.secret' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:17 +0200] rev 34196
configitems: register the 'mq.secret' config
Fri, 30 Jun 2017 03:43:16 +0200 configitems: register the 'mq.plain' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:16 +0200] rev 34195
configitems: register the 'mq.plain' config
Fri, 30 Jun 2017 03:43:15 +0200 configitems: register the 'mq.keepchanges' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:15 +0200] rev 34194
configitems: register the 'mq.keepchanges' config
Fri, 30 Jun 2017 03:43:14 +0200 configitems: register the 'mq.git' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:14 +0200] rev 34193
configitems: register the 'mq.git' config
Fri, 30 Jun 2017 03:45:54 +0200 configitems: register the 'win32mbcs.encoding' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:45:54 +0200] rev 34192
configitems: register the 'win32mbcs.encoding' config
Sun, 03 Sep 2017 03:49:15 +0530 copytrace: move fast heuristic copytracing algorithm to core
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Sep 2017 03:49:15 +0530] rev 34191
copytrace: move fast heuristic copytracing algorithm to core copytrace extension in fb-hgext has a heuristic implementation of copy tracing which is faster than the current copy tracing. The heuristic limits the search of copies to just files that are either: 1) Renames in the same directory 2) Moved to other directory with same name The default copytrace implementation is very slow as it finds all the new files that were added from merge base up to the head commit and for each file it checks whether it this was copied or moved version of a different file. Stash@fb did analysis for the above heuristics on the fb repo and found that among 2,443,768 moves/copies there are only 32,234 moves/copies which does not fall under the above heuristics which is approx. 0.013 of total copies. This patch moves the heuristics algorithm under config `experimental.copytrace=heuristics`. While moving fbext to core, this patch removes couple of less useful config options named `sourcecommitlimit` and `maxmovescandidatestocheck`. Tests are also added for the heuristics algorithm, which are basically copied from fbext/tests/test-copytrace.t. The tests follow a pattern creating a server repo and then cloning to a local repo to create public and draft changesets, the distinction which will be useful in upcoming patches. After this patch `experimental.copytrace` has the following behaviour: 1) `off`: turns off copytracing 2) `heuristics`: use the heuristic algorithm added in this patch. 3) everything else: use the full copytracing algorithm .. feature:: A new fast heuristic algorithm for copytracing which assumes that the files moves are either:: 1) Renames in the same directory 2) Moves in other directories with same names You can use this algorithm by setting `experimental.copytrace=heuristics`. Differential Revision: https://phab.mercurial-scm.org/D623
Fri, 30 Jun 2017 03:36:46 +0200 configitems: register the 'convert.svn.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:46 +0200] rev 34190
configitems: register the 'convert.svn.startrev' config
Fri, 30 Jun 2017 03:36:36 +0200 configitems: register the 'convert.svn.debugsvnlog' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:36 +0200] rev 34189
configitems: register the 'convert.svn.debugsvnlog' config
Fri, 30 Jun 2017 03:36:28 +0200 configitems: register the 'convert.skiptags' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:28 +0200] rev 34188
configitems: register the 'convert.skiptags' config
Fri, 30 Jun 2017 03:36:20 +0200 configitems: register the 'convert.p4.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:20 +0200] rev 34187
configitems: register the 'convert.p4.startrev' config
Fri, 30 Jun 2017 03:36:00 +0200 configitems: register the 'convert.localtimezone' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:00 +0200] rev 34186
configitems: register the 'convert.localtimezone' config
Fri, 30 Jun 2017 03:35:55 +0200 configitems: register the 'convert.ignoreancestorcheck' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:55 +0200] rev 34185
configitems: register the 'convert.ignoreancestorcheck' config
Fri, 30 Jun 2017 03:35:48 +0200 configitems: register the 'convert.hg.usebranchnames' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:48 +0200] rev 34184
configitems: register the 'convert.hg.usebranchnames' config
Fri, 30 Jun 2017 03:35:38 +0200 configitems: register the 'convert.hg.tagsbranch' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:38 +0200] rev 34183
configitems: register the 'convert.hg.tagsbranch' config
Fri, 30 Jun 2017 03:35:29 +0200 configitems: register the 'convert.hg.startrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:29 +0200] rev 34182
configitems: register the 'convert.hg.startrev' config
Fri, 30 Jun 2017 03:35:22 +0200 configitems: register the 'convert.hg.sourcename' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:22 +0200] rev 34181
configitems: register the 'convert.hg.sourcename' config
Fri, 30 Jun 2017 03:35:12 +0200 configitems: register the 'convert.hg.saverev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:35:12 +0200] rev 34180
configitems: register the 'convert.hg.saverev' config
Fri, 30 Jun 2017 03:34:58 +0200 configitems: register the 'convert.hg.revs' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:58 +0200] rev 34179
configitems: register the 'convert.hg.revs' config
Fri, 30 Jun 2017 03:34:49 +0200 configitems: register the 'convert.hg.ignoreerrors' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:49 +0200] rev 34178
configitems: register the 'convert.hg.ignoreerrors' config
Fri, 30 Jun 2017 03:34:45 +0200 configitems: register the 'convert.hg.clonebranches' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:45 +0200] rev 34177
configitems: register the 'convert.hg.clonebranches' config
Fri, 30 Jun 2017 03:34:32 +0200 configitems: register the 'convert.git.skipsubmodules' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:32 +0200] rev 34176
configitems: register the 'convert.git.skipsubmodules' config
Fri, 30 Jun 2017 03:34:23 +0200 configitems: register the 'convert.git.similarity' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:23 +0200] rev 34175
configitems: register the 'convert.git.similarity' config
Fri, 30 Jun 2017 03:34:14 +0200 configitems: register the 'convert.git.saverev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:34:14 +0200] rev 34174
configitems: register the 'convert.git.saverev' config
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip