I added a number of files from https://github.com/facebookexperimental/eden
at commit b745b4421b8a8b130d2094b598cedf65655410ec. Files are unmodified from
their original versions. However, the paths are different: I've put all
files in the same directory. And I've removed some files we don't care about
(such as the C++ bindings and CMake rules). Notably missing is the
auto-generated parser.rs and the Python script to generate it. We will
be able to generate this file automatically at build time (unlike
Facebook, which is constrained by not using Cargo or something).
The added files are not part of the hg-core project yet. Things will be
incorporated in future commits.
I haven't extensively audited the added code for functional correctness
and compatibility. But I did skim it and it seems to be a highly compatible
config parsing implementation. The most suspect code I found was around
config file path handling. There are references to "tupperware," which
appears to be a Facebook-specific thing. We will want to clean this up
at some point...
Do we need bindings to C ? I don't see what the use-case is at this stage of the Rust development.