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.
This commit is contained in:
parent
bbd5812ab0
commit
4d786ebe4a
4 changed files with 27 additions and 16 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue