Gregory Szorc <gregory.szorc@gmail.com> [Tue, 02 Jun 2015 19:58:06 -0700] rev 25400
changegroup: rename _computeoutgoing to computeoutgoing
We're going to use this function from another module in an upcoming
patch. Drop the _ prefix to mark it as non-private.
Matt Mackall <mpm@selenic.com> [Tue, 02 Jun 2015 13:24:39 -0500] rev 25399
merge with stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 01 Jun 2015 22:46:05 -0400] rev 25398
test-treemanifest: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Mon, 01 Jun 2015 22:41:07 -0400] rev 25397
test-import: sync with
6084926366b9 for platforms without execbit
Matt Harbison <matt_harbison@yahoo.com> [Mon, 01 Jun 2015 14:42:55 -0400] rev 25396
hgwebdir: avoid redundant repo and directory entries when 'web.name' is set
Previously, when 'web.name' was set on a subrepo parent and 'web.collapse=True',
the parent repo would show in the list with the configured 'web.name', and a
directory with the parent repo's filesystem name (with a trailing slash) would
also appear. The subrepo(s) would unexpectedly be excluded from the list of
repositories. Clicking the directory entry would go right to the repo page.
Now both the parent and the subrepos show up, without the additional directory
entry.
The configured hgweb paths used '**' for finding the repos in this scenario.
A couple of notes about the tests:
- The area where the subrepo was added has a comment that it tests subrepos,
though none previously existed there. One now does.
- The 'web.descend' option is required for collapse to work. I'm not sure what
the previous expectations were for the test. Nothing changed with it set,
prior to adding the code in this patch. It is however required for this test.
- The only output changes are for the hyperlinks, obviously because of the
'web.name' parameter.
- Without this code change, there would be an additional diff:
--- /usr/local/mercurial/tests/test-hgwebdir.t
+++ /usr/local/mercurial/tests/test-hgwebdir.t.err
@@ -951,7 +951,7 @@
/rcoll/notrepo/e/
/rcoll/notrepo/e/e2/
/rcoll/notrepo/f/
- /rcoll/notrepo/f/f2/
+ /rcoll/notrepo/f/
Test repositories inside intermediate directories
I'm not sure why the fancy name doesn't come out, but it is enough to
demonstrate that the parent is not listed redundantly, and the subrepo isn't
skipped.
Matt Mackall <mpm@selenic.com> [Mon, 01 Jun 2015 15:16:28 -0500] rev 25395
Added signature for changeset
ed18f4acf435
Matt Mackall <mpm@selenic.com> [Mon, 01 Jun 2015 15:16:24 -0500] rev 25394
Added tag 3.4.1 for changeset
ed18f4acf435
Matt Mackall <mpm@selenic.com> [Mon, 01 Jun 2015 14:47:02 -0500] rev 25393
merge with stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 02 Jun 2015 02:28:33 +0900] rev 25392
templatekw: compare target context and its parent exactly (
issue4690)
Before this patch, template keywords `{file_mods}`, `{file_adds}` and
`{file_dels}` use values gotten by `repo.status(ctx.p1().node(),
ctx.node())`.
But this doesn't work as expected if `ctx` is `memctx` or
`workingcommitctx`. Typical case of templating with these contexts is
customization of the text shown in the commit message editor by
`[committemplate]` configuration.
In this case, `ctx.node()` returns None and it causes comparison
between `ctx.p1()` and `workingctx`. `workingctx` lists up all changed
files in the working directory even at selective committing.
BTW, `{files}` uses `ctx.files()` and it works as expected.
To compare target context and its parent exactly, this patch passes
`ctx.p1()` and `ctx` without `node()`-nize. This avoids unexpected
comparison with `workingctx`.
This patch uses a little redundant template configurations in
`test-commit.t`, but they are needed to avoid regression around
problems fixed by
a4958cdb2202 and
1e6fb8db666e: accessing on `ctx`
may break `ctx._status` field.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 29 May 2015 15:18:49 -0700] rev 25391
test: use bundle2 in test-pull-http
This test has a minor output change when using bundle2. We make this
change early to reduce the noise in the final change.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:55:32 -0700] rev 25390
test: use bundle2 in test-push-http
Now that we have a bundle1 version of this test, we can move the original
to bundle2. This lets us handle the ouput change from using the bundle2
protocol earlier.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:54:51 -0700] rev 25389
test: copy test-push-http.t to testpush-http-bundle1.t
We want to keep both code paths tested. The test is a bit too extensive to
simply introduce dual testing in it, so we make a copy for each protocol
version.
Matt Mackall <mpm@selenic.com> [Sun, 31 May 2015 16:59:34 -0500] rev 25388
tests: add (?) flag for optional lines
When the test engine fails to match output on a line marked with (?),
it will simply continue to the next expected line and try again. This
allows simplifying tests that have either version-specific or
non-fixed behavior, for instance:
$ coin-flip
heads (?)
tails (?)
(There's no form of back-tracking attempted, so optional matches
should be specific.)
Ryan McElroy <rmcelroy@fb.com> [Wed, 15 Apr 2015 09:07:54 -0700] rev 25387
templatekw: display active bookmark more consistently (
issue4552) (BC)
Previously, the template keyword '{activebookmark}' would only display the
active bookmark if it was also pointing to the working directory's parent.
Meanwhile, the '{active}' subkeyword of the '{bookmarks}' keyword displays
the active bookmark regardless of whether it also points to the working
directory's parent. This is confusing.
Consider the output of these two templates:
$ hg log -T '{activebookmark}\n' -r indent
$ hg log -T '{bookmarks % "{bookmark}"}\n' -r indent
indent
This is the current behavior that can arise after, eg, a pull moves a bookmark
out from under you. After this patch, the first template will also return the
active bookmark that points to a revision, even if it is not the current
parent of the working directory. A test has been added to show the new behavior.
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 18:30:27 +0900] rev 25386
revrange: build spanset from x:y range
This slightly improves the performance in the optimal case:
% hg log -R mozilla-central -r0:tip -l1 --time
(before)
time: real 0.050 secs (user 0.040+0.000 sys 0.010+0.000)
(after)
time: real 0.020 secs (user 0.000+0.000 sys 0.010+0.000)
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 18:11:33 +0900] rev 25385
revrange: build balanced tree of addsets from revisions (
issue4565)
This reduces the stack depth from O(n) to O(log(n)). Therefore, repeated
-rREV options will never exceed the Python stack limit.
Currently it depends on private revset._combinesets() function. But at some
point, we'll be able to drop the old-style parser, and revrange() can be
completely rewritten without using _combinesets():
trees = [parse(s) for s in revs]
optimize(('or',) + trees) # combine trees and optimize at once
...
Blockers that prevent eliminating old-style parser:
- nullary ":" operator
- revrange(repo, [intrev, ...]), can be mapped to 'rev(%d)' ?
- revrange(repo, [binnode, ...]), should be banned ?
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 17:59:55 +0900] rev 25384
revrange: clean up meaningless reconstruction of sets
They just exist for deduplication that was removed by the previous patch.
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 17:53:22 +0900] rev 25383
revrange: drop unnecessary deduplication of revisions
Because "l" is a smartset, duplicated entries are omitted by addsets.
Gilles Moris <gilles.moris@free.fr> [Fri, 29 May 2015 22:23:58 +0200] rev 25382
summary: move the parents phase marker to commit line (
issue4688)
The phase of the pending commit depends on the parent of the working directory
and on the phases.newcommit configuration.
First, this information rather depend on the commit line which describe the
pending commit.
Then, we only want to be advertised when the pending phase is going to be higher
than the default new commit phase.
So the format will change from
$ hg summary
parent: 2:
ab91dfabc5ad
foo
parent: 3:
24f1031ad244 tip
bar
branch: default
commit: 1 modified, 1 unknown, 1 unresolved (merge)
update: (current)
phases: 1 secret (secret)
to
parent: 2:
ab91dfabc5ad
foo
parent: 3:
24f1031ad244 tip
bar
branch: default
commit: 1 modified, 1 unknown, 1 unresolved (merge) (secret)
update: (current)
phases: 1 secret
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 25 May 2015 16:48:55 -0700] rev 25381
tags: support setting hgtags fnodes cache entries
An upcoming patch will teach bundle2 to transfer .hgtags fnodes
values. To support this, we need to support inserting values into
the cache.
Add functionality to do that.
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 25 May 2015 16:24:23 -0700] rev 25380
tags: support reading tags cache without populating
An upcoming patch will teach the bundle2 protocol to transfer .hgtags
fnodes to the client. We don't want this to incur any extra work
at serve time. Create an optional cache query mode that doesn't
populate the cache as a side-effect.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 31 May 2015 17:41:35 -0700] rev 25379
check-commit: make foo_bar naming regexp less greedy
\s is equivalent to the character class [ \t\n\r\f\v]. Using \s+ in
a regular expression against input with multiple lines may match across
multiple lines.
For the regexp in question, "\+\s+" would match "+\n " and similar
sequences, leading to false positives for functions that were included
in diff context, after a modified hunk.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:05:08 -0700] rev 25378
test: use bundle2 in test-http
Now that we have a bundle1 version of this test, we can move the
original to bundle2. This lets us handle the ouput change from using
the bundle2 protocol earlier.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 12:03:31 -0700] rev 25377
test: copy test-http.t to test-http-bundle1.t
We want to keep both code paths tested. The test is a bit too extensive to
simply introduce dual testing in it so we make a copy for each protocol
version.