invoke an appropriate Git repository
At one time, the only Git repository server software easily available was built into git-upload-pack(1) and git-receive-pack(1) which are part of the git(1) suite. As a result of this, most Git client implementations had the path and calling conventions expected by git(1) compiled in.
Times have changed, however. On a modern system, the administrator may wish to use one of several available Git repository servers, such as gotd(8).
It would be difficult to modify all Git client software typically available on a system, so most of the authors of alternative Git servers have written their programs so that they use the same calling conventions as git-upload-pack(1) and git-receive-pack(1) and may be put into place in their stead.
Although having drop-in replacements for git-upload-pack(1) and git-receive-pack(1) helps in installing alternative Git servers, it essentially makes the configuration of the system depend on hard installing new programs in /usr. This leads to configuration problems for many administrators, since they may wish to install a new Git server without altering the system provided /usr. (This may be, for example, to avoid having upgrade problems when a new version of the system is installed over the old.) They may also have a shared /usr among several machines, and may wish to avoid placing implicit configuration information in a read-only /usr.
gitwrapper program is designed to
replace git-upload-pack(1) and git-receive-pack(1) and to invoke an appropriate Git server
based on configuration information placed in
permits the administrator to configure which Git server is to be invoked on
the system at run-time. Git repositories which are listed in
gotd.conf(5) and exist
on the filesystem will be served by gotsh(1). Any other Git repositories will be served by
and git-receive-pack(1) as found in Git's libexec
directory, which is /usr/local/libexec/git/ by
default on OpenBSD.
- Set the path to the configuration file for gotd(8). If not specified, the default path /etc/gotd.conf will be used.
Configuration for gotd(8) is kept in /etc/gotd.conf.
git-receive-pack are typically set up as a symlink
gitwrapper which is not usually invoked on its
got(1), gotd.conf(5), gotd(8), mailwrapper(8)
Stefan Sperling <firstname.lastname@example.org>
The entire reason this program exists is a crock. Instead, a command for invoking a Git server should be standardized or the Git protocol should be changed to make the path to the program discoverable by Git clients.