Thu, 24 Jan 2019 10:21:59 -0500 cleanup: use clang-tidy to add missing {} around one-line statements
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 10:21:59 -0500] rev 41336
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
Thu, 24 Jan 2019 11:35:40 -0500 py3: port test-batching.py to python3
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:35:40 -0500] rev 41335
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
Thu, 24 Jan 2019 11:34:18 -0500 py3: fix missing b prefixes in test-arbitraryfilectx.t
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:34:18 -0500] rev 41334
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
Thu, 24 Jan 2019 11:39:38 -0500 py3: add missing b prefixes in test-acl.t
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:39:38 -0500] rev 41333
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
Thu, 24 Jan 2019 11:00:32 -0500 py3: buildbot found more passing tests, thanks to indygreg for most of them
Augie Fackler <augie@google.com> [Thu, 24 Jan 2019 11:00:32 -0500] rev 41332
py3: buildbot found more passing tests, thanks to indygreg for most of them Differential Revision: https://phab.mercurial-scm.org/D5676
Wed, 16 Jan 2019 17:04:50 -0800 tests: drop a duplicate definition of a constant
Martin von Zweigbergk <martinvonz@google.com> [Wed, 16 Jan 2019 17:04:50 -0800] rev 41331
tests: drop a duplicate definition of a constant Differential Revision: https://phab.mercurial-scm.org/D5663
Wed, 23 Jan 2019 17:57:43 -0800 tests: support URL quoting on Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:57:43 -0800] rev 41330
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
Wed, 23 Jan 2019 17:45:11 -0800 tests: write directly to stdout to avoid b'' prefixes
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:45:11 -0800] rev 41329
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
Wed, 23 Jan 2019 17:41:46 -0800 tests: handle string escaping/encoding on Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:41:46 -0800] rev 41328
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
Wed, 23 Jan 2019 16:21:36 -0800 convert: use raw strings for XML strings
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 16:21:36 -0800] rev 41327
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
Wed, 23 Jan 2019 16:22:54 -0800 tests: normalize XML values to bytes
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 16:22:54 -0800] rev 41326
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
Wed, 23 Jan 2019 17:26:00 -0800 hgweb: ensure template mapping keys are bytes
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 23 Jan 2019 17:26:00 -0800] rev 41325
hgweb: ensure template mapping keys are bytes Before, str keys were being added in Python 3 because named arguments to dict() use native str for keys. This caused the templater to fail to find the keys since it was looking for bytes versions. This makes a handful of tests pass on Python 3. We may want to consider having the templater validate that keys in mapping dicts are bytes. But I'm unsure whether this is appropriate and won't be doing this. Differential Revision: https://phab.mercurial-scm.org/D5666
Tue, 22 Jan 2019 18:25:34 -0800 remotefilelog: use %d to format an int
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:25:34 -0800] rev 41324
remotefilelog: use %d to format an int Differential Revision: https://phab.mercurial-scm.org/D5656
Tue, 22 Jan 2019 18:24:52 -0800 tests: use bytes for file I/O
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:24:52 -0800] rev 41323
tests: use bytes for file I/O Otherwise we get various type mismatches. Differential Revision: https://phab.mercurial-scm.org/D5655
Tue, 22 Jan 2019 18:23:47 -0800 tests: make filenames bytes for Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:23:47 -0800] rev 41322
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
Tue, 22 Jan 2019 18:16:53 -0800 tests: use assertEqual()
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:16:53 -0800] rev 41321
tests: use assertEqual() This avoids a deprecation warning under at least Python 3.7. Differential Revision: https://phab.mercurial-scm.org/D5653
Tue, 22 Jan 2019 18:11:34 -0800 tests: add setsockopt() output on Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:11:34 -0800] rev 41320
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
Tue, 22 Jan 2019 18:07:51 -0800 hgweb: don't use raw string for session vars
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 18:07:51 -0800] rev 41319
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
Tue, 22 Jan 2019 17:50:52 -0800 tests: normalize to bytes in test-install.t
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 17:50:52 -0800] rev 41318
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
Tue, 22 Jan 2019 17:08:53 -0800 config: reject str sections and keys on Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 17:08:53 -0800] rev 41317
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
Tue, 22 Jan 2019 17:02:40 -0800 tests: add size and hash for Python 3
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 17:02:40 -0800] rev 41316
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
Tue, 22 Jan 2019 16:58:48 -0800 httppeer: use %s for formatting
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 16:58:48 -0800] rev 41315
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
Tue, 22 Jan 2019 16:54:56 -0800 tests: add b'' to notcapable
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 16:54:56 -0800] rev 41314
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
Tue, 22 Jan 2019 16:53:24 -0800 tests: add b'' to test-missing-capability.t
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 22 Jan 2019 16:53:24 -0800] rev 41313
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
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip