Tree


.gitignorecommits | blame
Makefilecommits | blame
Makefile.inccommits | blame
READMEcommits | blame
TODOcommits | blame
got/
include/
lib/
libexec/
regress/
tog/
util/

README

Game of Trees (Got) is a version control system which prioritizes ease
of use and simplicity over flexibility.

Got is being developed exclusively on OpenBSD. It is not a drop-in
replacement for other version control systems and it does not attempt
to compete with anything else than the use of other version control
systems in the context of the OpenBSD project.
Got's target audience are OpenBSD developers, and its focus is directed
at the particular needs and use cases of the OpenBSD project.

To compile the Got tool suite on OpenBSD, run:

 $ make obj
 $ make
 $ mkdir ~/bin
 $ make install

This will install the following commands to ~/bin:

 got (command line interface)
 tog (ncurses interface)
 and several helper programs from the libexec directory

Tests will pass only after 'make install' because they rely on installed
binaries in $PATH. Tests in the cmdline directory currently depend on git(1).

 $ doas pkg_add git
 $ make regress

Man pages are not installed yet but can be viewed with mandoc:

 $ mandoc got/got.1 | less
 $ mandoc got/git-repository.5 | less
 $ mandoc got/got-worktree.5 | less
 $ mandoc tog/tog.1 | less


Guidelines for reporting problems:

All problem/bug reports should include a reproduction recipe in form of a
shell script which starts out with an empty repository and runs a series of
Got and/or Git commands to trigger the problem, be it a crash or some other
undesirable behaviour.

The regress/cmdline directory contains plenty of example scripts.
An ideal reproduction recipe is written as an xfail ("expected failure")
regression test. For a real-world example of an xfail test, see commits
4866d0842a2b34812818685aaa31d3e0a966412d and
2b496619daecc1f25b1bc0c53e01685030dc2c74 in Got's history.

Please take this request very seriously; Ask for help with writing your
regression test before asking for your problem to be fixed. Time invested
in writing a regression test saves time wasted on back-and-forth discussion
about how the problem can be reproduced. A regression test will need to be
written in any case to verify a fix and prevent the problem from resurfacing.

It is also possible to write test cases in C. Various examples of this
exist in the regress/ directory. Most such tests are unit tests written
before Got's command line interface was available; it is unlikely that a
problem found during regular usage will require a test to be written in C.

Some areas of code, such as the tog UI, are not covered by automated tests.
Please always try to find a way to trigger your problem via the command line
interface before reporting a problem without a written test case included.
If writing an automated test really turns out to be impossible, please
explain in very clear terms how the problem can be reproduced.

Mail problem reports to: Stefan Sperling <stsp@stsp.name>


Guidelines for submitting patches:

Please keep the intended target audience in mind when contributing to Got.
Patches related to non-OpenBSD systems will not be integrated before an
official portable version of Got is being worked on, if ever.

Please refrain from sending long series of patches without prior discussion.

Mail patches to: Stefan Sperling <stsp@stsp.name>

Pull requests via any Git hosting sites will likely be overlooked or ignored.