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

Console View

Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

Gregory Szorc
hgweb: don't use raw string for session vars

This r'' is leaking into the templating layer and causing an
assertion failure.

The r'' was added in d1fccbd50fcd (October 2017). Similar code
in hgweb_mod.py was also changed in that changeset. hgweb_mod.py was
updated in ec46415ed826 (March 2018) to use webutil.sessionvars(),
which doesn't use raw strings.

Differential Revision: https://phab.mercurial-scm.org/D5651
Augie Fackler
fuzz: don't allow enormous revlog inputs either

I'm about to make the fuzzer do more, and without this it was getting
enthusiastic about large (and therefore slow) inputs that I don't
think buy us much.

Differential Revision: https://phab.mercurial-scm.org/D5640
Gregory Szorc
tests: add setsockopt() output on Python 3

Python 3 appears to call setsockopt() where Python 2 did not.

Differential Revision: https://phab.mercurial-scm.org/D5652
Gregory Szorc
httppeer: use %s for formatting

This prevents a b'' from appearing in Python 3 output. We keep the
single quotes for backwards compatibility.

Differential Revision: https://phab.mercurial-scm.org/D5647
Gregory Szorc
tests: normalize to bytes in test-install.t

directory() was returning str and hgdirectory() was returning
bytes. This made the set compare fail. Let's normalize the types
on Python 3 so the test passes.

Differential Revision: https://phab.mercurial-scm.org/D5650
Gregory Szorc
config: reject str sections and keys on Python 3

Otherwise we could end up with a dict having both the str
and bytes versions of a particular config item. This may cause
some tests to regress. I haven't checked. But it is better
behavior to fail fast.

We could just as easily change this to normalize the values. But
I like catching all non-compliant call sites first.

Differential Revision: https://phab.mercurial-scm.org/D5649
Augie Fackler
fuzz: exercise more of the revlog API

I noticed in the coverage report that we didn't have much coverage in
revlog.py. Let's try and get some of the more interesting bits tested
by the fuzzer. I ran this locally for a few minutes to verify that I
appear to be calling the various functions in reasonable ways.

Differential Revision: https://phab.mercurial-scm.org/D5641
Gregory Szorc
remotefilelog: use %d to format an int

Differential Revision: https://phab.mercurial-scm.org/D5656
Gregory Szorc
tests: add size and hash for Python 3

test-archive.t now passes on Python 3.7.1.

Differential Revision: https://phab.mercurial-scm.org/D5648
Gregory Szorc
tests: add b'' to notcapable

This fixes some exceptions in a few tests.

# skip-blame just b'' prefixes

Differential Revision: https://phab.mercurial-scm.org/D5646
Gregory Szorc
tests: use assertEqual()

This avoids a deprecation warning under at least Python 3.7.

Differential Revision: https://phab.mercurial-scm.org/D5653
Augie Fackler
fuzz: restrict manifest input size

Again, let's keep the fuzzer from getting excited about huge inputs.

Differential Revision: https://phab.mercurial-scm.org/D5642
Gregory Szorc
tests: use bytes for file I/O

Otherwise we get various type mismatches.

Differential Revision: https://phab.mercurial-scm.org/D5655
Augie Fackler
fuzz: exercise more of the lazymanifest code

Differential Revision: https://phab.mercurial-scm.org/D5643
Gregory Szorc
tests: make filenames bytes for Python 3

I also snuck a %s -> %d in there to appease Python 3.

Differential Revision: https://phab.mercurial-scm.org/D5654
Gregory Szorc
tests: add b'' to test-missing-capability.t

The test now passes on Python 3.

# skip-blame just b'' prefixes

Differential Revision: https://phab.mercurial-scm.org/D5645
Martin von Zweigbergk
merge with stable
Yuya Nishihara
rust: add comment about lack of wdirrev handling

If hg is compiled with rust support, 'only(wdir())' crashed as
"rustext.GraphError: ('ParentOutOfRange', 2147483647)", which should instead
say "abort: working directory revision cannot be specified."
Yuya Nishihara
templatekw: fix crash on multiple latesttags resolution at wdir (issue6055)

It appears not easy to fix only() to support wdir(), so this patch works
around the issue by getlatesttags(). The "+1" after len(changes) doesn't
matter since ctx never changes while sorting. It's just for clarity.
Yuya Nishihara
test-template-keywords: add test for {latesttag} of wdir() revision

It's probably broken since fb672eac2702, "templatekw: choose {latesttag}
by len(changes), not date (issue5659)". only() doesn't support wdir.
Martin von Zweigbergk
narrow: fix crash when restoring backup in legacy repo

Using --addremove when committing in an old repo (before we started
keeping .hg/narrowspec.dirstate) results in a crash. The test
case modified in this patch would crash like this:

  abort: $ENOENT$

The issue is that when the dirstateguard is aborted, it tries to
restore the backup of .hg/narrowspec.dirstate. However, since we were
in an old repo, that file did not get created when the dirstateguard
was created. Note that the dirstateguard is not used unless
--addremove is passed.

This patch fixes the bug by making restorewcbackup() not fail if the
backup doesn't exist. I also made clearwcbackup() safe, just in case.

Differential Revision: https://phab.mercurial-scm.org/D5634
Boris Feld
revset: introduce an internal `_rev` predicate for '%d' usage

