Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 15:21:54 -0700] rev 16404
store: speed up read and write of large fncache files
In my tests of an fncache containing 300,000 entries, this improves
read time from 567ms to 307, and write time from 1328ms to 533.
These numbers aren't so great, since the fncache file is only 17MB
in size, but they're an improvement.
Bryan O'Sullivan <bryano@fb.com> [Thu, 12 Apr 2012 15:21:52 -0700] rev 16403
perf: time fncache read and write performance
Angel Ezquerra <angel.ezquerra@gmail.com> [Sun, 01 Apr 2012 14:12:14 +0200] rev 16402
revset: add "matching" keyword
This keyword can be used to find revisions that "match" one or more fields of a
given set of revisions.
A revision matches another if all the selected fields (description, author,
branch, date, files, phase, parents, substate, user, summary and/or metadata)
match the corresponding values of those fields on the source revision.
By default this keyword looks for revisions that whose metadata match
(description, author and date) making it ideal to look for duplicate revisions.
matching takes 2 arguments (the second being optional):
1.- rev: a revset represeting a _single_ revision (e.g. tip, ., p1(.), etc)
2.- [field(s) to match]: an optional string containing the field or fields
(separated by spaces) to match.
Valid fields are most regular context fields and some special fields:
* regular fields:
- description, author, branch, date, files, phase, parents,
substate, user.
Note that author and user are synonyms.
* special fields: summary, metadata.
- summary: matches the first line of the description.
- metatadata: It is equivalent to matching 'description user date'
(i.e. it matches the main metadata fields).
Examples:
1.- Look for revisions with the same metadata (author, description and date)
as the 11th revision:
hg log -r "matching(11)"
2.- Look for revisions with the same description as the 11th revision:
hg log -r "matching(11, description)"
3.- Look for revisions with the same 'summary' (i.e. same first line on their
description) as the 11th revision:
hg log -r "matching(11, summary)"
4.- Look for revisions with the same author as the current revision:
hg log -r "matching(., author)"
You could use 'user' rather than 'author' to get the same result.
5.- Look for revisions with the same description _AND_ author as the tip of the
repository:
hg log -r "matching(tip, 'author description')"
6.- Look for revisions touching the same files as the parent of the tip of the
repository
hg log -r "matching(p1(tip), files)"
7.- Look for revisions whose subrepos are on the same state as the tip of the
repository or its parent
hg log -r "matching(p1(tip):tip, substate)"
8.- Look for revisions whose author and subrepo states both match those of any
of the revisions on the stable branch:
hg log -r "matching(branch(stable), 'author substate')"
Steven Stallion <sstallion@gmail.com> [Tue, 10 Apr 2012 23:40:20 -0700] rev 16401
plan9: add execute permissions to 9diff
Steven Stallion <sstallion@gmail.com> [Tue, 10 Apr 2012 23:24:12 -0700] rev 16400
transplant: permit merge changesets via --parent
This change permits the transplant extension to operate on merge
changesets by way of --parent. This is particularly useful for
workflows which cherrypick branch merges rather than each commit
within a branch.
Matt Mackall <mpm@selenic.com> [Thu, 12 Apr 2012 20:22:18 -0500] rev 16399
help: fix indentation on cacert (issue3350)
The parser doesn't really handle nesting, so reorder so the nested bit
is last.