summaryrefslogtreecommitdiff
path: root/src/Propellor/Spin.hs
diff options
context:
space:
mode:
authorJoey Hess2015-07-30 12:01:15 -0400
committerJoey Hess2015-07-30 12:01:15 -0400
commitf387bbcf2d7417cf9389eff92d12f28af26cce3e (patch)
tree9e11d26e600daa5ee300ca1193ac5cf0e6297e25 /src/Propellor/Spin.hs
parent055e28199c1fb0993aa68d61880b36f046e0412d (diff)
Work around broken git pull option parser in git 2.5.0, which broke use of --upload-pack to send a git push when running propellor --spin.
Diffstat (limited to 'src/Propellor/Spin.hs')
-rw-r--r--src/Propellor/Spin.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/Propellor/Spin.hs b/src/Propellor/Spin.hs
index 3ff1ec21..61d519c3 100644
--- a/src/Propellor/Spin.hs
+++ b/src/Propellor/Spin.hs
@@ -147,11 +147,15 @@ update forhost = do
hout <- dup stdOutput
hClose stdin
hClose stdout
+ -- Not using git pull because git 2.5.0 badly
+ -- broke its option parser.
unlessM (boolSystem "git" (pullparams hin hout)) $
- errorMessage "git pull from client failed"
+ errorMessage "git fetch from client failed"
+ unlessM (boolSystem "git" [Param "merge", Param "FETCH_HEAD"]) $
+ errorMessage "git merge from client failed"
where
pullparams hin hout =
- [ Param "pull"
+ [ Param "fetch"
, Param "--progress"
, Param "--upload-pack"
, Param $ "./propellor --gitpush " ++ show hin ++ " " ++ show hout