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 signer_id Pa signer-id
62 This key will be used to sign all tag objects unless overridden by
63 .Cm got tag Fl s Ar signer-id .
65 For SSH-based signatures,
67 is the path to a file which may refer to either a private SSH key,
68 or a public SSH key with the private half available via
70 .It Ic allowed_signers Pa path
73 to the "allowed signers" file which contains a list of trusted
74 SSH signer identities.
75 The file will be passed to
77 during verification of SSH-based signatures with
79 The format of the "allowed signers" file is documented in the
80 ALLOWED SIGNERS section of
83 Verification of SSH-based signatures is impossible unless the
87 .It Ic revoked_signers Pa path
90 to the optional "revoked signers" file, which contains a list of revoked
91 SSH signer identities.
92 This file is passed to
94 during signature verification with
96 Revoked identities are no longer considered trustworthy and verification
97 of relevant signatures will fail.
98 .It Ic remote Ar name Brq ...
99 Define a remote repository.
102 can be used to refer to the remote repository on the command line of
107 When repositories are shared between multiple users on the system, it is
108 recommended that users configure their trusted remote repositories in each
111 files, overriding corresponding repository-wide settings.
112 This can avoid potentially undesirable connections to remote repositories
113 placed into the shared repository's
117 Information about a repository is declared in a block of options
118 enclosed in curly brackets:
120 .It Ic server Ar hostname
121 Defines the hostname to use for contacting the remote repository's server.
122 .It Ic repository Ar path
123 Defines the path to the repository on the remote repository's server.
124 .It Ic protocol Ar scheme
125 Defines the protocol to use for communicating with the remote repository's
128 The following protocol schemes are supported:
129 .Bl -tag -width https
131 The Git protocol as implemented by the
134 Use of this protocol is discouraged since it supports neither authentication
137 The Git protocol wrapped in an authenticated and encrypted
140 With this protocol the hostname may contain an embedded username for
148 Not compatible with servers using the
154 Git HTTP protocol is supported by
160 To send from a repository cloned over HTTP, add a
162 block (see below) to ensure that the
164 protocol will be used by
167 Use of this protocol is discouraged since it supports neither authentication
172 Git HTTP protocol wrapped in SSL/TLS.
175 Defines the port to use for connecting to the remote repository's server.
178 can be specified by number or name.
179 The port name to number mappings are found in the file
184 If not specified, the default port of the specified
187 .It Ic branch Brq Ar branch ...
188 Specify one or more branches which
192 should fetch from and send to the remote repository by default.
193 The list of branches specified here can be overridden at the
197 command lines with the
200 .It Ic fetch_all_branches Ar yes | no
201 This option controls whether
203 will fetch all branches from the remote repository by default.
204 If enabled, this behaviour can be overridden at the
206 command line with the
210 configuration settings for this remote repository will be ignored.
211 .It Ic reference Brq Ar reference ...
212 Specify one or more arbitrary references which
214 should fetch by default, in addition to the branches and tags that will
216 The list of references specified here can be overridden at the
218 command line with the
222 will refuse to fetch references from the remote repository's
227 In any case, references in the
229 namespace will always be fetched and mapped directly to local references
230 in the same namespace.
231 .It Ic mirror_references Ar yes | no
232 This option controls the behaviour of
234 when updating references.
235 .Sy Enabling this option can lead to the loss of local commits.
236 Maintaining custom changes in a mirror repository is therefore discouraged.
238 If this option is not specified or set to
241 will map references of the remote repository into the local repository's
245 If this option is set to
249 namespace will be updated directly to match the corresponding branches in
250 the remote repository.
254 block may contain any of the following configuration settings
257 overriding corresponding settings in the containing
258 .Ic remote Ar name Brq ...
262 .Ic server Ar hostname
264 .Ic repository Ar path
266 .Ic protocol Ar scheme
270 .Ic branch Brq Ar branch ...
275 block may contain any of the following configuration settings
278 overriding corresponding settings in the containing
279 .Ic remote Ar name Brq ...
283 .Ic server Ar hostname
285 .Ic repository Ar path
287 .Ic protocol Ar scheme
291 .Ic branch Brq Ar branch ...
296 .Bl -tag -width Ds -compact
300 located in the root directory of a Git repository supersedes any relevant
310 meta-data directory of a
312 work tree supersedes any relevant settings in the repository's
314 configuration file and Git's
319 Configure author information:
320 .Bd -literal -offset indent
321 author "Flan Hacker <flan_hacker@openbsd.org>"
324 Remote repository specification for the Game of Trees repository:
325 .Bd -literal -offset indent
327 server anonymous@got.gameoftrees.org
336 src repository from Github:
337 .Bd -literal -offset indent
339 repository "openbsd/src"
340 server git@github.com
342 mirror_references yes
346 Fetch changes via the Git protocol and send changes via the SSH protocol:
347 .Bd -literal -offset indent
350 server git.example.com
353 server git@git.example.com
360 .Xr git-repository 5 ,
364 offers no way to configure the editor spawned by
370 This is deliberate and prevents potential arbitrary command execution
371 as another user when repositories or work trees are shared between users.
372 Users should set their
376 environment variables instead.