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

Durham Goode
clone: fix copying bookmarks in uncompressed clones (issue4430)

ef62c66bee1b broke bookmarks getting copied during uncompressed clones. Since
most of the pull logic has been moved into exchange.py, lets just call
exchange.pull to fix up the repo with the latest bits after the streaming clone
has bootstrapped the repo. This keeps us from having to duplicate the bookmark
Martin von Zweigbergk
revset: don't recreate matcher for every revision

The matcher variable 'm' in checkstatus() is reset to None on each
call, so the caching of the matcher no longer happens as it was
intended. This seems to be a regression in ed7b674824a3 (revset: added
lazyset implementation to checkstatus, 2014-01-03).

Fix by moving the cached matcher into the enclosing function so it's
actually cached across calls. This speeds up

  hg log -r 'modifies(mercurial/context.py)' >/dev/null

from 7.5s to 4s.

Also see similar fix in f2aeff8a87b6 (revset: avoid recalculating
filesets, 2014-10-22).
FUJIWARA Katsunori
help: use ":hg:`command`" instead of incorrect ":hg:'command'" notation
FUJIWARA Katsunori
i18n: add i18n comment to error messages of filesets predicates
FUJIWARA Katsunori
i18n: add i18n comment to error messages of template functions
FUJIWARA Katsunori
help: refer ":merge3" instead of "internal:merge3"

According to warning message (introduced by 38e0363dcbe0) in
filemerge.py, the former should be used as official name.
FUJIWARA Katsunori
i18n: make hint message of exception translatable
FUJIWARA Katsunori
help: use "hg files" instead of "hg locate" in "hg help filesets"

The latter command is already deprecated.
FUJIWARA Katsunori
files: refer "hg help filesets" instead of "hg help revsets" in help text

"specifying FILE patterns" should refer the former.
Matt Mackall
tests: silence output race in test-run-tests.t
Matt Mackall
merge with i18n
Wagner Bruna
i18n-pt_BR: synchronized with 8d43c6bb38c0
Wagner Bruna
i18n-pt_BR: synchronized with c312ef382033
Pierre-Yves David
transaction: only generate file when we actually close the transaction

Before this change, the file were written for every call to `tr.close()`
exposing data to reader far too early.
Pierre-Yves David
transaction: extract file generation into its own function

We extract the code generating files into its own function. We are
about to move this code around to fix a bug. We'll need it in a
function soon to reuse it for "pending" logic. So we move the code
into a function instead of moving it twice.
Matt Harbison
amend: abort early if no username is configured with evolve enabled (issue4211)

Amend will reuse the original username if a new one is not provided
with -U, but obsolete.createmarkers() only considers ui.username() for
the obsolete marker's metadata. Allowing the metadata field to be
spoofed seems to defeat the point of the field in the first place.
This covers 'evolve amend' and 'ci --amend' with evolve enabled.

Without this, the transaction aborts but the parent changeset is set to -1.  The
corresponding test will be added to evolve separately.
Durham Goode
revset: fix O(2^n) perf regression in addset

hg log -r 1 ... -r 100 was never returning due to a regression in the
way addset computes __nonzero__. It used 'bool(self._r1 or self._r2)'
which required executing self._r1.__nonzero__ twice (once for the or,
once for the bool). hg log with a lot of -r's happens to build a one
sided addset tree of N length, which ends up being 2^N performance.

This patch fixes it by converting to bool before or'ing.

This problem can be repro'd with something as simple as:

hg log `for x in $(seq 1 50) ; do echo "-r $x "; done`

Adding '1 + 2 + ... + 20' to the revsetbenchmark.txt didn't seem to repro the
problem, so I wasn't able to add a revset benchmark for this issue.
Matt Mackall
tests: add missing glob for Windows
Matt Mackall
test-convert-svn-sink: properly isolate symlink section

This was fixed earlier by moving all the symlink bits to a section to
the end of the file, but then it was broken (by the same person) by
adding more tests at the end.
Siddharth Agarwal
util.fspath: use a dict rather than a linear scan for lookups

Previously, we'd scan through the entire directory listing looking for a
normalized match.  This is O(N) in the number of files in the directory. If we
decide to call util.fspath on each file in it, the overall complexity works out
to O(N^2). This becomes a problem with directories a few thousand files or

Switch to using a dictionary instead. There is a slightly higher upfront cost
to pay, but for cases like the above this is amortized O(1). Plus there is a
lower constant factor because generator comprehensions are faster than for
loops, so overall it works out to be a very small loss in performance for 1
file, and a huge gain when there's more.

For a large repo with around 200k files in it on a case-insensitive file
system, for a large directory with over 30,000 files in it, the following
command was tested:

ls | shuf -n $COUNT | xargs hg status

This command leads to util.fspath being called on $COUNT files in the

COUNT  before  after
    1  0.77s  0.78s
  100  1.42s  0.80s
1000    6.3s  0.96s

I also tested with COUNT=10000, but before took too long so I gave up.
Matt Mackall
test-clone.t: drop message about listing bookmarks with no hardlinks
Matt Mackall
tests: don't try to test unix sockets on vfat
FUJIWARA Katsunori
tests: change obsolete timestamp to avoid "gmtime()" problem on Windows

Before this patch, "test-obsolete.t" fails on Windows environment,
because strings corresponded to "tm_wday" (day of the week) field are

On POSIX environment, "gmtime()" returns correct "tm_wday" value even
for negative "time_t" value. On the other hand, it returns incorrect
one on Windows environment. At least, "gmtime()" of the Windows
runtime library bundled with Python 2.7.3 does.

According to 9a7d0f7e0561 introducing original timestamp value '56
120', it shouldn't cause negative "time_t" value.

    test-obsolete: remove subminute timezone in test

    Obsmarker format "1" does not supports sub minute timezone. So we
    change the test to something slightly more sensible.

It replaced "-d '56 12'" by "-d '56 120'".
FUJIWARA Katsunori
tests: use "%HG_ARGS%" in shell alias on Windows instead of "$HG_ARGS"

Before this patch, a part of "test-alias.t" fails unexpectedly on
Windows environment, because "cmd.exe" can't evaluate "$HG_ARGS"
expression in shell alias correctly.

This patch uses "%HG_ARGS%" in shell alias on Windows instead of
"$HG_ARGS" to expand it correctly.
FUJIWARA Katsunori
tests: introduce "checkeditform-n-cat.sh" script to invoke "cat" in it safely

Before this patch, a part of "test-transplant.t" fails unexpectedly on
Windows environment, because semicolon (";") in HGEDITOR isn't
recognized as the command separator by "cmd.exe".

This patch newly introduces "checkeditform-n-cat.sh" script to invoke
"cat" in it safely anywhere.