diff options
author | 2015-01-05 15:54:52 -0400 | |
---|---|---|
committer | 2015-01-05 15:54:52 -0400 | |
commit | 9aa10480680cfe57e9d53bf488ba1b7d8e199a2a (patch) | |
tree | b4c285c579cf746585477952a0e2e1e326a4f2e8 /Git/Version.hs | |
parent | c1e01a5ccce06745d1344b3013b91331058f4b52 (diff) |
Check git version at runtime, rather than assuming it will be the same as the git version used at build time when running git-checkattr and git-branch remove.
It's ok to probe every time for git-branch remove because that's
run quite rarely. For git-checkattr, it's run only once, when
starting the --batch mode, and so again the overhead is pretty minimal.
This leaves 2 places where the build version is still used.
git merge might be interactive or fail if one skews, and --no-gpg-sign
might not be pased, or might be passed to a git that doesn't understand it
if the other skews. It seems a little expensive to check the git version
each time these are used.
This doesn't seem likely to cause many problems, at least compared with
check-attr hanging on skew.
Diffstat (limited to 'Git/Version.hs')
-rw-r--r-- | Git/Version.hs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Git/Version.hs b/Git/Version.hs index 1c53b4bfd..73ce2f81d 100644 --- a/Git/Version.hs +++ b/Git/Version.hs @@ -7,6 +7,7 @@ module Git.Version ( installed, + older, normalize, GitVersion, ) where @@ -22,3 +23,8 @@ installed = normalize . extract <$> readProcess "git" ["--version"] extract s = case lines s of [] -> "" (l:_) -> unwords $ drop 2 $ words l + +older :: String -> IO Bool +older n = do + v <- installed + return $ v < normalize n |