sapling/eden/scm
Jun Wu f00af51977 types: add an abstract hash type
Summary:
There are a lot of hash types: HgId, Sha256, and edenapi-types has some.
The HgId seems to have most features but it is hard to reuse it for similar
but different types. This is an attempt to do so and unify the main implementation
of those types.

Most methods are copied from HgId. `from_byte_array` is made const fn so it
can be used to construct constants.

The error type is intentionally chosen to be not `anyhow::Error`.
Using static typed errors is considered good practice for low-level crates.
The benefit is that higher level users get their choice - precise static error
type with compile-time checks, or convenient, dynamic error types by anyhow
with runtime downcasts.

Reviewed By: yancouto

Differential Revision: D31615719

fbshipit-source-id: 337356721354c43fe23b9f2d0e90d104c8864c44
2021-10-13 13:27:31 -07:00
..
contrib hggit: delete hggit 2021-09-21 13:45:11 -07:00
distutils_rust Use provided env var for CARGO_TARGET_DIR if present 2021-07-22 06:10:56 -07:00
doc hggit: delete hggit 2021-09-21 13:45:11 -07:00
edenscm treemanifestserver: drop complete tree prefetching 2021-10-13 13:27:28 -07:00
edenscmnative bookmarkstore: remove crate 2021-10-13 13:27:30 -07:00
exec tweak error message on Windows when repo is not mounted to avoid confusing people 2021-09-29 15:40:02 -07:00
hgcache_size_logger add hgcache size logger 2020-08-26 04:24:50 -07:00
i18n update draft help page 2021-08-02 15:54:03 -07:00
lib types: add an abstract hash type 2021-10-13 13:27:31 -07:00
newdoc notes: add 2019-10 Manifests, Past and Future 2021-03-04 08:52:27 -08:00
pystubs lock: kill inheritable lock code 2021-09-27 14:58:42 -07:00
slides apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
tests bookmarkstore: remove crate 2021-10-13 13:27:30 -07:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 debugrebuildchangelog: support rebuild with lazy segmented changelog 2021-05-26 19:00:01 -07:00
.gitignore gitignore: track Makefile under scm 2021-03-04 08:52:27 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
fsprobe.sh fsprobe: add simple shell script to generate and run fsprobe tests 2021-09-14 19:52:15 -07: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 py3: remove py3 options and py2 rpm spec 2021-06-15 14:46:42 -07:00
README.rst
setup.py fix make local build 2021-09-24 10:23:28 -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.