diff options
Diffstat (limited to 'Git/Construct.hs')
-rw-r--r-- | Git/Construct.hs | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/Git/Construct.hs b/Git/Construct.hs index 45ea0f64d..b809d7318 100644 --- a/Git/Construct.hs +++ b/Git/Construct.hs @@ -6,7 +6,6 @@ -} module Git.Construct ( - fromCurrent, fromCwd, fromAbsPath, fromPath, @@ -21,8 +20,6 @@ module Git.Construct ( ) where import System.Posix.User -import System.Posix.Env (getEnv, unsetEnv) -import System.Posix.Directory (changeWorkingDirectory) import qualified Data.Map as M hiding (map, split) import Network.URI @@ -31,28 +28,6 @@ import Git.Types import Git import qualified Git.Url as Url -{- Finds the current git repository. - - - - GIT_DIR can override the location of the .git directory. - - - - When GIT_WORK_TREE is set, chdir to it, so that anything using - - this repository runs in the right location. However, this chdir is - - done after determining GIT_DIR; git does not let GIT_WORK_TREE - - influence the git directory. - - - - Both environment variables are unset, to avoid confusing other git - - commands that also look at them. This would particularly be a problem - - when GIT_DIR is relative and we chdir for GIT_WORK_TREE. Instead, - - the Git module passes --work-tree and --git-dir to git commands it runs. - -} -fromCurrent :: IO Repo -fromCurrent = do - r <- maybe fromCwd fromPath =<< getEnv "GIT_DIR" - maybe noop changeWorkingDirectory =<< getEnv "GIT_WORK_TREE" - unsetEnv "GIT_DIR" - unsetEnv "GIT_WORK_TREE" - return r - {- Finds the git repository used for the Cwd, which may be in a parent - directory. -} fromCwd :: IO Repo @@ -251,3 +226,5 @@ newFrom l = return Repo , remotes = [] , remoteName = Nothing } + + |