Fri, 03 May 2019 14:07:14 +0800 tests: flatten repo structure in test-commit.t
Anton Shestakov <av6@dwimlabs.net> [Fri, 03 May 2019 14:07:14 +0800] rev 42272
tests: flatten repo structure in test-commit.t Let's move to parent directory before `hg init` repos, since they don't need to be nested. It makes amend/strip messages that include full path to the backup bundle shorter, for instance.
Sat, 04 May 2019 01:16:42 -0400 lfs: add a TODO file
Matt Harbison <matt_harbison@yahoo.com> [Sat, 04 May 2019 01:16:42 -0400] rev 42271
lfs: add a TODO file This is a cleaned up and reorganized list of items I sent out about a year ago. But tracking this in the repo (like the narrow extension) gives more visibility in case anyone wants to help out.
Sat, 27 Apr 2019 22:08:45 -0700 copies: make "limit" argument to _tracefile() mandatory
Martin von Zweigbergk <martinvonz@google.com> [Sat, 27 Apr 2019 22:08:45 -0700] rev 42270
copies: make "limit" argument to _tracefile() mandatory We always pass a limit. I think the fact that it was optional was also the reason we checked ">=limit" before we used it. So now we can remove that condition too. Differential Revision: https://phab.mercurial-scm.org/D6335
Fri, 03 May 2019 08:37:10 -0700 localrepo: don't use defaults arguments that will never be overridden
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 May 2019 08:37:10 -0700] rev 42269
localrepo: don't use defaults arguments that will never be overridden The commithook() callback will be called when the lock is released. lock.release() calls the callback without arguments, so it was quite confusing to me that this function declared extra arguments. We can just close on the variables in the outer scope instead. Differential Revision: https://phab.mercurial-scm.org/D6336
Fri, 03 May 2019 12:32:00 -0700 tags: avoid double-reversing a list
Martin von Zweigbergk <martinvonz@google.com> [Fri, 03 May 2019 12:32:00 -0700] rev 42268
tags: avoid double-reversing a list Differential Revision: https://phab.mercurial-scm.org/D6337
Mon, 11 Mar 2019 02:35:18 +0100 updatecaches: also warm hgtagsfnodescache
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Mar 2019 02:35:18 +0100] rev 42267
updatecaches: also warm hgtagsfnodescache Now that a full update of this cache run in a reasonable amount of time, we can warm everything when during a full update.
Mon, 11 Mar 2019 01:10:20 +0100 hgtagsfnodescache: inherit fnode from parent when possible
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Mar 2019 01:10:20 +0100] rev 42266
hgtagsfnodescache: inherit fnode from parent when possible If a changeset does not update the content of `.hgtags`, it means it will use the same file-node (for `.hgtags`) as its parents. In this case we can directly reuse the parent's file-node. We use this property when updating the `hgtagsfnodescache` taking a faster path if we already have a cached value for the parents of the node we are looking at. Doing so provides a large performance boost when looking at a lot of fnodes, especially on repository with very large manifest: timing for `tagsmod.fnoderevs(ui, repo, repo.changelog.revs())` mercurial: (41907 revisions, 1923 files) before: 6.9 seconds after: 2.7 seconds (-54%) pypy: (96266 revisions, 5198 files) before: 80 seconds after: 20 seconds (-75%) mozilla-central: (463411 revisions, 272080 files) before: 7166.4 seconds after: 47.8 seconds (-99%, x150 speedup) On a copy of mozilla-try with about 35K heads ans 1.7M changesets, this moves the computation from many hours to a couple of minutes, making it more interesting to do a full warm up of this cache before computing tags (from a cold cache). There seems to be other performance low hanging fruits, like avoiding the use of changectx or a more revision centric logic. However, the new code is fast enough for my needs right now.
Mon, 11 Mar 2019 01:09:38 +0100 hgtagsfnodescache: handle nullid lookup
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 11 Mar 2019 01:09:38 +0100] rev 42265
hgtagsfnodescache: handle nullid lookup The null revision is empty, so it `.hgtags` content is `nullid` in regards with the `hgtagsfnodescache`. Dealing with `nullid` will help with the next changeset. Before this change, feeding `nullid` to `hgtagsfnodescache.getfnode` would return a wrong result (fnode for tip).
Fri, 26 Apr 2019 17:39:07 +0200 help: register the 'gpg' command category and give it a description
Sietse Brouwer <sbbrouwer@gmail.com> [Fri, 26 Apr 2019 17:39:07 +0200] rev 42264
help: register the 'gpg' command category and give it a description help.py expects extensions to register their command category in the CATEGORY_ORDER and CATEGORY_NAMES variables. Once gendoc.py orders commands by category, in the next patch, it'll assume this registration (and raise an exception on encountering any unregistered categories). Luckily, gpg is the only bundled extension with an unregistered custom category, so let's fix it. Differential Revision: https://phab.mercurial-scm.org/D6324
Thu, 25 Apr 2019 15:30:40 -0700 histedit: Speed up scrolling in patch view mode
feyu@google.com [Thu, 25 Apr 2019 15:30:40 -0700] rev 42263
histedit: Speed up scrolling in patch view mode Store patchcontents into the mode state, avoiding the expensive call to ui for computing the patchcontents. Before this change in large repos histedit patch view mode can be very irresponsive.
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 tip