summaryrefslogtreecommitdiff
path: root/Annex/AdjustedBranch.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-04-22 12:29:32 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-04-22 12:29:32 -0400
commit8ac4cd6904ca80a6d115f3ce2ade66495a77a45f (patch)
tree88610a8e4c8b5f71568f230d8e6303bc389c4a5e /Annex/AdjustedBranch.hs
parente896c249fa876cbf6f281ce9e934bde6cb92e345 (diff)
adjusted branches need git 2.2.0 or newer
When git-annex is used with a git version older than 2.2.0, disable support for adjusted branches, since GIT_COMMON_DIR is needed to update them and was first added in that version of git.
Diffstat (limited to 'Annex/AdjustedBranch.hs')
-rw-r--r--Annex/AdjustedBranch.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/Annex/AdjustedBranch.hs b/Annex/AdjustedBranch.hs
index e9e6ab461..26a24d8e6 100644
--- a/Annex/AdjustedBranch.hs
+++ b/Annex/AdjustedBranch.hs
@@ -21,6 +21,8 @@ module Annex.AdjustedBranch (
updateAdjustedBranch,
propigateAdjustedCommits,
checkAdjustedClone,
+ isGitVersionSupported,
+ checkVersionSupported,
) where
import Annex.Common
@@ -39,6 +41,8 @@ import Git.Env
import Git.Index
import Git.FilePath
import qualified Git.LockFile
+import qualified Git.Version
+import Annex.Version
import Annex.CatFile
import Annex.Link
import Annex.AutoMerge
@@ -507,3 +511,15 @@ checkAdjustedClone = go =<< inRepo Git.Branch.current
setBasisBranch basis remotebranch
unlessM (inRepo $ Git.Ref.exists origbranch) $
inRepo $ Git.Branch.update' origbranch remotebranch
+
+-- git 2.2.0 needed for GIT_COMMON_DIR which is needed
+-- by updateAdjustedBranch to use withWorkTreeRelated.
+isGitVersionSupported :: IO Bool
+isGitVersionSupported = not <$> Git.Version.older "2.2.0"
+
+checkVersionSupported :: Annex ()
+checkVersionSupported = do
+ unlessM versionSupportsAdjustedBranch $
+ error "Adjusted branches are only supported in v6 or newer repositories."
+ unlessM (liftIO isGitVersionSupported) $
+ error "Your version of git is too old; upgrade it to 2.2.0 or newer to use adjusted branches."