Commit Graph

35203 Commits

Author SHA1 Message Date
Pulkit Goyal
8632444f59 py3: pass bytes from extension to ui.write() in test-revlog-mmapindex.t
This makes the test pass on Python 3.

Differential Revision: https://phab.mercurial-scm.org/D1674
2017-12-11 05:26:46 +05:30
Pulkit Goyal
431feb4f20 py3: handle keyword arguments correctly in hgext/record.py
Differential Revision: https://phab.mercurial-scm.org/D1673
2017-12-10 06:36:48 +05:30
Pulkit Goyal
16cd827e4d py3: handle keyword arguments correctly in bundlerepo.py
Differential Revision: https://phab.mercurial-scm.org/D1672
2017-12-10 06:36:35 +05:30
Pulkit Goyal
0f103b6c32 py3: handle keyword arguments correctly in debugcommands.py
Differential Revision: https://phab.mercurial-scm.org/D1671
2017-12-10 06:36:20 +05:30
Martin von Zweigbergk
14dfe2a25c memfilectx: make changectx argument mandatory in constructor (API)
committablefilectx has three subclasses: workingfilectx, memfilectx,
and overlayfilectx. committablefilectx takes an optional (change) ctx
instance to its constructor. If it's provided, it's set on the
instance as self._changectx. If not, that property is supposed to be
defined by the class. However, only workingfilectx does that. The
other two will have the property undefined if it's not passed in the
constructor. That seems bad to me. This patch makes the changectx
argument to the memfilectx constructor mandatory because that fixes
the failure I ran into. It seems like we should also fix the
overlayfilectx case.

Differential Revision: https://phab.mercurial-scm.org/D1658
2017-12-11 09:27:40 -08:00
Martin von Zweigbergk
61a1dbf4cf debugbuilddag: create filectx instance in 'filectxfn' callback
Same motivation is previous patch.

Differential Revision: https://phab.mercurial-scm.org/D1670
2017-12-09 14:22:12 -08:00
Martin von Zweigbergk
591bc82392 synthrepo: create filectx instance in 'filectxfn' callback
I would like to pass the memctx to the memfilectx constructor, but
it's not available where we currently create the memfilectx. It is
available in the 'filectxfn' callback, so let's create the memfilectx
there instead. A later patch will start actually passing the memctx.

Differential Revision: https://phab.mercurial-scm.org/D1669
2017-12-09 14:15:30 -08:00
Matt Harbison
241446a76e lfs: use 'ui' provided to upgrade for output, instead of stealing srcrepo's
Also spotted by Yuya.
2017-12-12 20:28:38 -05:00
Matt Harbison
207273d40a lfs: correct the directory list value returned by lfsvfs.walk()
Spotted by Yuya.
2017-12-12 20:22:38 -05:00
Paul Morelle
f04d01e693 debuglocks: allow setting a lock 2017-11-12 15:34:46 +01:00
Paul Morelle
6d5adee26c debuglocks: add tests (and fix typo in early return) 2017-11-12 15:34:19 +01:00
Matt Harbison
7d8bebd9c1 tests: remove (glob) annotations that were only for '\' matches
# skip-blame because this was mechanically rewritten the following script.  I
ran it on both *.t and *.py, but none of the *.py changes were proper.  All *.t
ones appear to be, and they run without addition failures on both Windows and
Linux.

  import argparse
  import os
  import re

  ap = argparse.ArgumentParser()
  ap.add_argument('path', nargs='+')
  opts = ap.parse_args()

  globre = re.compile(r'^(.*) \(glob\)(.*)$')

  for p in opts.path:
      tmp = p + '.tmp'
      with open(p, 'rb') as src, open(tmp, 'wb') as dst:
          for line in src:
              m = globre.match(line)
              if not m or '$LOCALIP' in line or '*' in line:
                  dst.write(line)
                  continue
              if '?' in line[:-3] or ('?' in line[:-3] and line[-3:] != '(?)'):
                  dst.write(line)
                  continue
              dst.write(m.group(1) + m.group(2) + '\n')
      os.unlink(p)
      os.rename(tmp, p)
2017-12-10 22:50:57 -05:00
Matt Harbison
1c506fb28b check-code: drop the rules for adding (glob) for Windows paths
I'll probably resurrect at least some of these as replacement patterns to switch
'\' to '/' when creating tests at some point.  But since this subset of globs
isn't needed anymore after 1c1248ea2685, and the rules are blocking the glob
removal, just drop them for now.  It probably isn't worth turning them into
checks for unnecessary globs being present.
2017-12-10 22:45:35 -05:00
Matt Harbison
f849320c42 run-tests: stop automatically adding a (glob) for bundle backup lines
This is the first step to dropping the existing globs for '\' matches, now that
it is handled automatically.  Instead of just dropping it, this pattern is now
used to convert to '/' paths, to reduce the amount of manual cleanup required
when creating tests on Windows.
2017-12-10 19:21:48 -05:00
Anton Shestakov
d2fc494432 hgweb: implement json-graph
It's essentially a copy of json-log with graph-related things added (col, row,
color, edges).
2017-12-07 17:18:29 +08:00
Phil Cohen
27591b2ae0 rebase: replace --inmemory flag with rebase.experimental.inmemory config
Differential Revision: https://phab.mercurial-scm.org/D1666
2017-12-11 22:16:13 -08:00
Augie Fackler
c207c2b0a0 tests: add some commentary and diagnostics to test-run-tests.t
Hopefully this will give us a shot at fixing it on the Windows builder.

