From 2de35be7538023dd70e4c4b3ef984d1ae8a4c5a7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 6 May 2016 12:26:37 -0400 Subject: Propigate GIT_DIR and GIT_WORK_TREE environment to external special remotes. Since git-annex unsets these when started, they have to be explicitly propigated. Also, this makes --git-dir and --work-tree settings be reflected in the environment. The need for this came up in https://github.com/DanielDent/git-annex-remote-rclone/issues/3 --- Git.hs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Git.hs') diff --git a/Git.hs b/Git.hs index 6f7769c87..b35051523 100644 --- a/Git.hs +++ b/Git.hs @@ -26,6 +26,7 @@ module Git ( repoDescribe, repoLocation, repoPath, + repoWorkTree, localGitDir, attributes, attributesLocal, @@ -73,6 +74,10 @@ repoPath Repo { location = Local { gitdir = d } } = d repoPath Repo { location = LocalUnknown dir } = dir repoPath Repo { location = Unknown } = error "unknown repoPath" +repoWorkTree :: Repo -> Maybe FilePath +repoWorkTree Repo { location = Local { worktree = Just d } } = Just d +repoWorkTree _ = Nothing + {- Path to a local repository's .git directory. -} localGitDir :: Repo -> FilePath localGitDir Repo { location = Local { gitdir = d } } = d -- cgit v1.2.3