Mads Kiilerich <madski@unity3d.com> [Mon, 17 Nov 2014 01:48:43 +0100] rev 23346
mq: when adding headers in plain mode, separate them from message (issue4453)
c87f2a5a6e49 did a clean-up in one direction ... but we want it in the other
direction.
Mads Kiilerich <madski@unity3d.com> [Mon, 17 Nov 2014 01:48:19 +0100] rev 23345
mq: introduce insertplainheader - same naive implementation as before
Mads Kiilerich <madski@unity3d.com> [Sun, 16 Nov 2014 19:57:40 +0100] rev 23344
mq: when setting message in plain mode, separate it from header (issue4453)
Fix inconsistent handling of plain header separation in mq patcheader - and
contrary to c87f2a5a6e49, do it in the direction of having an empty line
between header and description. Plain patches are like mails and should thus
have an empty line between headers and body in compliance with RFC 822 3.1.
Siddharth Agarwal <sid0@fb.com> [Sun, 16 Nov 2014 00:40:29 -0800] rev 23343
setdiscovery: avoid a full changelog graph traversal
We were definitely being suboptimal here: we were constructing two full sets,
one with the full set of common nodes (i.e. a graph traversal) and one with all
nodes. Then we subtract one set from the other. This whole process is
O(commits) and causes discovery to be significantly slower than it should be.
Instead, keep track of common incrementally and keep undecided as small as
possible.
This makes discovery massively faster on large repos: on one such repo, 'hg
debugdiscovery' over SSH with one commit missing on the client and five on the
server went from 4.5 seconds to 1.5. (An 'hg debugdiscovery' with no commits
missing on the client, i.e. connection startup time, was 1.2 seconds.)
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 19:40:30 -0800] rev 23342
ancestor: add a way to remove ancestors of bases from a given set
This and missingancestors can share state, which will turn out to be perfect
for set discovery.
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 17:21:00 -0800] rev 23341
ancestor: add a way to add to bases of a missing ancestor object
This will be useful for setdiscovery, since with that we incrementally add to
our knowledge of common nodes.
Siddharth Agarwal <sid0@fb.com> [Sun, 16 Nov 2014 00:39:29 -0800] rev 23340
ancestor: add a way to test whether a missing ancestor object has bases
This is pretty trivial so there's no unit test coverage for it.
This will be used by setdiscovery.
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 16:53:40 -0800] rev 23339
ancestor: remove now-unused missingancestors function
Callers should use revlog.incrementalmissingrevs instead.
Siddharth Agarwal <sid0@fb.com> [Fri, 14 Nov 2014 16:52:40 -0800] rev 23338
revlog: switch findmissing* methods to incrementalmissingrevs
This will allow us to remove ancestor.missingancestors in an upcoming patch.
Siddharth Agarwal <sid0@fb.com> [Sun, 16 Nov 2014 00:39:48 -0800] rev 23337
revlog: add a method to get missing revs incrementally
This will turn out to be useful for discovery.