Differential Revision: https://phab.mercurial-scm.org/D1653
2017-12-11 09:37:11 -05:00
Phil Cohen
86be3bceed tests: add commit hashes to log commands in rebase tests
Commit hashes are a useful way to ensure the content of commits made in the
tests are not changing, even if we don't query every aspect of every commit.
(And some properties, like extras, are rarely printed at all.)

Many of the rebase log -G calls didn't show hashes; by adding hashes to places
that weren't showing them we can help protect those tests from unwanted
changes.

Differential Revision: https://phab.mercurial-scm.org/D1650
2017-12-10 21:57:37 -08:00
Phil Cohen
10f9b7c52d tests: add a simple test for in-memory rebase
This is just a very simple start, but verifies some of the basic cases of an
in-memory rebase.

Differential Revision: https://phab.mercurial-scm.org/D1652
2017-12-10 22:39:46 -08:00
Yuya Nishihara
2c190381f2 patch: do not break up multibyte character when highlighting word
This changes {\W} to {\W - any 8bit characters} so that multibyte sequences
are taken as words. Since we don't know the encoding of user content, this
is the most sensible definition of a non-word.
2017-12-11 22:38:31 +09:00
Matt Harbison
b2d78bc596 run-tests: accept '\' vs '/' path differences without '(glob)'
Having to constantly adjust these is a hassle.  It's easy for this to slip by
when not testing on Windows, and then when it happens on stable, the tests fail
for the next 3 months if we follow the rules for stable.

This works the same way the EOL differences are ignored, namely to adjust on the
fly and recheck on Windows.  I can't think of any situation where there would be
a '\' on Windows, a '/' elsewhere, and the '/' should be considered a failure on
Windows.

This fixes the obvious output problems where (glob) is missing.  Without this,
test-alias.t, test-remotenames.t and test-largefiles-misc.t are failing.  The
flip side (not handled by this) is the case where an unnecessary glob is
present.  There seems to be two separate behaviors.  f3517e22bfa1 is an example
of where the test has been autocorrecting (with output differences), and
ed159a9fcf2a is an example where the test fails and reports 'no result code from
test'.  Hopefully those cases will become even more rare if people don't need to
guess at when a glob is needed for a Windows path.

It's probably unreasonable to submit a single patch that wipes out all of the
(glob) instances that were only used to hide path differences, given the churn
from other contributors.  Since their presence isn't harming the tests, these
can be removed through attrition.
2017-12-10 00:16:11 -05:00
Matt Harbison
1a1aaf5b24 run-tests: suggest a (glob) for os.path.sep mismatches with '\r\n' EOL too
We already do this for lines ending in '\n', such that the test only needs to be
run with --interactive and the changes accepted at the end.  But that wasn't
working with list-tree.py output for example, and required manual fixup.
2017-12-10 00:00:36 -05:00
Matt Harbison
3dc05ee5ec tests: stabilize the sorted output of list-tree.py on Windows
The test-largefiles-misc.t test was moving 'dir2\' before 'dir\' because while
'/' precedes most of the printable ASCII characters, '\' comes after numbers and
capital letters, among other symbols.
2017-12-09 23:46:44 -05:00
Yuya Nishihara
c49a9c7ce9 upgrade: simplify workaround for repo.ui.copy()
Copied from commandserver.py.
2017-12-10 19:43:35 +09:00
Yuya Nishihara
822286f829 debugformat: embed raw values in JSON and template output 2017-12-10 19:41:49 +09:00
Yuya Nishihara
4087d826c3 debugformat: flush formatter output per item 2017-12-10 19:39:39 +09:00
Augie Fackler
88c872e24a tests: use Python to write binary data in lfs test instead of shell
The shell construct here appears to be unevenly supported: it works in /bin/sh
on FreeBSD, but it doesn't seem to work when /bin/sh is dash. Using a Python
inline directive works fine, so let's just do that instead.

Differential Revision: https://phab.mercurial-scm.org/D1636
2017-12-09 19:42:51 -06:00
Pulkit Goyal
c686f85e02 py3: add 32 new tests passing to the whitelist
Yay, we have crossed 100 in number of tests passing on Python 3. There are 662
tests in our test suite, so there is a lot more which is need to be done.

