Current goal:
Work with a handful of developers who want to regularly use Got for their
work on OpenBSD. Improve version control operation based on their feedback.
Project guidelines
-
Follow OpenBSD's security practices
and coding style.
- Use a development process based on code review in email.
- Consistently use
pledge(2) and
unveil(2) across the code base.
- Use privilege-separation when parsing repository data from network or disk.
-
Keep the entire code base BSD-licenced.
Long-term goals
-
Remain on-disk compatible with bare
Git repositories.
- Don't bother with Git-compatibility beyond this requirement.
- Provide a complete version control tool suite for OpenBSD.
- Intuitive command line interface for required version control operations
(got).
- Interactive repository browser for history analysis and review of
committed changes (tog).
- CGI script repository browser for web servers.
- Repository administration tooling with a strong focus on backup and recovery.
- Repository server for hosting a central repository and synchronizing
changes to a cascade of public and private mirrors.
-
Consider workflow requirements of OpenBSD developers.
- Strong built-in support for a centralized repository model
(ideas about pull/push).
- Keep things easy for developers who don't need branches.
- Support local branches for developers who need them.
- Support "-stable" release branches.
- Support features required by the OpenBSD project's build infrastructure.
- Implement authenticated and encrypted network communications.
- Provide SSH and optional
TLS support for cloning repositories
and pulling changes.
- Exclusively rely on SSH for pushing changes.
- Do not implement any support for plaintext network communications.