Summary:
The headers are bytes, therefore startswith needs to be called with a bytes
argument.
Reviewed By: quark-zju
Differential Revision: D19673675
fbshipit-source-id: 9a978ad42bf94a55c984f2ae35c566a59bfd6180
Summary:
Assigning to `__metaclass__` only works in Python 2. In Python 3 this
attribute is ignored, and you instead need to specify `metaclass=` in your
class signature.
This adds a new `pycompat.ABC` base class to make it easier to define abstract
classes that are compatible with both Python 2 and 3.
Reviewed By: sfilipco
Differential Revision: D19672078
fbshipit-source-id: c56eb6c7266f962ef9c13c742e6ac0651b9c19c9
Summary:
Add type annotations to `ui.write()` and the helper functions it calls.
I also removed unused `**opts` arguments on a few of the helper functions that
it calls.
Reviewed By: markbt
Differential Revision: D19657806
fbshipit-source-id: d020396a51d9fc3b07542c65541fca6067addb23
Summary: This fixes the Windows build failure we are seeing. Apparently Python 2 on Windows does not like unicode type in `os.environ`
Reviewed By: markbt
Differential Revision: D19672308
fbshipit-source-id: b45c1ccf47bdd46dc31d6c980d0e70dd2e084c8f
Summary: There are no-ops. This makes type checkers' life slightly easier.
Reviewed By: markbt
Differential Revision: D19673053
fbshipit-source-id: 04f26cd3ca0dbfe579ef939fc39be00035e70cee
Summary:
There are basically no-op (see D19613693).
This makes type checkers' life slightly easier.
Reviewed By: farnz
Differential Revision: D19672686
fbshipit-source-id: 27ca44dd53ec9788fdbb8f31235eae88d1853415
Summary: This makes type checkers' life easier.
Reviewed By: markbt
Differential Revision: D19672687
fbshipit-source-id: 335c560289e29ac7c08e36501e9841ddc51232be
Summary:
The issues were found by pyre with some type stubs generated via pytype:
python36 -m pytype edenscm --no-report-errors -j 30
I didn't include the pytype generated stubs because most of them are `Any`.
I'm trying to see if we can get something cleaner.
Reviewed By: markbt
Differential Revision: D19672435
fbshipit-source-id: c57f2ad3a981ddd4a3a267ff1c00e7bdb71e65ca
Summary:
Simple tools, based on D19664298, that use the JSON report to enable py2 only tests for py3 testing, and revert the changes to those tests that fail.
update-successes.py is just xavierd's original code
Use as needed to enable tests on py3 after debugging, A recommended workflow is in the test plan
Reviewed By: singhsrb
Differential Revision: D19670838
fbshipit-source-id: fc525941cb010c9038c1f73d89913420e0c79981
Summary: This was missed while converting pyrevisionstore to PyPathBuf.
Reviewed By: markbt
Differential Revision: D19672441
fbshipit-source-id: 466a66f2e00c7f73c11a8989c22508560f423e0e
Summary: This diff enables more test while hopefully not breaking anything
Reviewed By: markbt
Differential Revision: D19671316
fbshipit-source-id: 76ecd22a094c0a40b9724a3070a01e5d294888f3
Summary: Writing to a file opened in "b" mode needs byte strings.
Reviewed By: sfilipco
Differential Revision: D19668666
fbshipit-source-id: 9e8670fa080cc2a7fc611083a4ee2305d8262a3a
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:
Update the EdenFS monitor to restart itself when it receives SIGHUP. This
allows upgrading the monitor daemon to a new version of the software without
disrupting the current running EdenFS daemon.
Reviewed By: wez
Differential Revision: D19588698
fbshipit-source-id: f0303788cee0cc9bf4ce3b7342f10a595c3874b1
Summary:
Update the SpawnedEdenInstance class to wait for EdenFS to become healthy
before signalling the Future returned by `start()`.
This code works by just polling the `getStatus()` call every few hundred
milliseconds, and waiting until it returns `ALIVE`.
Currently the code will poll forever, until EdenFS either becomes healthy or
exits. In practice we will likely configure startup timeouts in systemd,
which means that they probably are not necessary in this code.
Reviewed By: wez
Differential Revision: D19588699
fbshipit-source-id: fef57ca23fcc14da908c2e4f7f715db33b7bf841
Summary:
Add a simple new wrapper daemon to manage the edenfs daemon. This is intended
to provide a few different features:
- Perform log rotation for EdenFS's output and the output of any of its
spawned children processes.
- Help schedule restarts of EdenFS when the system looks idle.
- Provide a single process for the system to manage across graceful EdenFS
restarts, to make management slightly simpler.
This initial commit does not perform graceful restarts yet, but has the basic
daemon management and log rotation present.
Reviewed By: wez
Differential Revision: D19588700
fbshipit-source-id: bba41c9f7efeb4417753c1d48dd72cf6d191f0c3
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: Easier to zero initialize structs with braces, which defines that even padding is zeroed.
Reviewed By: wez
Differential Revision: D19655675
fbshipit-source-id: 2fd12383324029646707e93008cf9ad34e9f1dce
Summary:
When importing an object from the backing store failed, we would not
fail lookup requests (e.g. lstat) so that the file could still be
removed with `rm`. Unfortunately that data would get cached, even if
the error was transient. This diff returns a correct inode number for
failed requests and limits the amount of time these fake stat()
results are cached.
Reviewed By: wez
Differential Revision: D19655425
fbshipit-source-id: 1a44ace9217f1ab3f69a2c5a6edc89d0f9c4a941
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:
Multiple times I've gotten mixed up by the different casing of the
LogEvent fields versus the names in the structured log. Change the
field names to match the log names.
Reviewed By: genevievehelsel
Differential Revision: D19585307
fbshipit-source-id: 3ccbb9ec5e18155367bc85e9db00bc8d556812c4