Blob


1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8"/>
5 <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6 <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
7 <title>GITWRAPPER(1)</title>
8 </head>
9 <!-- This is an automatically generated file. Do not edit.
10 Copyright (c) 2023 Stefan Sperling
12 Permission to use, copy, modify, and distribute this software for any
13 purpose with or without fee is hereby granted, provided that the above
14 copyright notice and this permission notice appear in all copies.
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 -->
24 <body>
25 <div class="head" role="doc-pageheader" aria-label="Manual header
26 line"><span class="head-ltitle">GITWRAPPER(1)</span>
27 <span class="head-vol">General Commands Manual</span>
28 <span class="head-rtitle">GITWRAPPER(1)</span></div>
29 <main class="manual-text">
30 <section class="Sh">
31 <h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
32 <p class="Pp"><code class="Nm">gitwrapper</code> &#x2014;
33 <span class="Nd" role="doc-subtitle">invoke an appropriate Git repository
34 server</span></p>
35 </section>
36 <section class="Sh">
37 <h2 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h2>
38 <table class="Nm">
39 <tr>
40 <td><code class="Nm">gitwrapper <code class="Fl">-c</code>
41 &#x2018;<code class="Cm">git-receive-pack</code>
42 <var class="Ar">repository-path</var>&#x2019;</code></td>
43 <td></td>
44 </tr>
45 </table>
46 <br/>
47 <table class="Nm">
48 <tr>
49 <td><code class="Nm">gitwrapper <code class="Fl">-c</code>
50 &#x2018;<code class="Cm">git-upload-pack</code>
51 <var class="Ar">repository-path</var>&#x2019;</code></td>
52 <td></td>
53 </tr>
54 </table>
55 </section>
56 <section class="Sh">
57 <h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
58 <p class="Pp">At one time, the only Git repository server software easily
59 available was built into <a class="Xr" aria-label="git-upload-pack, section
60 1">git-upload-pack(1)</a> and <a class="Xr" aria-label="git-receive-pack,
61 section 1">git-receive-pack(1)</a> which are part of the
62 <a class="Xr" aria-label="git, section 1">git(1)</a> suite. As a result of
63 this, most Git client implementations had the path and calling conventions
64 expected by <a class="Xr" aria-label="git, section 1">git(1)</a> compiled
65 in.</p>
66 <p class="Pp">Times have changed, however. On a modern system, the administrator
67 may wish to use one of several available Git repository servers, such as
68 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>.</p>
69 <p class="Pp">It would be difficult to modify all Git client software typically
70 available on a system, so most of the authors of alternative Git servers
71 have written their programs so that they use the same calling conventions as
72 <a class="Xr" aria-label="git-upload-pack, section 1">git-upload-pack(1)</a>
73 and <a class="Xr" aria-label="git-receive-pack, section
74 1">git-receive-pack(1)</a> and may be put into place in their stead.</p>
75 <p class="Pp">Although having drop-in replacements for
76 <a class="Xr" aria-label="git-upload-pack, section 1">git-upload-pack(1)</a>
77 and <a class="Xr" aria-label="git-receive-pack, section
78 1">git-receive-pack(1)</a> helps in installing alternative Git servers, it
79 essentially makes the configuration of the system depend on hard installing
80 new programs in <span class="Pa">/usr</span>. This leads to configuration
81 problems for many administrators, since they may wish to install a new Git
82 server without altering the system provided <span class="Pa">/usr</span>.
83 (This may be, for example, to avoid having upgrade problems when a new
84 version of the system is installed over the old.) They may also have a
85 shared <span class="Pa">/usr</span> among several machines, and may wish to
86 avoid placing implicit configuration information in a read-only
87 <span class="Pa">/usr</span>.</p>
88 <p class="Pp">The <code class="Nm">gitwrapper</code> program is designed to
89 replace <a class="Xr" aria-label="git-upload-pack, section
90 1">git-upload-pack(1)</a> and <a class="Xr" aria-label="git-receive-pack,
91 section 1">git-receive-pack(1)</a> and to invoke an appropriate Git server
92 based on configuration information placed in
93 <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>. This
94 permits the administrator to configure which Git server is to be invoked on
95 the system at run-time. Git repositories which are listed in
96 <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a> and exist
97 on the filesystem will be served by <a class="Xr" aria-label="gotsh, section
98 1">gotsh(1)</a>. Any other Git repositories will be served by
99 <a class="Xr" aria-label="git-upload-pack, section 1">git-upload-pack(1)</a>
100 and <a class="Xr" aria-label="git-receive-pack, section
101 1">git-receive-pack(1)</a> as found in Git's <span class="Pa">libexec</span>
102 directory, which is <span class="Pa">/usr/local/libexec/git/</span> by
103 default on <span class="Ux">OpenBSD</span>.</p>
104 </section>
105 <section class="Sh">
106 <h2 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h2>
107 <dl class="Bl-tag">
108 <dt id="GOTD_CONF_PATH"><a class="permalink" href="#GOTD_CONF_PATH"><code class="Ev">GOTD_CONF_PATH</code></a></dt>
109 <dd>Set the path to the configuration file for <a class="Xr" aria-label="gotd,
110 section 8">gotd(8)</a>. If not specified, the default path
111 <span class="Pa">/etc/gotd.conf</span> will be used.</dd>
112 </dl>
113 </section>
114 <section class="Sh">
115 <h2 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h2>
116 <p class="Pp">Configuration for <a class="Xr" aria-label="gotd, section
117 8">gotd(8)</a> is kept in <span class="Pa">/etc/gotd.conf</span>.</p>
118 <p class="Pp"><span class="Pa">git-upload-pack</span> and
119 <span class="Pa">git-receive-pack</span> are typically set up as a symlink
120 to <code class="Nm">gitwrapper</code> which is not usually invoked on its
121 own.</p>
122 </section>
123 <section class="Sh">
124 <h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
125 ALSO</a></h2>
126 <p class="Pp"><a class="Xr" aria-label="got, section 1">got(1)</a>,
127 <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>,
128 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>,
129 <a class="Xr" aria-label="mailwrapper, section 8">mailwrapper(8)</a></p>
130 </section>
131 <section class="Sh">
132 <h2 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h2>
133 <p class="Pp"><span class="An">Stefan Sperling</span>
134 &lt;<a class="Mt" href="mailto:stsp@openbsd.org">stsp@openbsd.org</a>&gt;</p>
135 </section>
136 <section class="Sh">
137 <h2 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h2>
138 <p class="Pp">The entire reason this program exists is a crock. Instead, a
139 command for invoking a Git server should be standardized or the Git protocol
140 should be changed to make the path to the program discoverable by Git
141 clients.</p>
142 </section>
143 </main>
144 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
145 line"><span class="foot-left"></span><span class="foot-date">March 11,
146 2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
147 </body>
148 </html>