A ugit clone implemented in pure Elixir.
Focused on implementing a subset of git with rather poor error handling 😁.
init — initializes an empty .dig repository.
hash-object FILE — hashes the given file and stores it in the object database.
cat-file HASH — shows the contents of the file from the object database by the given hash.
write-tree — hashes the current directory into the object database.
read-tree TREE_HASH — replaces the current directory contents with those specified by TREE_HASH`.
commit -m | --message MESSAGE — commits the current directory with the provided message.
log [COMMIT_HASH] — shows the commit history, optionally starting from the specified commit.
To make up an executable, run make.
If available in Hex, the package can be installed
by adding dig to your list of dependencies in mix.exs:
def deps do
[
{:dig, "~> 0.1.0"}
]
endDocumentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/dig.