Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View

Legend:   Passed Failed Failed Again Running Exception Offline No data

Yuya Nishihara
revset: avoid O(n) lookup of invalid revision in rev()

ba89f7b542c9 was not the final version of that patch.  It was really slow
because `l not in repo.changelog` iterates revisions up to `l`.  Instead,
rev() should utilize spanset.__contains__().

revset #0: rev(210000)
0) wall 0.000039 comb 0.000000 user 0.000000 sys 0.000000 (best of 67978)
1) wall 0.002721 comb 0.000000 user 0.000000 sys 0.000000 (best of 1055)
2) wall 0.000059 comb 0.000000 user 0.000000 sys 0.000000 (best of 45599)
(0: 3.2-rc, 1: ba89f7b542c9, 2: this patch)

Note that the benchmark result described in ba89f7b542c9 is wrong because
it is the one of the initial version.
Matt Mackall
run-tests: output diffs with only forward slashes

This removes some gratuitous variance when testing on Windows with
Wagner Bruna
i18n: add hint to digest mismatch message
Wagner Bruna
help/config: fix typo
Wagner Bruna
files: fix example list syntax
Mads Kiilerich
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

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
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
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
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
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
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
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
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
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
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
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'
Yuya Nishihara
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
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
FUJIWARA Katsunori
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
FUJIWARA Katsunori
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
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
tests: add "(glob)" to paths in test-revset-outgoing.t for Windows
FUJIWARA Katsunori
tests: add "(glob)" to paths in test-hgrc.t for Windows
FUJIWARA Katsunori
tests: add "(glob)" to paths in test-url-rev.t for Windows
FUJIWARA Katsunori
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