CVS and SVN users will find a familiar user interface which offers additional commands for transferring changes between repositories across the network.
Git users should be aware that Got treats every Git repository as if it was bare. This means Got completely ignores the Git work tree and the Git index. A separate work tree must be checked out from a Git repository while working with Got.
A unique feature of Got is its multi-process model working behind the scenes,
tailored to interfaces provided by the OpenBSD kernel.
Processes with an inherent attack surface, such as those talking to the network or
parsing the data in repositories, run in a separate address space and with
as little capabilities as possible.
The OpenBSD version of Got provides the strongest protections by using
For example, unveil enforces read-only access to repositories while the
Got server is serving fetches.
The Got client main process restricts itself to the repository directory (read-only
or read-write as appropriate), the
/tmp directory, and the work tree.
Processes speaking the network protocol have no direct filesystem access at all.
All processes are pledged as tightly as possible to restrict the available system
calls to those required for regular operation.
The -portable version of Got uses Capsicum on FreeBSD and Landlock on Linux to restrict
filesystem access during network access and parsing of repository data, but does not
restrict the main process (yet?).
The table below lists network protocols supported by Got and some other systems. For now, Got lacks support for Git's HTTP protocols, relying exclusively on OpenSSH. Got clients interoperate well with popular Git hosting sites over SSH, and Got servers can safely offer anonymous SSH access for public distribution.
The following table lists applicable software licenses:
|ISC||GPLv1 or later||Apache 2||GPLv2 only|
The table below lists some commonly used commands and their rough equivalents in other systems: