Got

Like Git, but with an 'o'

Got is version control, with a model similar to Git's. It provides end-to-end encryption and uses an improved data structure with good support for large files and directories.

Quick Links

Features/Roadmap

Getting Started

Either download a prebuilt binary or build one from source.

Then initialize a repository in the current working directory. Make sure you cd to where you want the repository.

$ got init

Contributing

To run the tests:

$ just test

Installs to $GOPATH/bin with just. If that isn't on your path, just copy the executable from there to wherever you want.

$ just install

To build release binaries

TAG=v0.0.x just build

Where TAG is an environment variable which should be set to the release version, or the Git hash of the source used for the build. The release binaries will be under the out directory.

Got in Action

Got importing a 3GB file.

$ got add large_file.dat
[1.608s]
  [1.564s] large_file.dat data_in=(1.24GB Δ=799.35MB/s)
    [1.564s] worker-0 blobs_in=(182blobs Δ=117.26blobs/s), data_in=(157.09MB Δ=101.21MB/s)
    [1.564s] worker-1 blobs_in=(197blobs Δ=127.43blobs/s), data_in=(158.19MB Δ=102.33MB/s)
    [1.564s] worker-2 blobs_in=(181blobs Δ=116.50blobs/s), data_in=(154.83MB Δ=99.66MB/s)
    [1.564s] worker-3 blobs_in=(172blobs Δ=112.63blobs/s), data_in=(154.01MB Δ=100.85MB/s)
    [1.564s] worker-4 blobs_in=(179blobs Δ=116.82blobs/s), data_in=(157.34MB Δ=102.68MB/s)
    [1.564s] worker-5 blobs_in=(177blobs Δ=115.36blobs/s), data_in=(156.12MB Δ=101.75MB/s)
    [1.564s] worker-6 blobs_in=(199blobs Δ=130.09blobs/s), data_in=(155.20MB Δ=101.46MB/s)
    [1.564s] worker-7 blobs_in=(161blobs Δ=104.50blobs/s), data_in=(150.69MB Δ=97.81MB/s)

More

Read more about the configuration objects in doc/Config.md.

Support and development discussion happen in the INET256 discord.