Commit 216d7e15 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'y/git-home' into 'master'

Pass $HOME to git as well

[ 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

See merge request !32
parents 1a75d086 9e087f64
...@@ -120,6 +120,7 @@ class GitlabShell ...@@ -120,6 +120,7 @@ class GitlabShell
# This method is not covered by Rspec because it ends the current Ruby process. # This method is not covered by Rspec because it ends the current Ruby process.
def exec_cmd(*args) def exec_cmd(*args)
env = { env = {
'HOME' => ENV['HOME'],
'PATH' => ENV['PATH'], 'PATH' => ENV['PATH'],
'LD_LIBRARY_PATH' => ENV['LD_LIBRARY_PATH'], 'LD_LIBRARY_PATH' => ENV['LD_LIBRARY_PATH'],
'LANG' => ENV['LANG'], 'LANG' => ENV['LANG'],
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment