sapling/eden/scm
Durham Goode 371d10ca4d py3: fix path encoding in win32 layer for Python 3
Summary:
In Python 3 the strings are no longer bytes, so we need to convert them before calling Windows native APIs.

I originally attempted to make all C APIs use the W() Windows APIs. This sorta worked and enabled some unicode support for Windows in Python 2, like hg status, but it meant that utf-8 path encodings were being returned and eventually passed to python functions like os.lstat() which weren't expecting utf8 encoding. I gave up and just left the Python 2 C code as is, and made a copy that uses W() APIs for Python 3. This enables unicode support on Windows where it didn't work before (at least in my testing).

Reviewed By: quark-zju

Differential Revision: D26381053

fbshipit-source-id: 69d4e18ba9fb0f3d17bad58fbcc5d0e6e61d4252
2021-02-25 09:59:56 -08:00
..
contrib Changing commit hash length to 9 in hg prompt 2021-02-10 17:07:35 -08:00
distutils_rust py3: fix simple Windows py3 issues 2021-02-11 09:50:25 -08:00
doc py3: fix test-help.t 2020-04-09 18:25:54 -07:00
edenscm py3: fix path encoding in win32 layer for Python 3 2021-02-25 09:59:56 -08:00
edenscmnative dag: add a way to describe bytes in indexedlog IdDag store 2021-02-25 08:32:48 -08:00
exec clidispatch: add an API to obtain "writable" stdout stream 2021-02-23 15:09:14 -08:00
hgcache_size_logger add hgcache size logger 2020-08-26 04:24:50 -07:00
i18n apply pyfmt with usort to opted-in sources 2020-11-10 21:25:54 -08:00
lib dag: add a way to describe bytes in indexedlog IdDag store 2021-02-25 08:32:48 -08:00
newdoc newdoc: add Segmented Changelog section 2021-01-19 21:00:13 -08:00
pystubs eden: make the EdenFS import helper use EdenAPI's /trees endpoint instead of /complete_trees 2021-02-22 14:23:40 -08:00
slides apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
tests py3: fix Windows tests 2021-02-25 09:59:55 -08:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 commitcloud: optimize revset for segmented changelog backend 2020-08-21 13:00:45 -07:00
.gitignore run-tests: make output format friendly for adhoc scripts 2020-06-10 19:29:59 -07:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py version: a Rust crate providing version information 2020-05-18 09:00:40 -07:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile Back out "use python 3 for the eden_scm getdeps build" 2020-09-15 17:37:50 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup3.py apply pyfmt with usort to opted-in sources 2020-11-10 21:25:54 -08:00
setup.py revisionstore: bytes::ByteMut -> Vec::<u8> 2021-02-03 20:22:30 -08:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install::

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

Running without installing::

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.