/gitters

An implementation of the git tooling, written in Rust for fun and learning.

Primary LanguageRustBSD 2-Clause "Simplified" LicenseBSD-2-Clause

Gitters

Gitters is an implementation of the git tooling, written in Rust. I chose this project to understand how git works internally, as well as to learn Rust. The goal is to use gitters to manage the development of the project itself.

Quick start

Assuming you have Rust installed already:

git clone https://github.com/avik-das/gitters.git
cd gitters

# Run the tests. You'll need to ensure the "introduce-tests" branch is present
# in order for the tests to pass, as they check that a branch name resolves to
# the correct revision.
git fetch origin introduce-tests:introduce-tests
cargo test

# Very few git tools are available, but for the ones that are implemented,
# replace `git` with `./gitters` when executing the tool.

# Run "log" on a commit with a few ancestors:
./gitters log 44d6437947787a44b0e7d463954eef2daa44aaa5
./gitters log  # or just look at the history starting at HEAD

# See the configuration for this repository:
./gitters config --list

Supported commands

Use ./gitters <command> --help to see the available options for each of the following commands.

  • branch
  • cat-file
  • config
  • log
  • ls-files
  • rev-parse