sapling/eden/scm
Jun Wu 49acaf17b3 bindings: implement diffhelpers
Summary:
The diffhelpers.c lacks of type checks and segfaults on Python 3:

  (gdb) r --config patch.eol=auto import -d '0 0' -m 'test patch.eol' --bypass ../test.diff --debug --traceback
  Program received signal SIGSEGV, Segmentation fault.
  0x00007ffff7263016 in __strcmp_sse42 () from /lib64/libc.so.6
  (gdb) bt
  #0  0x00007ffff7263016 in __strcmp_sse42 () from /lib64/libc.so.6
  #1  0x00007fffee5e3d3b in testhunk (self=<optimized out>, args=<optimized out>) at edenscm/mercurial/cext/diffhelpers.c:151

Looking at the diffhelpers usage, it seems to be using the `bytes` type
(bytes on Python 2, str on Python 3). Let's implement it in Rust so `rust-cpython`
will complain if the type is not `bytes`.

Reviewed By: xavierd

Differential Revision: D20935366

fbshipit-source-id: 8b474555b52caeab4175d7dad44c4c4e7097e557
2020-04-09 18:25:53 -07:00
..
contrib git-sl: remove Mercurial import 2020-04-02 12:32:34 -07:00
distutils_rust distutils_rust: retry mt.exe properly 2020-02-19 13:22:39 -08:00
doc Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
edenscm py3: fix updatestate for eden update 2020-04-09 18:12:45 -07:00
edenscmnative bindings: implement diffhelpers 2020-04-09 18:25:53 -07:00
exec clidispatch: add start_pager API for IO 2020-04-07 15:57:06 -07:00
i18n py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
lib cpython-ext: infer errno from io::ErrorKind 2020-04-08 13:13:08 -07:00
newdoc newdoc: Add mutation and visibility documentation 2020-03-20 04:09:32 -07:00
pystubs fsinfo: expose fstype via bindings.fs.fstype 2020-03-11 17:35:40 -07:00
slides Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
tests bundle2: bunch of fixes for Python3 2020-04-09 16:27:43 -07:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.gitignore py3: fix some type issues detected by pyre with some type stubs 2020-01-31 16:38:02 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py gen_version.py: run it with python3 2020-03-13 20:08:34 -07:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile build: have make local run on Centos8 2020-03-16 12:54:01 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup3.py Move py/ directory from eden/ to eden/fs 2020-03-24 11:45:37 -07:00
setup.py setup: write the pyc before the py during packaging 2020-04-03 11:35:29 -07: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.