Summary: The test itself needs to ensure it decodes the visibleheads file.
Reviewed By: quark-zju
Differential Revision: D19666640
fbshipit-source-id: 999ab3396b0afc7bd86db9ae1ba126730ee3f02d
Summary:
The commit message should already be a utf8 string. Make sure that when it is
read from a file, we decode it properly.
Reviewed By: sfilipco
Differential Revision: D19666371
fbshipit-source-id: ee24fe33b5aaf1ede54286979c9523cedd901b3a
Summary: D19663298 changed the return code, making this test fail
Reviewed By: singhsrb
Differential Revision: D19669105
fbshipit-source-id: c105cd130dcae3889946180761b1f51f4daae527
Summary:
The pipe expects bytes, but the code was passing in strings. Since the protocol
is ascii only, we can encode/decode the str/bytes
Reviewed By: farnz
Differential Revision: D19666372
fbshipit-source-id: 095bf50b9e9529c4ea7d1a06ac01643bac47bca3
Summary:
Add a partial stub so pyre stops complaining about "bindings" being unknown.
Pyre's "search_path" was adjusted to read the new "pystubs" directory.
Reviewed By: DurhamG
Differential Revision: D19669131
fbshipit-source-id: a592ed411d1689058405689eb657e543b7172774
Summary: Patches are bytes, so the lines we add to them need to be bytes
Reviewed By: mitrandir77
Differential Revision: D19668850
fbshipit-source-id: cb521f71d927dbe1cbe3287be37123b609889846
Summary:
Fixes a few encoding issues for changegroup/bundle2 related issues. In
particular makes magic string comparison use strings.
Reviewed By: xavierd
Differential Revision: D19668613
fbshipit-source-id: c1bc8ab76d13bb04a9c440b5d9d9babfe34c5c92
Summary:
It decides whether to render the actual values by using a
isinstance(...,bytes) which isn't correct in python 3. Let's change it to str.
Reviewed By: xavierd
Differential Revision: D19668612
fbshipit-source-id: cf093754707a0a0369cfc3aa74270dd81a6560b5
Summary: The activebookmark is a string, the wire wants bytes. Encode it!
Reviewed By: farnz
Differential Revision: D19665896
fbshipit-source-id: f5afc1c5b17d90bf3f0d0703cd752d66c6f38778
Summary:
Now that bundle2 has strings everywhere, pushkey needs to also handle
encoding correctly. Previously it used local encoding, which seems strange.
Let's drop the encoding entirely since we're only dealing with since we're only dealing with utf8 string and bytes.
Reviewed By: farnz
Differential Revision: D19665894
fbshipit-source-id: ed054ab25636ac52de646329f26681ae843b6de3
Summary:
`>>> open(file).write(data)` is a common patten for writing files across the
tests. In py3 such statement return the number of bytes written in py2 the
output is none. Let's make it None in py3 as well.
Reviewed By: xavierd
Differential Revision: D19666339
fbshipit-source-id: 5424287f85f34f3aef2d1596bb476d622464564a
Summary:
All diff functions are (bytes, bytes) -> bytes to preserver
the original file encoding.
Because of that I had to add ui.writebytes output function that accepts
bytes for terminal output.
Reviewed By: farnz
Differential Revision: D19656673
fbshipit-source-id: b9a1e4361e825fc8c2313e8402c2bbe00f490dd4
Summary:
The input/output of a subprocess is bytes, let's encode/decode when
writing/reading from it.
Reviewed By: farnz
Differential Revision: D19665636
fbshipit-source-id: 840f6b7a0edbedb7e7de5a65eacab9e1a7f78864
Summary: I've seen this while running some tests, they now go slightly further.
Reviewed By: singhsrb
Differential Revision: D19666665
fbshipit-source-id: 35ad73f383de148f3d53c7f9de24b1a1e1c51f7e
Summary:
The msg string isn't bytes in python 3. Hg revert works in both python 2&3
using 'str' instead.
Reviewed By: farnz
Differential Revision: D19664504
fbshipit-source-id: 5e16b637a5fb282eaa97390ef1f7e8912d0359f0
Summary:
We enforced this at send time, but it was hard to debug where it was
coming from. Let's enforce it at part.setdata() time so the stack points out
exactly who the problem is.
Reviewed By: farnz
Differential Revision: D19665895
fbshipit-source-id: 5a6ca0263d52cac472e1ef2aca3ee702f38258e4
Summary:
The `bser-v1` encoding is not supported for Python 3 so we are forced to
update.
Reviewed By: quark-zju
Differential Revision: D19649948
fbshipit-source-id: 0ae1800942dd967eddcd58183f9899d36256598d
Summary:
D19657765+D19656773 made bundle2 use the standard urllib which turns
bytes into strings. This messes up bundle2 caps encoding and decoding. Caps
encoding/decoding is a nested mess of strings and bytes, so let's make it all
strings until the last minute it goes over the wire.
Reviewed By: quark-zju
Differential Revision: D19665131
fbshipit-source-id: a2fd6e309ed6da2b927d2f4ead97825a16bfcaac
Summary:
test-argspans is an awful test that includes it's own line numbers in
the test assertions. When the imports were changed in D19655148, these needed to
be updated.
Reviewed By: quark-zju
Differential Revision: D19664131
fbshipit-source-id: cdd03be2fbbc9d13ac3047f9565a1f68284e9cf0
Summary:
fbhistedit adds support for json histedit commands. Unfortunately
json.loads produces unicode strings, which then fail assertions in
pycompat.encodeutf8(...). Let's make sure it produces non-unicode on python2.
Reviewed By: singhsrb
Differential Revision: D19656390
fbshipit-source-id: 11b828319b20a153aa008f03d554087b88b7763c
Summary:
Python 3 has changed which errors are OSError vs IOError. We have
slightly different formatting which makes the test awkward to be py2 and 3
compatible. Let's make the formats the same.
Reviewed By: quark-zju
Differential Revision: D19663964
fbshipit-source-id: 892461049b61d648431f300bea0da2f6f1c70066
Summary:
This is reported while running with buck. assertEquals is renamed to
assertEqual
Reviewed By: quark-zju
Differential Revision: D19665159
fbshipit-source-id: cb7c25901005c6a97f2c703c4773ea01232943b1
Summary: This broke a bunch of tests. Revert it and re-enable all the tests.
Reviewed By: DurhamG
Differential Revision: D19665042
fbshipit-source-id: c3c17e3ac7e2ea028be5b5836bc8349cdf56184e
Summary: The module no longer exist in Python3, it has been renamed.
Reviewed By: quark-zju
Differential Revision: D19663426
fbshipit-source-id: a805e7fa3d15335a0be4f6a8d8ae096328470728
Summary:
Different versions of dulwich return different types for
`localclient.fetch_pack`. If the returned type is a real dict, then we can't
test the inner `refs` attribute, so check if it is there before testing if it
is `None`.
Reviewed By: singhsrb
Differential Revision: D19657503
fbshipit-source-id: 63cce72fa87f615e7b33279726dcb19c2fdf5b9e
Summary:
Use sed to convert testutil.ddot requires to hghave.
ignore-conflict-markers
for test-simplemerge.py
Reviewed By: simpkins
Differential Revision: D19658355
fbshipit-source-id: afae73eb1e43ead79514dfaf9f911f51ac25972e
Summary:
This breaks test-alias.t, so it looks like demandimport no longer behaves properly.
Original commit changeset: d56814049181
Reviewed By: simpkins
Differential Revision: D19658109
fbshipit-source-id: 9fd4865bd00d2307afe0c99f1500b6e08fe3e785
Summary:
D19652082 changed `urllibcompat.urlreq.quote()` to always return bytes.
This broke most of the code outside of the bundle2 module that was expecting
it to operate on strings.
This changes `quote()` to operate on strings again, since this is what the
Python 3 standard library does. This updates `bundle2` to handle encoding and
decoding properly when parsing strings that go through `quote()` and
`unquote()`.
This also changes bundle2 to stop going through the `urllibcompat.urlreq`
wrapper class, since that wrapper class prevents type checking from being
performed on its members.
Reviewed By: quark-zju
Differential Revision: D19657765
fbshipit-source-id: 0611838213ec22221e0b8367e1f0d8a6dcfceb15
Summary:
D19656501 added a usage of the `b"%b"` format specifier, which only works in
Python 3. Change the code to use `b"".join()` for now, which works in both
Python 2 and Python 3.
Reviewed By: farnz
Differential Revision: D19657472
fbshipit-source-id: 22d3123f4939fa984ffd17516e1cc48bad2bb2b7
Summary:
This diff allows us to remove the `type: ignore` specification on the
affected lines.
Reviewed By: farnz
Differential Revision: D19657442
fbshipit-source-id: 4626daf20c57fbb511b203e54f2575edc619f40f
Summary:
Fix the type annotation for `journalentry.serialize()`: It needs to come
immediately after the method declaration to be recognized, not after the
docstring.
Fixing this causes pyre to produce type errors for this method. I have
changed `journalentry` to derive from `typing.NamedTuple` to fix this. This
syntax is somewhat awkward with Python 2, but is much cleaner in Python 3.
Reviewed By: quark-zju
Differential Revision: D19656758
fbshipit-source-id: a97b8a092bff0bdc7e9dee0650c35ef383b32248
Summary:
This diff marks **ALL** mercurial tests requiring Python 2 feature.
After you fixes some tests, simply remove the `py2` feature requirement and that tests will be continuously run after your diff is landed.
To bypass this feature requirement, run the tests command with `HGTEST_FORCE_PY2=1`. For example:
```
HGTEST_FORCE_PY2=1 buck test //eden/scm/tests:hg_run_tests
```
or
```
HGTEST_FORCE_PY2=1 python run-tests.py
```
----
Basically this diff are created with the following commands:
```
$ sed -i 's/import feature\(.*\)$/import feature\1\n\nfeature.require(["py2"])/' test-*-t.py
$ sed -i '1s/^/#require py2\n/' test-*.t
$ ls | grep -P "^test.*(?<\!-t)\.py$" > list && vim -p $(cat list)
# manually adding feature requires for these Python tests.
```
(Note: this ignores all push blocking failures!)
ignore-conflict-markers
Reviewed By: singhsrb
Differential Revision: D19655148
fbshipit-source-id: 985e3ccb4010cc559049f1d89f8909bc2d9b5e20
Summary:
This is used in D19655148 to skip all the tests that are not passing in Python 3.
(Note: this ignores all push blocking failures!)
Reviewed By: farnz
Differential Revision: D19655164
fbshipit-source-id: 1a0d26926aa1b764077fa1e5bdddf853621a54f1
Summary: The urlreq.quote returns a byte string, let's use b string to manipulate it.
Reviewed By: farnz
Differential Revision: D19656773
fbshipit-source-id: 1cbcc0f19e9463d5eabec2f67f5b00329188777d
Summary: Reading/writing to files is done via bytes, not strings.
Reviewed By: quark-zju
Differential Revision: D19656321
fbshipit-source-id: 9a9b13b27fc9dd8db6fe757dcd53e4730179832d
Summary: These aren't bytes, they are strings.
Reviewed By: quark-zju
Differential Revision: D19656112
fbshipit-source-id: fcd505e3b4e522154358c80305e39ebca5936395
Summary:
Process the backupstate file as UTF-8. Previously it was being read as raw
bytes, causing the code to think it was an unknown version.
These files contain the version specifier (pure-ASCII), the remote path
(unicode), followed by a list of hexadecimal node IDs (pure-ASCII). Therefore
reading the whole file as UTF-8 should be fine.
Reviewed By: farnz
Differential Revision: D19655547
fbshipit-source-id: 6ca536d445cbf81b19122916f1b70b8895304bdb
Summary:
D19539064 disabled demandimport when using Python 3 as a precaution while we
were initially working on Python 3 support. However, it appears to work
correctly and does not seem to cause obvious problems when enabled.
This re-enables demand import by default. It can be explicitly disabled at
runtime by specifying `HGDEMANDIMPORT=disable` in the environment.
Reviewed By: xavierd, farnz
Differential Revision: D19655548
fbshipit-source-id: d56814049181da2d68abd09ac7ca772b04e06618
Summary:
When used in an `hg status` command the `relpath()` template function would
throw an unhandled `KeyError` when it tried to access `ctx` in the template
mapping. This field is only present in `hg log` templates, and is not present
in `hg status` templates.
This updates the `relpath()` template function to look for `repo` in the
template mapping instead. I also updated the `hg status` code to pass in the
`repo` value now. The `hg log` code already passes in this field.
Reviewed By: quark-zju
Differential Revision: D19568463
fbshipit-source-id: 3e1c1d6571c73e4b24bfce22ea28f57679d39846