Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 24 Jan 2019 18:14:39 +0300] rev 41380
tests: fix module-import warnings in test-update-atomic.t
These were caught by test-check-module-imports.t on Python 3.
This should also make python3-buildbot green again.
Differential Revision: https://phab.mercurial-scm.org/D5674
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 18 Jan 2019 19:28:31 +0530] rev 41379
py3: use dict.items() instead of dict.iteritems() in tests/test-lfs-server.t
dict.iteritems() is not present on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D5673
Pulkit Goyal <pulkit@yandex-team.ru> [Fri, 18 Jan 2019 19:26:28 +0530] rev 41378
py3: add b'' prefixes in tests/test-lfs-serve.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5672
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 24 Jan 2019 18:09:34 +0300] rev 41377
py3: add b'' prefixes in doc/check-seclevel.py
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5670
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 15:52:59 -0500] rev 41376
tests: remove some over-globbing in test-dispatch.t
Hilariously, this was exposed by Python 3 work.
Differential Revision: https://phab.mercurial-scm.org/D5689
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 15:23:20 -0500] rev 41375
py3: port test-parseindex.t to Python 3
Differential Revision: https://phab.mercurial-scm.org/D5686
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 15:04:30 -0500] rev 41374
py3: almost fix test-trusted.py
The test now only fails due to output format changes on the repr of
mercurial.error.ParseError. I'm not really sure how to approach that
for now.
Differential Revision: https://phab.mercurial-scm.org/D5685
Yuya Nishihara <yuya@tcha.org> [Fri, 25 Jan 2019 18:55:23 +0900] rev 41373
merge with stable
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 15:03:00 -0500] rev 41372
py3: fix test-update-atomic.t
The .replace('o', '') hack on oct() return value is required because:
% python -c 'print(oct(10))'
012
% python3 -c 'print(oct(10))'
0o12
Differential Revision: https://phab.mercurial-scm.org/D5684
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 15:02:28 -0500] rev 41371
py3: fix test-newcgi.t
Differential Revision: https://phab.mercurial-scm.org/D5683
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 14:12:00 -0500] rev 41370
py3: fix up test-encoding-align.t for python3
I'm not super thrilled with how this reads, but the original didn't
thrill me either.
Differential Revision: https://phab.mercurial-scm.org/D5682
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 13:57:23 -0500] rev 41369
py3: these two casefolding tests pass for me on my Mac
I assume the buildbot didn't catch them because it's on a
case-sensitive filesystem.
Differential Revision: https://phab.mercurial-scm.org/D5681
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 13:54:45 -0500] rev 41368
py3: port test-bugzilla.t to Python 3
Some assorted fixes required in the extension itself, all around
bytes/str issues.
Differential Revision: https://phab.mercurial-scm.org/D5680
Martin von Zweigbergk <martinvonz@google.com> [Sun, 20 Jan 2019 21:49:58 -0800] rev 41367
uncommit: set dirstateparents from within _fixdirstate()
It's now done in the same way for uncommit and unamend, so we can
share the code.
Differential Revision: https://phab.mercurial-scm.org/D5662
Martin von Zweigbergk <martinvonz@google.com> [Sun, 20 Jan 2019 22:00:25 -0800] rev 41366
unamend: fix unamending of renamed rename
Before this patch, we were passing in the result of a status call for
a different set of commits than what we calculated copies for, which
seemed suspicous to me. The rewritten version gets status and copy
information from the same sets of commits.
Differential Revision: https://phab.mercurial-scm.org/D5661
Martin von Zweigbergk <martinvonz@google.com> [Sun, 20 Jan 2019 22:00:21 -0800] rev 41365
uncommit: mark old node obsolete after updating dirstate
The next patch will start doing more things with the context object
for the old node and that ran into problems without this
change. Regardless of that, I think it seems better to first update to
the new node and then mark the old node obsolete.
Differential Revision: https://phab.mercurial-scm.org/D5660
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Jan 2019 17:09:42 -0800] rev 41364
unamend: import "copies" module as "copiesmod" to avoid shadowing
Differential Revision: https://phab.mercurial-scm.org/D5659
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Jan 2019 17:08:02 -0800] rev 41363
tests: add more tests of uncommit/unamend with copies
The unamend tests show suboptimal behavior.
Differential Revision: https://phab.mercurial-scm.org/D5658
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Jan 2019 16:49:18 -0800] rev 41362
tests: clean up after each test in test-unamend.t
Differential Revision: https://phab.mercurial-scm.org/D5657
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 10:21:59 -0500] rev 41361
cleanup: use clang-tidy to add missing {} around one-line statements
I find this easier to read. Cleanup performed like this:
hg files 'set:(**.c or **.cc or **.h) and not "listfile:contrib/clang-format-ignorelist"' | while read f ; do
clang-tidy -fix -checks=readability-braces-around-statements $f -- $(python-config --cflags) -Imercurial/cext -Imercurial
done
make format-c
I had to revert chg/chg.c as it's got a construct that seems to confuse
clang-tidy, so I'll work on that file later if this change is acceptable. I
only tackle files that are under clang-format's authority because otherwise
I'd have to do a bunch of manual formatting. A few files didn't get edited
because clang-tidy couldn't find some headers. Again, I'll figure that out
later assuming this change is accepted.
No check-code rule added for now because writing the regex sounds hard. In a
perfect world I guess we could write a test that uses clang-tidy on these
files, but I think clang-tidy is pretty rarely installed. :/
Differential Revision: https://phab.mercurial-scm.org/D5675
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:35:40 -0500] rev 41360
py3: port test-batching.py to python3
I used byteify-strings.py on this file, then manually added the
various pycompat and bprint bits as needed.
Differential Revision: https://phab.mercurial-scm.org/D5678
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:34:18 -0500] rev 41359
py3: fix missing b prefixes in test-arbitraryfilectx.t
Test passes on Python 3.
# skip-blame b prefixes
Differential Revision: https://phab.mercurial-scm.org/D5679
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:39:38 -0500] rev 41358
py3: add missing b prefixes in test-acl.t
There's one failure left in the test, which looks like a real problem
around executing hooks. I have not investigated further.
# skip-blame as just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D5677
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:00:32 -0500] rev 41357
py3: buildbot found more passing tests, thanks to indygreg for most of them
Differential Revision: https://phab.mercurial-scm.org/D5676
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Jan 2019 17:04:50 -0800] rev 41356
tests: drop a duplicate definition of a constant
Differential Revision: https://phab.mercurial-scm.org/D5663
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:57:43 -0800] rev 41355
tests: support URL quoting on Python 3
We could use mercurial.urllibcompat, but meh. This makes things
easier to read.
The test still fails on Python 3 for some reason. But at least
we no longer have an exception.
Differential Revision: https://phab.mercurial-scm.org/D5669
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:45:11 -0800] rev 41354
tests: write directly to stdout to avoid b'' prefixes
This enables the test to pass on Python 3.
Differential Revision: https://phab.mercurial-scm.org/D5668
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:41:46 -0800] rev 41353
tests: handle string escaping/encoding on Python 3
This code was failing on Python 3 for a few reasons:
1) sys.argv is str and str doesn't have a .decode()
2) the "string_escape" encoding was renamed to "unicode_escape"
It is wonky casting to bytes to str to bytes. But this is test
code, so meh. I don't believe we exercise any code paths in these
tests where the arguments aren't ascii.
Differential Revision: https://phab.mercurial-scm.org/D5667
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 16:21:36 -0800] rev 41352
convert: use raw strings for XML strings
Due to the source transformer, we were passing bytes into the
XML APIs. This results in not finding elements and doing compares
against mismatched types.
Use raw string literals so we use str everywhere.
Differential Revision: https://phab.mercurial-scm.org/D5664
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 16:22:54 -0800] rev 41351
tests: normalize XML values to bytes
This fixes some type mismatches. The encoding shouldn't matter
for what this script is used for. UTF-8 seems reasonable, especially
since I'm pretty sure SVN will emit UTF-8 encoded XML.
Differential Revision: https://phab.mercurial-scm.org/D5665