Skip to content

Pass $HOME to git as well

username-removed-300241 requested to merge kirr/gitlab-shell:y/git-home into master

[ this patch has the same rationale and reasoning as https://gitlab.com/gitlab-org/gitlab-workhorse/commit/0d0bd209

details follow ]

Git has 3 places for configs:

- system
- global (per user), and
- local  (per repository)

System config location is hardcoded at git compile time (to usually $prefix/etc/gitconfig). Local configuration is usually picked because we pass full repo path to subcommand. But global configuration is currently not picked at all, because HOME env variable is not passed to git.

Pass $HOME through and let git see it's "global" config.

Currently GitLab omnibus stores gitlab user name/email + "autocrlf = true" in global config, so missing it should not be a blocker for receive/send-pack operations. But having it is more correct and can be handy in the future if/when more git operations are done from-under gitlab-shell.

Having $HOME properly set is also needed when one cannot change system git config and have to put site-wide configuration into global git config under $HOME.

That was the case I've hit and the reason for this patch.

/cc @dzaporozhets, @jacobvosmaer

Merge request reports