2 .\" Copyright (c) 2020 Stefan Sperling <stsp@openbsd.org>
4 .\" Permission to use, copy, modify, and distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
6 .\" copyright notice and this permission notice appear in all copies.
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 .Nd Game of Trees configuration file
24 is the run-time configuration file for
28 may be present in the root directory of a Git repository for
29 repository-wide settings, or in the
31 meta-data directory of a work tree to override repository-wide
34 commands executed within this work tree.
36 The file format is line-based, with one configuration directive per line.
37 Any lines beginning with a
39 are treated as comments and ignored.
41 The available configuration directives are as follows:
43 .It Ic author Dq Real Name <email address>
44 Configure the author's name and email address for
48 when operating on this repository.
49 Author information specified here overrides the
55 may fail to parse commits without an email address in author data,
57 attempts to reject author information with a missing email address.
58 .It Ic allowed_signers Pa path
61 to the "allowed signers" file which contains a list of trusted
62 SSH signer identities.
63 The file will be passed to
65 during verification of SSH-based signatures with
67 The format of the "allowed signers" file is documented in the
68 ALLOWED SIGNERS section of
71 Verification of SSH-based signatures is impossible unless the
75 .It Ic revoked_signers Pa path
78 to the optional "revoked signers" file, which contains a list of revoked
79 SSH signer identities.
80 This file is passed to
82 during signature verification with
84 Revoked identities are no longer considered trustworthy and verification
85 of relevant signatures will fail.
86 .It Ic remote Ar name Brq ...
87 Define a remote repository.
90 can be used to refer to the remote repository on the command line of
95 Information about this repository is declared in a block of options
96 enclosed in curly brackets:
98 .It Ic server Ar hostname
99 Defines the hostname to use for contacting the remote repository's server.
100 .It Ic repository Ar path
101 Defines the path to the repository on the remote repository's server.
102 .It Ic protocol Ar scheme
103 Defines the protocol to use for communicating with the remote repository's
106 The following protocol schemes are supported:
107 .Bl -tag -width git+ssh
109 The Git protocol as implemented by the
112 Use of this protocol is discouraged since it supports neither authentication
115 The Git protocol wrapped in an authenticated and encrypted
118 With this protocol the hostname may contain an embedded username for
123 Short alias for git+ssh.
126 Defines the port to use for connecting to the remote repository's server.
129 can be specified by number or name.
130 The port name to number mappings are found in the file
135 If not specified, the default port of the specified
138 .It Ic branch Brq Ar branch ...
139 Specify one or more branches which
143 should fetch from and send to the remote repository by default.
144 The list of branches specified here can be overridden at the
148 command lines with the
151 .It Ic fetch_all_branches Ar yes | no
152 This option controls whether
154 will fetch all branches from the remote repository by default.
155 If enabled, this behaviour can be overridden at the
157 command line with the
161 configuration settings for this remote repository will be ignored.
162 .It Ic reference Brq Ar reference ...
163 Specify one or more arbitrary references which
165 should fetch by default, in addition to the branches and tags that will
167 The list of references specified here can be overridden at the
169 command line with the
173 will refuse to fetch references from the remote repository's
178 In any case, references in the
180 namespace will always be fetched and mapped directly to local references
181 in the same namespace.
182 .It Ic mirror_references Ar yes | no
183 This option controls the behaviour of
185 when updating references.
186 .Sy Enabling this option can lead to the loss of local commits.
187 Maintaining custom changes in a mirror repository is therefore discouraged.
189 If this option is not specified or set to
192 will map references of the remote repository into the local repository's
196 If this option is set to
200 namespace will be updated directly to match the corresponding branches in
201 the remote repository.
205 block may contain any of the following configuration settings
208 overriding corresponding settings in the containing
209 .Ic remote Ar name Brq ...
213 .Ic server Ar hostname
215 .Ic repository Ar path
217 .Ic protocol Ar scheme
221 .Ic branch Brq Ar branch ...
226 block may contain any of the following configuration settings
229 overriding corresponding settings in the containing
230 .Ic remote Ar name Brq ...
234 .Ic server Ar hostname
236 .Ic repository Ar path
238 .Ic protocol Ar scheme
242 .Ic branch Brq Ar branch ...
247 Configure author information:
248 .Bd -literal -offset indent
249 author "Flan Hacker <flan_hacker@openbsd.org>"
252 Remote repository specification for the Game of Trees repository:
253 .Bd -literal -offset indent
255 server git.gameoftrees.org
264 src repository from Github:
265 .Bd -literal -offset indent
267 repository "openbsd/src"
268 server git@github.com
270 mirror_references yes
274 Fetch changes via the Git protocol and send changes via the SSH protocol:
275 .Bd -literal -offset indent
278 server git.example.com
281 server git@git.example.com
287 .Bl -tag -width Ds -compact
291 located in the root directory of a Git repository supersedes any relevant
301 meta-data directory of a
303 work tree supersedes any relevant settings in the repository's
305 configuration file and Git's
311 .Xr git-repository 5 ,
315 offers no way to configure the editor spawned by
321 This is deliberate and prevents potential arbitrary command execution
322 as another user when repositories or work trees are shared between users.
323 Users should set their
327 environment variables instead.