Got a new git-compatible version control system for OpenBSD

Stefan Sperling (stsp@), a ten-year member of the OpenBSD project, and one of the main developers of Apache Subversion, develops new version control system "Game of Trees" (got). When creating a new system, simplicity of design and ease of use are prioritized over flexibility. Now Got is still in development; it is developed exclusively on OpenBSD and its target audience is the OpenBSD developers. The code is distributed under a free license ISC (equivalent to the simplified BSD and MIT license).

Got uses git repositories to store versioned data. Currently, only local versioning operations are supported. At the same time, git can be used for any functionality that is not yet implemented in got - it will always be possible to work with got and git in the same repository.

Main current to The project is about working with OpenBSD developers who want to regularly use got for their work on OpenBSD and improving versioning operations based on their feedback.

The main principles of the project:

  • Following the security rules and coding style of OpenBSD;
  • Development process based on code reviews via email;
  • Using pledge(2) and unveiled(2) in the entire codebase;
  • Using privilege separation when parsing repository data over the network or from disk;
  • Codebase support under BSD license.

Long-term goals:

  • Maintaining compatibility with the disk format of the git repository (without maintaining compatibility with the toolkit);
  • Providing a complete set of version control tools for OpenBSD:
    • Intuitive command line interface to perform required versioning operations (g)
    • Interactive repository browser for history analysis and overview of committed changes (train)
    • CGI script that implements the web interface - repository browser
    • Repository administration tools with a strong focus on backup and recovery
    • Repository server to host a central repository and synchronize changes with a cascade of public and private mirrors
  • Requirements for the OpenBSD developer workflow:
    • Strong built-in support for a centralized repository model;
    • For developers who do not need branches (branch), ease of use is preserved;
    • Support for local branches for developers who need them;
    • Support for "-stable" release branches;
    • Other functions needed to build the infrastructure of the OpenBSD project.
  • Implementation of authenticated and encrypted network connections:
    • Access to repositories via SSH and additionally TLS to clone the repository and get changes;
    • Access to repositories only via SSH to make changes;
    • Repositories cannot be accessed over unencrypted connections.

    Got already added into the ports tree as "devel/got". On EUROBSDCON 2019 will be presented report about the new version control system.

    Source: opennet.ru

Add a comment