Avoid unsetting HOME when running certian git commands. Closes: #690193
Setting GIT_INDEX_FILE clobbers the rest of the environment, making git not read ~/.gitconfig, and blow up if GECOS didn't have a name for the user. I'm not entirely happy with getEnvironment being run every time now, that's somewhat expensive. It may make sense to just set GIT_COMMITTER_* and GIT_AUTHOR_*, but I worry that clobbering the rest could break PATH, or GIT_PATH, or something else that might be used by a command run in here. And caching the environment is not a good idea either; it can change..
This commit is contained in:
parent
bbf2c31aa7
commit
97ea08e2d1
3 changed files with 7 additions and 1 deletions
|
@ -22,6 +22,7 @@ module Annex.Branch (
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Data.ByteString.Lazy.Char8 as L
|
import qualified Data.ByteString.Lazy.Char8 as L
|
||||||
|
import System.Environment
|
||||||
|
|
||||||
import Common.Annex
|
import Common.Annex
|
||||||
import Annex.BranchState
|
import Annex.BranchState
|
||||||
|
@ -292,7 +293,8 @@ withIndex' :: Bool -> Annex a -> Annex a
|
||||||
withIndex' bootstrapping a = do
|
withIndex' bootstrapping a = do
|
||||||
f <- fromRepo gitAnnexIndex
|
f <- fromRepo gitAnnexIndex
|
||||||
g <- gitRepo
|
g <- gitRepo
|
||||||
let g' = g { gitEnv = Just [("GIT_INDEX_FILE", f)] }
|
e <- liftIO getEnvironment
|
||||||
|
let g' = g { gitEnv = Just $ ("GIT_INDEX_FILE", f):e }
|
||||||
|
|
||||||
Annex.changeState $ \s -> s { Annex.repo = g' }
|
Annex.changeState $ \s -> s { Annex.repo = g' }
|
||||||
checkIndexOnce $ unlessM (liftIO $ doesFileExist f) $ do
|
checkIndexOnce $ unlessM (liftIO $ doesFileExist f) $ do
|
||||||
|
|
1
debian/changelog
vendored
1
debian/changelog
vendored
|
@ -4,6 +4,7 @@ git-annex (3.20121010) UNRELEASED; urgency=low
|
||||||
* Standard groups changed to client, transfer, archive, and backup.
|
* Standard groups changed to client, transfer, archive, and backup.
|
||||||
Each of these has its own standard preferred content setting.
|
Each of these has its own standard preferred content setting.
|
||||||
* dead: Remove dead repository from all groups.
|
* dead: Remove dead repository from all groups.
|
||||||
|
* Avoid unsetting HOME when running certian git commands. Closes: #690193
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Wed, 10 Oct 2012 12:59:25 -0400
|
-- Joey Hess <joeyh@debian.org> Wed, 10 Oct 2012 12:59:25 -0400
|
||||||
|
|
||||||
|
|
|
@ -46,3 +46,6 @@ commit 56c037c69e75def74d6ea90de8aa8a1954c52178 Arch Linux
|
||||||
**Please provide any additional information below.**
|
**Please provide any additional information below.**
|
||||||
|
|
||||||
> [[done]] by adding name to the user, in /etc/passwd. --Stone
|
> [[done]] by adding name to the user, in /etc/passwd. --Stone
|
||||||
|
|
||||||
|
>> Actually, [[done]] by avoiding clobbering HOME when running some git
|
||||||
|
>> commands. --[[Joey]]
|
||||||
|
|
Loading…
Add table
Reference in a new issue