summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rw-r--r--src/Propellor/Spin.hs8
2 files changed, 9 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index f4fcf35c..2375dfd5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,9 @@ propellor (2.7.0) UNRELEASED; urgency=medium
* Added onChangeFlagOnFail which is often a safer alternative to
onChange.
Thanks, Antoine Eiche.
+ * 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.
-- Joey Hess <id@joeyh.name> Mon, 20 Jul 2015 12:01:38 -0400
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