Wagner Bruna <wbruna@softwareexpress.com.br> [Thu, 23 Oct 2014 12:27:57 -0200] rev 23074
files: fix example list syntax
Mads Kiilerich <madski@unity3d.com> [Thu, 23 Oct 2014 02:42:57 +0200] rev 23073
parsers: use 'k' format for Py_BuildValue instead of 'n' because Python 2.4
'n' was introduced in Mercurial in 2b5940f64750 and broke Python 2.4 support in
mysterious ways that only showed failure in test-glog.t. Py_BuildValue failed
because of the unknown format and a TypeError was thrown ... but it never
showed up on the Python side and it happily continued processing with wrong
data.
Quoting https://docs.python.org/2/c-api/arg.html :
n (integer) [Py_ssize_t]
Convert a Python integer or long integer to a C Py_ssize_t.
New in version 2.5.
k (integer) [unsigned long]
Convert a Python integer or long integer to a C unsigned long without
overflow checking.
This will use unsigned long instead of Py_ssize_t. That is not a good solution,
but good is not an option when we have to support Python 2.4.
Durham Goode <durham@fb.com> [Mon, 20 Oct 2014 18:50:09 -0700] rev 23072
rebase: improve base revset performance
The old revset had pretty terrible performance on large repositories (12+
seconds). This new revset achieves the same result in only 0.7s. As we improve
the underlying revset APIs we can probably get this revset down to 'only(base,
dest)::', but at the moment that version still takes 2s.
Ryan McElroy <rmcelroy@fb.com> [Thu, 16 Oct 2014 06:35:06 -0700] rev 23071
amend: fix amending rename commit with diverged topologies (issue4405)
This addresses the bug described in issue4405: when obsolescence markers are
enabled, amending a commit with a file move can lead to the copy information
being lost.
However, the bug is more general and can be reproduced without obsmarkers as
well, as demonstracted by Pierre-Yves and put into the updated test.
Specifically, graph topology divergences between the filelogs and the changelog
can cause copy information to be lost during amends.
Augie Fackler <raf@durin42.com> [Tue, 21 Oct 2014 17:09:37 -0400] rev 23070
hgweb: disable SSLv3 serving (BC)
Because of recent attacks[0] on SSLv3, let's just drop support entirely.
0: http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html
Augie Fackler <raf@durin42.com> [Tue, 21 Oct 2014 17:01:23 -0400] rev 23069
sslutil: only support TLS (BC)
In light of the POODLE[0] attack on SSLv3, let's just drop the ability to
use anything older than TLSv1 entirely.
This only fixes the client side. Another commit will fix the server
side. There are still a few SSLv[23] constants hiding in httpclient,
but I'll fix those separately upstream and import them when we're not
in a code freeze.
0: http://googleonlinesecurity.blogspot.com/2014/10/this-poodle-bites-exploiting-ssl-30.html
Mads Kiilerich <madski@unity3d.com> [Wed, 22 Oct 2014 16:10:23 +0200] rev 23068
eol: fix crash when handling removed files
ci --amend would in some cases fail after 650b5b6e75ed failed to refactor the
eol extension too.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 15 Oct 2014 03:52:20 -0700] rev 23067
bundle2: transmit exception during part generation
If an exception is raised during a bundle2 part payload generation it is now
recorded in the bundle. If such exception occurs, we capture it, transmit an
abort exception through the bundle, cleanly close the current part payload and
raise it again. This allow to generate valid bundle even in case of exception so
that the consumer does not wait forever for a dead producer. This also allow to
raise the exception during unbundling at the exact point it happened during
bundling make debugging easier.
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 14 Oct 2014 10:47:47 -0700] rev 23066
bundle2: add a interrupt mechanism
It is now possible to emit a single part in the middle of a payload production.
This part will be processed with limitation (only access to a `ui` object). The
goal is to let the server raise exception and output while a part is being
processed. The source motivation is to transmit exception that occurs while
generating a part.
This change is was the motivation to bump the bundle2 format from HG2X to HG2Y.
Somehow, the format bump made it into 3.2 without it. So this change go on
stable. It is low risk as bundle2 is still disabled by default.
Durham Goode <durham@fb.com> [Tue, 21 Oct 2014 12:38:28 -0700] rev 23065
transactions: change backupfiles format to use newlines
Previously the journal.backupfiles file was delimited by \0. Now we delimit it
using \n (same as the journal file). This allows us to change the number of
values in each line more easily, rather than relying on the count of \0's.
Durham Goode <durham@fb.com> [Tue, 21 Oct 2014 11:37:29 -0700] rev 23064
transactions: add version number to journal.backupfiles
The transaction format will be changing a bit over the next releases, so let's
go ahead and add a version number to make backwards compatibility easier. This
whole file format was broken prior to 3.2 (see previous patch), so changing it
now is pretty low risk.
Durham Goode <durham@fb.com> [Mon, 20 Oct 2014 16:53:56 -0700] rev 23063
transactions: fix hg recover with fncache backups
The transaction backupfiles logic was broken for 'hg recover'. The file format
is XXX\0XXX\0YYY\0YYY\0 but the parser did a couple things wrong. 1) It went one
step beyond the final \0 and tried to read past the end of the array. 2)
array[i:i+1] returns a single item, instead of two items as intended.
Added a test to catch it, which turns out to be the first actual 'hg recover'
test.
Yuya Nishihara <yuya@tcha.org> [Sun, 19 Oct 2014 16:48:33 +0900] rev 23062
revset: have rev() drop out-of-range or filtered rev explicitly (issue4396)
The recent optimization of "and" operation relies on the assumption that
the rhs set does not contain invalid revisions. So rev() has to remove
invalid revisions.
This is still faster than using `.filter(lambda r: r == l)`.
revset #0: rev(25)
0) wall 0.026341 comb 0.020000 user 0.020000 sys 0.000000 (best of 113)
1) wall 0.000038 comb 0.000000 user 0.000000 sys 0.000000 (best of 66567)
2) wall 0.000062 comb 0.000000 user 0.000000 sys 0.000000 (best of 43699)
(0: bbf4f3dfd700^, 1: 3.2-rc, 2: this patch)
Matt Mackall <mpm@selenic.com> [Wed, 22 Oct 2014 15:47:27 -0500] rev 23061
revset: avoid recalculating filesets
This fixes a regression in 8dabcc889e33 that moved matcher building
into a callback, thus causing it be rebuilt for each revision matched
against.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23060
tests: open file in binary mode to use POSIX end-of-line style anywhere
Before this patch, "test-context.py" fails on Windows environment,
because "diff" output contains unexpected "\r" character.
Opening the target file in text mode causes this automatic end-of-line
conversion.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23059
tests: add "(glob)" for l10n messages in test-clone.t for Windows
This patch follows the style of other tests avoiding same kind of issue.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23058
tests: add "(glob)" for l10n messages in test-largefiles-update.t for Windows
This patch follows the style of other tests avoiding same kind of issue.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23057
tests: add "(glob)" to paths in test-revset-outgoing.t for Windows
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23056
tests: add "(glob)" to paths in test-hgrc.t for Windows
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23055
tests: add "(glob)" to paths in test-url-rev.t for Windows
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 20 Oct 2014 22:08:08 +0900] rev 23054
tests: adjust expected prompt choice outputs in test-record.t for Windows
Changeset 9ab18a912c44 introduced "showing prompt choice if input is
not a tty but is forced to be interactive" and adjusted expected
output in test-record.t.
But some tests for no-execbit platform (= Windows) were not adjusted
by 9ab18a912c44.
This causes unexpected failure of test-record on Windows environment.
This patch adds below to prompt lines for such tests:
- prompt choice at the end of prompt line, and
- empty line after prompt line
Yuya Nishihara <yuya@tcha.org> [Tue, 21 Oct 2014 23:16:46 +0900] rev 23053
ui: separate option to show prompt echo, enabled only in tests (issue4417)
The problem in commandserver was addressed by 524b786bd54f, but it is tricky
to reuse ui.nontty option to disable echo back. Instead, this patch introduces
new option to enable echoing of prompt response.
Prompt echoing is changed to be off by default, which should avoid possible
breakage of output parsing in user scripts.
For now, this option is undocumented because it exists for internal use.
Matt Mackall <mpm@selenic.com> [Sat, 18 Oct 2014 18:14:48 -0500] rev 23052
Added signature for changeset 7f8d16af8cae
Matt Mackall <mpm@selenic.com> [Sat, 18 Oct 2014 18:14:38 -0500] rev 23051
Added tag 3.2-rc for changeset 7f8d16af8cae
Matt Mackall <mpm@selenic.com> [Sat, 18 Oct 2014 18:05:10 -0500] rev 23050
merge with i18n
Alexander Sauta <demosito@gmail.com> [Mon, 13 Oct 2014 14:46:50 +0100] rev 23049
i18n-ru: synchronized with 6b4dc7968bf0
Matt Mackall <mpm@selenic.com> [Sat, 18 Oct 2014 18:04:31 -0500] rev 23048
merge default into stable for 3.2 freeze
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 17 Oct 2014 02:17:36 -0700] rev 23047
hook: schedule run "b2x-transactionclose" for after lock release
Hooks that run after the transaction need to be able to touch the
repository. So we need to run them after the lock release. This is
similar to what the "changegroup" hook is doing in the
`addchangegroup` function.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 17 Oct 2014 15:25:32 -0700] rev 23046
repoview: issue a special message when filtering hidden changesets
Hidden changesets are by far the most common error case and is the only one[1]
that can reach the user. We move to a friendlier message with a hint about how
to access the data anyway. We should probably point to a help topic instead but
we do not have such a topic yet.
Example of the new output
abort: hidden revision '4'!
(use --hidden to access hidden revisions)
[1] Actually, filtering from "served" can also reach the user during certain
exchange operations.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 17 Oct 2014 15:54:43 -0700] rev 23045
repoview: include the filter name in filtered revision error messages
This will help user to debug. A more precise message will be issued
for the most common case ("visible" filter) in the next changesets.
example output:
- abort: filtered revision '4'!
+ abort: filtered revision '4' (not in 'visible' subset)!