Add support for core.worktree, and fix support for GIT_WORK_TREE and GIT_DIR.

The environment needs to override git-config. Changed when git config is
read, and avoid rereading it once it's been read.

chdir for both worktree settings.
This commit is contained in:
Joey Hess 2012-05-18 18:20:53 -04:00
parent bb4f31a0ee
commit eb6cb1b87f
10 changed files with 79 additions and 44 deletions

View file

@ -10,7 +10,7 @@ import System.Environment
import Common
import qualified Git.UnionMerge
import qualified Git.Config
import qualified Git.Construct
import qualified Git.CurrentRepo
import qualified Git.Branch
import qualified Git.Index
import qualified Git
@ -40,7 +40,7 @@ parseArgs = do
main :: IO ()
main = do
[aref, bref, newref] <- map Git.Ref <$> parseArgs
g <- Git.Config.read =<< Git.Construct.fromCurrent
g <- Git.Config.read =<< Git.CurrentRepo.get
_ <- Git.Index.override $ tmpIndex g
setup g
Git.UnionMerge.merge aref bref g