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
|
@ -13,15 +13,17 @@ import Common
|
|||
import Git
|
||||
import Git.Types
|
||||
import qualified Git.Command
|
||||
import qualified Git.BuildVersion
|
||||
import qualified Git.Version
|
||||
|
||||
remove :: RemoteName -> Repo -> IO ()
|
||||
remove remotename = Git.Command.run
|
||||
[ Param "remote"
|
||||
-- name of this subcommand changed
|
||||
, Param $
|
||||
if Git.BuildVersion.older "1.8.0"
|
||||
then "rm"
|
||||
else "remove"
|
||||
, Param remotename
|
||||
]
|
||||
remove remotename r = do
|
||||
old <- Git.Version.older "1.8.0"
|
||||
Git.Command.run
|
||||
[ Param "remote"
|
||||
-- name of this subcommand changed
|
||||
, Param $
|
||||
if old
|
||||
then "rm"
|
||||
else "remove"
|
||||
, Param remotename
|
||||
] r
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue