# Chi

|Crate|Linux|macOS|
|:---:|:---:|:---:|
|[![Crates.io][crates-io-badge]][crates-io]|[![Circle CI][circle-ci-badge]][circle-ci]|[![Travis CI][travis-ci-badge]][travis-ci]|

_A safe, understandable, & lightning-fast distributed version control system (DVCS)._

## Goals

High level project goals:

- [x] address common [criticism](git-ui-criticism) with Git's user interface
- [ ] scale seamlessly to repositories that are hundreds of gigabytes in size
- [x] be fast

## Status

Not ready for usage. Very open to collaboration if anyone else is interested in working on this project with me!

Currently the `init` and `add` commands somewhat function, and I'm working on the `commit` command. Afterwards I'm planning to refactor the `add` command, as I want to take more inspiration from the gitless conceptual model and abolish the concept of a staging area in favor of "tracking" and "untracking".

## Usage

TODO

## Installing

### Static Binaries (Linux)

Static binary builds (currently for Linux only) are available on the
[GitHub releases page](https://github.com/natpen/chi/releases).
Simply download the binary for your platform and run it!

Builds for other platforms are planned.

### Cargo Install (any platform)

Build and install the tool via cargo...

    $ cargo install chi

### From Package Manager

Chi has been added to a few package managers:

- Arch Linux AUR: TODO
- macOS Homebrew: TODO

### From Source (any platform)

Chi requires at least Rust 1.31.

Debug build with logging enabled:

    $ cargo build --features logging

Release build without logging:

    $ cargo build --release

To enable the log output, set the `RUST_LOG` env variable:

    $ export RUST_LOG=chi=debug

## Autocompletion

- *Bash*: TODO
- *Fish*: copy `fish_chi` to `~/.config/fish/completions/chi.fish`

## Development

To run tests:

    $ cargo test

To run lints:

    $ rustup component add clippy
    $ cargo clean && cargo clippy

## License

Chi is licensed under the [MIT license](mit-license).

[git-ui-criticism]: https://spderosso.github.io/onward13.pdf
[mit-license]: https://opensource.org/licenses/MIT

<!-- Badges -->
[circle-ci]: https://circleci.com/gh/natpen/chi/tree/master
[circle-ci-badge]: https://circleci.com/gh/natpen/chi/tree/master.svg?style=shield
[travis-ci]: https://travis-ci.org/natpen/chi
[travis-ci-badge]: https://travis-ci.org/natpen/chi.svg?branch=master
[crates-io]: https://crates.io/crates/chi
[crates-io-badge]: https://img.shields.io/crates/v/chi.svg