In 24a1f67bb75a, we aligned "%d" behavior on "%ld" one, invalid revisions got
silently ignored. However, soon after in 8aca89a694d4 and 26b0a7514f01, a side
effect changed the behavior of "%ld" to no longer silently filter invalid
revisions.

After discussion on the mailing list, it was decided to align on the new %ld
behavior:

https://www.mercurial-scm.org/pipermail/mercurial-devel/2019-January/127291.html

This changeset introduce a '_rev()' predicated that keep the benefit from
24a1f67bb75a while enforcing a more strict checking on the inputs.
Matt Harbison
help: modernize the example for command registration
Boris Feld
mmap: backed out changeset 74a9f428227e

There have been concrete and theoretical issues raised, this will need more
work during the next cycle.
Boris Feld
mmap: backed out changeset 875d2af8cb4e

There have been concrete and theoretical issues raised, this will need more
work during the next cycle.
Matt Harbison
help: document the minimumhgversion variable for extensions
Augie Fackler
Added signature for changeset 593718ff5844
Augie Fackler
Added tag 4.9rc0 for changeset 593718ff5844
Augie Fackler
merge default into stable for 4.9 release
Martin von Zweigbergk
scmutil: drop unreachable except clause

socket.error is a subclass of IOError, which we catch higher up. It
seems to have been this way since 020a896a5292 (dispatch: sort
exception handlers, 2009-01-12), so let's celebrate the 10 year
anniversary (a few days late) of it being wrong by deleting it.

Differential Revision: https://phab.mercurial-scm.org/D5626
Boris Feld
update: fix edge-case with update.atomic-file and read-only files

We used to create the tempfile with the original file mode. That means
creating a read-only tempfile when the original file is read-only, which crash
if we need to write on the tempfile.

The file in the working directory ends up being writable with and without the
atomic update config, so the behavior is the same.
Martin von Zweigbergk
tests: suppress "Checked out 1 paths of <hash>" from modern git

test-convert-git.t is failiing since git commit 0f086e6dca (checkout:
print something when checking out paths, 2018-11-13). Suppress the new
output by disambiguating the arguments with a "--" separator.

Differential Revision: https://phab.mercurial-scm.org/D5625
Yuya Nishihara
revlog: document that mmap resources are released implicitly by GC

It's okay-ish, but currently the open fd and the mapping itself are leaked
until the indexdata is deallocated. If revlog had close(), the underlying
resources should be closed there as well, but AFAIK there's no such hook
point.
Yuya Nishihara
cext: clang-format new code coming from stable branch
Yuya Nishihara
ui: proxy protect/restorestdio() calls to update internal flag

It should be better to manage the redirection flag solely by the ui class.
Yuya Nishihara
ui: move protectedstdio() context manager from procutil

This is a follow-up series for 23a00bc90a3c, "chgserver: do not send system()
back to client if stdio redirected." The function is renamed using ui terms.
Kyle Lippincott
resolve: fix mark-check when a file was deleted on one side (issue6020)

wvfs.open raises an error if one of the files does not exist. Ignoring the error
if it's ENOENT is done in several other places in this code, so I'm in good
company :)

Differential Revision: https://phab.mercurial-scm.org/D5243
Valentin Gatien-Baron
match: support rooted globs in hgignore

In a .hgignore, "glob:foo" always means "**/foo". This cannot be
avoided because there is no syntax like "^" in regexes to say you
don't want the implied "**/" (of course one can use regexes, but glob
syntax is nice).

When you have a long list of fairly specific globs like
path/to/some/thing, this has two consequences:
1. unintended files may be ignored (not too common though)
2. matching performance can suffer significantly
  Here is vanilla hg status timing on a private repository:

  Using syntax:glob everywhere
  real 0m2.199s
  user 0m1.545s
  sys 0m0.619s

  When rooting the appropriate globs
  real 0m1.434s
  user 0m0.847s
  sys 0m0.565s

  (tangentially, none of this shows up in --profile's output. It
  seems that C code doesn't play well with profiling)

The code already supports this but there is no syntax to make use of
it, so it seems reasonable to create such syntax. I create a new
hgignore syntax "rootglob".

Differential Revision: https://phab.mercurial-scm.org/D5493
Matt Harbison
exthelper: drop the addattr() decorator

Yuya pointed out that this goes against the typical advice to not add attributes
to classes[1].  The evolve extension still uses this a handful of times, so
maybe it should be brought back in the future if a general use is found.  But it
isn't nice to have a new helper API that can lead to easy problems.

[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2018-December/126330.html
Boris Feld
discovery: compute newly discovered missing in a more efficient way

Calling "descendants" is expensive, instead, we bound the walk inside the know set
of undecided revision.

This help with discovery performance:

# without the revset '%ld' improvement
$ hg perfdiscovery -R pypy-left pypy-right
before: wall 0.675631 comb 0.680000 user 0.670000 sys 0.010000 (median of 15)
after:  wall 0.520145 comb 0.530000 user 0.510000 sys 0.020000 (median of 19)

There is another series in flight that greatly improves performances of "%ld"
substitution in `repo.revs` call. If this changeset is applied above it, we
see a similar performance boost.

# with the revset '%ld' improvement
$ hg perfdiscovery -R pypy-left pypy-right
before: wall 0.477848 comb 0.480000 user 0.480000 sys 0.000000 (median of 22)
after:  wall 0.404163 comb 0.400000 user 0.400000 sys 0.000000 (median of 24)