Blob


1 Game of Trees (Got) is a version control system which prioritizes ease
2 of use and simplicity over flexibility.
4 Got is still under development; it is being developed exclusively
5 on OpenBSD and its target audience are OpenBSD developers. Got is
6 ISC-licensed and was designed with pledge(2) and unveil(2) in mind.
8 Got uses Git repositories to store versioned data. At present, Got
9 supports local version control operations only. Git can be used
10 for any functionality which has not yet been implemented in Got.
11 It will always remain possible to work with both Got and Git on
12 the same repository.
14 To compile the Got tool suite on OpenBSD, run:
16 $ make obj
17 $ make
18 $ make install
20 This will install the following commands:
22 got, the command line interface
23 tog, an ncurses-based interactive Git repository browser
24 several helper programs from the libexec directory
25 man pages (only installed if building sources from a Got release tarball)
27 A Got release tarball will install files under /usr/local by default.
28 A build started in Got's Git repository will install files under ~/bin.
30 Tests will pass only after 'make install' because they rely on installed
31 binaries in $PATH. Tests in the cmdline directory currently depend on git(1).
33 $ doas pkg_add git
34 $ make regress
36 To test with packed repositories, run:
38 $ make regress GOT_TEST_PACK=1
40 Man page files in the Got source tree can be viewed with 'man -l':
42 $ man -l got/got.1
43 $ man -l got/git-repository.5
44 $ man -l got/got-worktree.5
45 $ man -l tog/tog.1
47 EXAMPLES in got.1 contains a quick-start guide for OpenBSD developers.
49 Game of Trees Web (Gotweb) is a CGI program which displays repository data
50 and is designed to work with httpd(8) and slowcgi(8).
52 To compile gotweb on OpenBSD, run:
54 # pkg_add kcgi
55 $ make web
56 # make web-install
58 This will create the following files:
59 the CGI program /var/www/cgi-bin/gotweb/gotweb
60 helper programs from the libexec directory in /var/www/cgi-bin/gotweb/libexec
61 several template files in /var/www/cgi-bin/gw_tmpl/
62 html, css, and image files in /var/www/htdocs/gotweb/gotweb/
63 the directory /var/www/tmp/
64 man pages (only installed if building sources from a Got release tarball)
66 Example configuration for httpd.conf:
68 types { include "/usr/share/misc/mime.types" }
69 server "localhost" {
70 listen on * port 80
71 root "/htdocs/gotweb"
72 location "/cgi-bin/*" {
73 root "/"
74 fastcgi
75 }
76 location "/*" {
77 directory index "index.html"
78 }
79 }
81 httpd(8) and slowcgi(8) should be enabled and started:
83 # rcctl enable httpd slowcgi
84 # rcctl start httpd slowcgi
86 Gotweb's run-time behaviour can be configured in the gotweb.conf file:
88 $ man -l gotweb/gotweb.conf.5
91 Guidelines for reporting problems:
93 All problem/bug reports should include a reproduction recipe in form of a
94 shell script which starts out with an empty repository and runs a series of
95 Got and/or Git commands to trigger the problem, be it a crash or some other
96 undesirable behaviour.
98 The regress/cmdline directory contains plenty of example scripts.
99 An ideal reproduction recipe is written as an xfail ("expected failure")
100 regression test. For a real-world example of an xfail test, see commits
101 4866d0842a2b34812818685aaa31d3e0a966412d and
102 2b496619daecc1f25b1bc0c53e01685030dc2c74 in Got's history.
104 Please take this request very seriously; Ask for help with writing your
105 regression test before asking for your problem to be fixed. Time invested
106 in writing a regression test saves time wasted on back-and-forth discussion
107 about how the problem can be reproduced. A regression test will need to be
108 written in any case to verify a fix and prevent the problem from resurfacing.
110 It is also possible to write test cases in C. Various examples of this
111 exist in the regress/ directory. Most such tests are unit tests; it is
112 unlikely that a problem found during regular usage will require a test
113 to be written in C.
115 Some areas of code, such as the tog UI, are not covered by automated tests.
116 Please always try to find a way to trigger your problem via the command line
117 interface before reporting a problem without a written test case included.
118 If writing an automated test really turns out to be impossible, please
119 explain in very clear terms how the problem can be reproduced.
121 Mail problem reports to: gameoftrees@openbsd.org
124 Guidelines for submitting patches:
126 Mail patches to: gameoftrees@openbsd.org
127 Pull requests via any Git hosting sites will likely be overlooked.
128 Please keep the intended target audience in mind when contributing to Got.
131 Subscribing to the gameoftrees@openbsd.org mailing list:
133 The mailing list is used for patch reviews, bug reports, and user questions.
134 To subscribe, send mail to majordomo@openbsd.org with a message body of:
135 subscribe gameoftrees
137 See https://www.openbsd.org/mail.html for more information.