Make fetch/pull scripts terminate cleanly on errors
[gitweb.git] / git-resolve-script
index 5f1a748cede943a269c6ddf8f38dbcbe0aa8723d..74fb2875b5d7b9e5802ef7b21111584031c7c59b 100644 (file)
@@ -36,16 +36,13 @@ if [ "$common" == "$merge" ]; then
 fi
 if [ "$common" == "$head" ]; then
        echo "Updating from $head to $merge."
-       echo "Destroying all noncommitted data!"
-       echo "Kill me within 3 seconds.."
-       sleep 3
-       git-read-tree -m $merge && git-checkout-cache -f -u -a
+       git-read-tree -u -m $head $merge || exit 1
        echo $merge > "$GIT_DIR"/HEAD
-       git-diff-tree -p ORIG_HEAD HEAD | diffstat -p1
+       git-diff-tree -p ORIG_HEAD HEAD | git-apply --stat
        exit 0
 fi
 echo "Trying to merge $merge into $head"
-git-read-tree -m $common $head $merge
+git-read-tree -u -m $common $head $merge || exit 1
 merge_msg="Merge of $merge_repo"
 result_tree=$(git-write-tree  2> /dev/null)
 if [ $? -ne 0 ]; then
@@ -57,5 +54,4 @@ fi
 result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree -p $head -p $merge)
 echo "Committed merge $result_commit"
 echo $result_commit > "$GIT_DIR"/HEAD
-git-checkout-cache -f -u -a
-git-diff-tree -p ORIG_HEAD HEAD | diffstat -p1
+git-diff-tree -p ORIG_HEAD HEAD | git-apply --stat