Laurent Charignon <lcharignon@fb.com> [Fri, 18 Dec 2015 12:54:45 -0800] rev 27440
log: speed up hg log <file|folder>
This patch makes hg log <file|folder> faster by using changelog.readfiles
instead of changelog.read.
On our large repos for hg log <file|folder> -l5 operations that were taking:
- ~8s I see a 25% improvement
- ~15s, I see a 35% improvement
For recently modified folder/file, the difference is negligible as we don't
have to consider many revisions.
Laurent Charignon <lcharignon@fb.com> [Fri, 18 Dec 2015 13:45:55 -0800] rev 27439
changelog: add a new method to get files modified by a changeset
This patch adds a new method "readfiles" to get the files modified by a
changeset. It extracts some logic from "read" to only return the files modified
by a changeset as efficiently as possible. This is used in the next patch to
speed up hg log <file|folder>
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 17:22:37 -0500] rev 27438
tests: convert directory separators to '/' for MSYS in test-check-py-compat
This is the same fix as 8c1d7a0e737b.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 17:17:36 -0500] rev 27437
tests: make `pwd` URL compatible on Windows in test-default-push
Without this, the test fails with:
$ hg -q commit -A -m 'add pushurl'
abort: file:// URLs can only refer to localhost
$ hg push
abort: file:// URLs can only refer to localhost
The variable $PWD causes check-code to complain, so avoid that.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 16 Dec 2015 13:33:43 -0500] rev 27436
windows: correct the import of win32
This module is relative, and was overlooked when converting to absolute_import
in 6daa795ed32f.
Pascal Quantin <pascal.quantin@gmail.com> [Thu, 17 Dec 2015 19:33:44 +0100] rev 27435
win32: add internals help topics to Inno Setup installer
Augie Fackler <augie@google.com> [Fri, 18 Dec 2015 09:57:35 -0500] rev 27434
changegroups: add documentation for cg3
Mike Edgar <adgar@google.com> [Mon, 14 Dec 2015 15:55:12 -0500] rev 27433
changegroup: add flags field to cg3 delta header
This lets revlog flags be transmitted over the wire. Right now this is
useful for censored nodes and for narrowhg's ellipsis nodes.
Augie Fackler <augie@google.com> [Fri, 11 Dec 2015 11:23:49 -0500] rev 27432
changegroup: introduce cg3, which has support for exchanging treemanifests
I'm not entirely happy with using a trailing / on a "file" entry for
transferring a treemanifest. We've discussed putting some flags on
each file header[0], but I'm unconvinced that's actually any better:
if we were going to add another feature to the cg format we'd still be
doing a version bump anyway to cg4, so I'm inclined to not spend time
coming up with a more sophisticated format until we actually know what
the next feature we want to stuff in a changegroup will be.
Test changes outside test-treemanifest.t are only due to the new CG3
bundlecap showing up in the wire protocol.
Many thanks to adgar@google.com and martinvonz@google.com for helping
me with various odd corners of the changegroup and treemanifest API.
0: It's not hard refactoring, nor is it a lot of work. I'm just
disinclined to do speculative work when it's not clear what the
customer would actually be.
Matt Mackall <mpm@selenic.com> [Fri, 18 Dec 2015 14:40:11 -0600] rev 27431
merge with stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 17 Dec 2015 17:16:02 -0800] rev 27430
revlog: seek to end of file before writing (issue4943)
Revlogs were recently refactored to open file handles in "a+" and use a
persistent file handle for reading and writing. This drastically
reduced the number of file handles being opened.
Unfortunately, it appears that some versions of Solaris lose the file
offset when performing a write after the handle has been seeked.
The simplest workaround is to seek to EOF on files opened in a+ mode
before writing to them, which is what this patch does.
Ideally, this code would exist in the vfs layer. However, this would
require creating a proxy class for file objects in order to provide a
custom implementation of write(). This would add overhead. Since
revlogs are the only files we open in a+ mode, the one-off workaround
in revlog.py should be sufficient.
This patch appears to have little to no impact on performance on my
Linux machine.
Augie Fackler <augie@google.com> [Mon, 14 Dec 2015 20:57:21 -0500] rev 27429
manifestmerge: have manifest do matching before diffing
This means that the diff code does less work, potentially
significantly less in the case of treemanifests. It also should ease
implementation with narrowed clone cases (such as narrowhg) when we
don't always have the entire set of treemanifest revlogs locally.
As far as I can tell, this codepath is currently only used by record,
so it'll probably die in the near future, and then narrowhg won't have
to worry about composing with some unknown matching system.
timeless <timeless@mozdev.org> [Thu, 17 Dec 2015 14:57:20 +0000] rev 27428
branch: reword help text
We're not necessarily talking about *the* active branch,
just any old branch.
timeless <timeless@mozdev.org> [Thu, 17 Dec 2015 14:56:32 +0000] rev 27427
archive: adjust help text
timeless <timeless@mozdev.org> [Thu, 17 Dec 2015 14:54:47 +0000] rev 27426
annotate: add missing period to help