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 Comments can be put anywhere in the file using a hash mark
39 and extend to the end of the current line.
40 Arguments names not beginning with a letter, digit or underscore,
41 as well as reserved words
42 .Pq such as Ic author , Ic remote No or Ic port ,
44 Arguments containing whitespace should be surrounded by double quotes
47 The available configuration directives are as follows:
49 .It Ic author Dq Real Name <email address>
50 Configure the author's name and email address for
54 when operating on this repository.
55 Author information specified here overrides the
61 may fail to parse commits without an email address in author data,
63 attempts to reject author information with a missing email address.
64 .It Ic signer_id Pa signer-id
68 This key will be used to sign all tag objects unless overridden by
69 .Cm got tag Fl s Ar signer-id .
71 For SSH-based signatures,
73 is the path to a file which may refer to either a private SSH key,
74 or a public SSH key with the private half available via
76 .It Ic allowed_signers Pa path
79 to the "allowed signers" file which contains a list of trusted
80 SSH signer identities.
81 The file will be passed to
83 during verification of SSH-based signatures with
85 The format of the "allowed signers" file is documented in the
86 ALLOWED SIGNERS section of
89 Verification of SSH-based signatures is impossible unless the
93 .It Ic revoked_signers Pa path
96 to the optional "revoked signers" file, which contains a list of revoked
97 SSH signer identities.
98 This file is passed to
100 during signature verification with
102 Revoked identities are no longer considered trustworthy and verification
103 of relevant signatures will fail.
104 .It Ic remote Ar name Brq ...
105 Define a remote repository.
108 can be used to refer to the remote repository on the command line of
113 When repositories are shared between multiple users on the system, it is
114 recommended that users configure their trusted remote repositories in each
117 files, overriding corresponding repository-wide settings.
118 This can avoid potentially undesirable connections to remote repositories
119 placed into the shared repository's
123 Information about a repository is declared in a block of options
124 enclosed in curly brackets:
126 .It Ic server Ar hostname
127 Defines the hostname to use for contacting the remote repository's server.
128 .It Ic repository Ar path
129 Defines the path to the repository on the remote repository's server.
130 .It Ic protocol Ar scheme
131 Defines the protocol to use for communicating with the remote repository's
134 The following protocol schemes are supported:
135 .Bl -tag -width https
137 The Git protocol as implemented by the
140 Use of this protocol is discouraged since it supports neither authentication
143 The Git protocol wrapped in an authenticated and encrypted
146 With this protocol the hostname may contain an embedded username for
154 Not compatible with servers using the
160 Git HTTP protocol is supported by
166 To send from a repository cloned over HTTP, add a
168 block (see below) to ensure that the
170 protocol will be used by
173 Use of this protocol is discouraged since it supports neither authentication
178 Git HTTP protocol wrapped in SSL/TLS.
181 Defines the port to use for connecting to the remote repository's server.
184 can be specified by number or name.
185 The port name to number mappings are found in the file
190 If not specified, the default port of the specified
193 .It Ic branch Brq Ar branch ...
194 Specify one or more branches which
198 should fetch from and send to the remote repository by default.
199 The list of branches specified here can be overridden at the
203 command lines with the
206 .It Ic fetch_all_branches Ar yes | no
207 This option controls whether
209 will fetch all branches from the remote repository by default.
210 If enabled, this behaviour can be overridden at the
212 command line with the
216 configuration settings for this remote repository will be ignored.
217 .It Ic reference Brq Ar reference ...
218 Specify one or more arbitrary references which
220 should fetch by default, in addition to the branches and tags that will
222 The list of references specified here can be overridden at the
224 command line with the
228 will refuse to fetch references from the remote repository's
233 In any case, references in the
235 namespace will always be fetched and mapped directly to local references
236 in the same namespace.
237 .It Ic mirror_references Ar yes | no
238 This option controls the behaviour of
240 when updating references.
241 .Sy Enabling this option can lead to the loss of local commits.
242 Maintaining custom changes in a mirror repository is therefore discouraged.
244 If this option is not specified or set to
247 will map references of the remote repository into the local repository's
251 If this option is set to
255 namespace will be updated directly to match the corresponding branches in
256 the remote repository.
260 block may contain any of the following configuration settings
263 overriding corresponding settings in the containing
264 .Ic remote Ar name Brq ...
268 .Ic server Ar hostname
270 .Ic repository Ar path
272 .Ic protocol Ar scheme
276 .Ic branch Brq Ar branch ...
281 block may contain any of the following configuration settings
284 overriding corresponding settings in the containing
285 .Ic remote Ar name Brq ...
289 .Ic server Ar hostname
291 .Ic repository Ar path
293 .Ic protocol Ar scheme
297 .Ic branch Brq Ar branch ...
302 .Bl -tag -width Ds -compact
306 located in the root directory of a Git repository supersedes any relevant
316 meta-data directory of a
318 work tree supersedes any relevant settings in the repository's
320 configuration file and Git's
325 Configure author information:
326 .Bd -literal -offset indent
327 author "Flan Hacker <flan_hacker@openbsd.org>"
330 Remote repository specification for the Game of Trees repository:
331 .Bd -literal -offset indent
333 server anonymous@got.gameoftrees.org
342 src repository from Github:
343 .Bd -literal -offset indent
345 repository "openbsd/src"
346 server git@github.com
348 mirror_references yes
352 Fetch changes via the Git protocol and send changes via the SSH protocol:
353 .Bd -literal -offset indent
356 server git.example.com
359 server git@git.example.com
366 .Xr git-repository 5 ,
370 offers no way to configure the editor spawned by
376 This is deliberate and prevents potential arbitrary command execution
377 as another user when repositories or work trees are shared between users.
378 Users should set their
382 environment variables instead.