Differential Revision: https://phab.mercurial-scm.org/D1648
2017-12-10 05:41:05 +05:30
Pulkit Goyal
86a5e03ac9 py3: handle keyword arguments correctly in wireproto.py
Differential Revision: https://phab.mercurial-scm.org/D1647
2017-12-10 04:50:16 +05:30
Pulkit Goyal
6761fcb06c py3: handle keyword arguments correctly in ui.py
Differential Revision: https://phab.mercurial-scm.org/D1646
2017-12-10 04:50:03 +05:30
Pulkit Goyal
8c5ba9bb57 py3: handle keyword arguments correctly in templater.py
Differential Revision: https://phab.mercurial-scm.org/D1645
2017-12-10 04:49:53 +05:30
Pulkit Goyal
80ffc07485 py3: handle keyword arguments correctly in subrepo.py
Differential Revision: https://phab.mercurial-scm.org/D1644
2017-12-10 04:49:40 +05:30
Pulkit Goyal
8c4548467b py3: handle keyword arguments correctly in statprof.py
Differential Revision: https://phab.mercurial-scm.org/D1643
2017-12-10 04:49:29 +05:30
Pulkit Goyal
e8a3265517 py3: handle keyword arguments correctly in sslutil.py
Differential Revision: https://phab.mercurial-scm.org/D1642
2017-12-10 04:48:59 +05:30
Pulkit Goyal
dd73be4eea py3: handle keyword arguments correctly in simplemerge.py
Differential Revision: https://phab.mercurial-scm.org/D1641
2017-12-10 04:48:24 +05:30
Pulkit Goyal
77c5fc90a9 py3: handle keyword arguments correctly in revset.py
Differential Revision: https://phab.mercurial-scm.org/D1640
2017-12-10 04:48:12 +05:30
Pulkit Goyal
87c0c860ea py3: handle keyword arguments correctly in patch.py
Differential Revision: https://phab.mercurial-scm.org/D1639
2017-12-10 04:48:00 +05:30
Pulkit Goyal
9604dcaea2 py3: handle keyword arguments correctly in obsolete.py
Differential Revision: https://phab.mercurial-scm.org/D1638
2017-12-10 04:47:49 +05:30
Pulkit Goyal
5cb6f2403e py3: handle keyword arguments correctly in keepalive.py
Differential Revision: https://phab.mercurial-scm.org/D1637
2017-12-10 04:47:34 +05:30
Matt Harbison
3e757c482b lfs: restore the local blob store after a repo upgrade
This also ends up testing the local extension wrapping for dstrepo during
upgrade, which was fixed in f0a28956f345.
2017-12-08 00:18:30 -05:00
Matt Harbison
de1f4a0c73 lfs: override walk() in lfsvfs
In order to fix the missing lfs store after an upgrade, I attempted to walk the
store vfs to hardlink to the upgraded repo's store.  But the custom join()
clashes with the default walk() implementation.  First, 'path=None' blew up in
the regex matcher, because it wanted a string.  But even if that is fixed, the
join to walk the root of the vfs wouldn't match the required xx/xx...xx pattern.

The first cut of this was a copy/paste/tweak of the base implementation, but
this version of walk() hides the internal directories, and treats the vfs as a
flat store.  I think this makes sense because most vfs methods call join() on
input paths, which wants the simple oid format.  It also relieves the caller
from having to deal with bogus files/directories in the store.
2017-12-07 23:44:06 -05:00
Matt Harbison
b798276c65 tests: add coverage for preserving 'lfs' requirement on repo upgrade
The test also shows that the local blob store is erroneously lost.
2017-12-07 22:36:31 -05:00
Matt Harbison
0474cfef45 test-upgrade-repo: glob away timing values 2017-12-07 22:35:19 -05:00
Pulkit Goyal
113475a070 py3: handle keyword arguments correctly in httppeer.py
Differential Revision: https://phab.mercurial-scm.org/D1635
2017-12-10 04:47:21 +05:30
Pulkit Goyal
90a31fc989 py3: handle keyword arguments correctly in httpconnection.py
Differential Revision: https://phab.mercurial-scm.org/D1634
2017-12-10 04:47:04 +05:30
Pulkit Goyal
30c3b22414 py3: handle keyword arguments correctly in hook.py
Differential Revision: https://phab.mercurial-scm.org/D1633
2017-12-10 04:46:50 +05:30
Pulkit Goyal
4a3c34a274 py3: handle keyword arguments correctly in help.py
Differential Revision: https://phab.mercurial-scm.org/D1632
2017-12-10 04:46:39 +05:30
Pulkit Goyal
ca041d8604 py3: handle keyword arguments correctly in exchange.py
Differential Revision: https://phab.mercurial-scm.org/D1631
2017-12-10 04:46:25 +05:30
Pulkit Goyal
616684d4c9 py3: handle keyword arguments correctly in dispatch.py
Differential Revision: https://phab.mercurial-scm.org/D1630
2017-12-10 04:46:13 +05:30
Pulkit Goyal
56f56fc9fd py3: handle keyword arguments correctly in context.py
Differential Revision: https://phab.mercurial-scm.org/D1629
2017-12-10 04:45:56 +05:30