This is a C++ wrapper of libgit2 to provide a command-line interface (CLI)
to git functionality. The intended use is in WebAssembly in-browser terminals (see
cockle and
JupyterLite terminal projects) but it can be compiled and
used on any POSIX-compliant system.
See overview.md for further details.
Developer's workflow using micromamba to manage the dependencies:
micromamba create -f dev-environment.yml
micromamba activate git2cpp-dev
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
cd build
make -j8The git2cpp executable can then be run, e.g. ./git2cpp -v.
The CLI is tested using python. From the top-level directory:
pytest -vSome tests access the private repository at https://github.com/QuantStack/git2cpp-test-private using a fine-grained github Personal Access Token (PAT). These tests are skipped by default. To run them you will need to obtain the PAT from one of the maintainers, and run the tests as follows:
GIT2CPP_TEST_PRIVATE_TOKEN=<this-is-the-personal-access-token> pytest -vpre-commit runs automatically on git commit. To run it manually use:
pre-commit run --all-filesThe wasm directory contains everything needed to build the local git2cpp source code as an
WebAssembly Emscripten-forge package, create local
cockle and
JupyterLite terminal deployments that run in a browser,
and test the WebAssembly build.
See the README.md in the wasm directory for further details.
The latest cockle and JupyterLite terminal deployments using git2cpp are available at
https://quantstack.net/git2cpp
The project documentation is generated from the git2cpp help pages. To build the documentation
locally first build git2cpp as usual as described above, then install the documentation
dependencies:
micromamba install myst-parser sphinx sphinx-book-themeand build the documentation:
cd docs
make htmlThe top-level documentation page will be docs/_build/html/index.html