GITWRAPPER(1)
π GITWRAPPER(1) β the general commands manual, but make it make sense
okay bestie, welcome to gitwrapper(1) β the little middle-man program that summons the right Git repository server for you. no cap, it's basically the group-chat admin of your Git setup π«Ά
β¨ NAME β¨
gitwrapper β invoke an appropriate Git repository server π«
πΈ SYNOPSIS πΈ
gitwrapper -c βgit-upload-pack repository-pathβ
that's it. that's the whole vibe check. two ways in, and both of them are -c plus a command string. iconic behavior honestly π
π DESCRIPTION π
so, storytime π β back in the day, the only Git repository server software you could easily get your hands on was baked directly into git-upload-pack(1) and git-receive-pack(1), which ship as part of the git(1) suite. because of that, most Git client implementations literally compiled in the path and calling conventions that git(1) expected. like, hardcoded. built into the binary. no flexibility, no wiggle room, just vibes and a fixed path π₯
but times have changed, bestie. on a modern system, the admin might want to run one of several different Git repository servers out there β gotd(8) for example. choices! options! main character energy for the sysadmin π
now, you can't exactly go modify every single piece of Git client software typically living on a system β that's not giving practical, that's giving nightmare fuel π β so most authors of alternative Git servers just wrote their programs to use the same calling conventions as git-upload-pack(1) and git-receive-pack(1), so they can be dropped right into their place. slay, honestly π
but here's the thing β having drop-in replacements for git-upload-pack(1) and git-receive-pack(1) is great and all, except it essentially makes your system configuration depend on hard-installing brand new programs in /usr. and that leads to so many configuration problems for admins π© because maybe they want to install a new Git server without altering the system-provided /usr. (maybe to avoid upgrade problems when a new version of the system gets installed over the old one, for example.) or maybe they've got a shared /usr across several machines and don't want to be placing implicit configuration information into a read-only /usr. literally cannot blame them π«
so this is where gitwrapper comes in, and it ate π
. the 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 gotd.conf(5). this lets the administrator configure which Git server gets invoked on the system at run-time β¨. Git repositories that are listed in gotd.conf(5) and exist on the filesystem will be served by gotsh(1). any other Git repositories? those get served by git-upload-pack(1) and git-receive-pack(1) as found in Git's libexec directory β which is /usr/local/libexec/git/ by default on OpenBSD π‘
π¦ ENVIRONMENT π¦
GOTD_CONF_PATHβ set the path to the configuration file forgotd(8). if you don't specify it, the default path/etc/gotd.confwill be used. default queen behavior π
π FILES π
configuration for gotd(8) is kept in /etc/gotd.conf. that's the spot π
git-upload-pack and git-receive-pack are typically set up as a symlink to gitwrapper, which is not usually invoked on its own. so like, don't come for gitwrapper directly, it's got people for that π
π SEE ALSO π
got(1), gotd.conf(5), gotd(8), mailwrapper(8)
(the mailwrapper(8) one is the same trick but for mail. iykyk π)
β AUTHORS β
Stefan Sperling <stsp@openbsd.org> β thank you for your service π«‘π
π BUGS π
ngl, the entire reason this program exists is a crock. like, fr fr. 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. that's the whole bug report. it's giving "this is a workaround and we all know it" π
ok that's the whole page bestie, go configure your Git server at run-time and thrive πΈβ¨
this little love letter to gitwrapper(1) came from the Debian build, dated $Mdocdate$ β mwah, catch you in the next man page πππ¦
π¦ where this page comes from
- alpine 3.24: got-doc 0.126-r0 Β· ISC
- nixos 26.05: got 0.125
- nixpkgs unstable: got 0.129
- Copyright (c) 2023 Stefan Sperling
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms