all_strategies='recursive octopus resolve stupid ours'
default_strategies='recursive'
use_strategies=
+if test "@@NO_PYTHON@@"; then
+ all_strategies='resolve octopus stupid ours'
+ default_strategies='resolve'
+fi
dropsave() {
rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \
;;
1,"$head",*)
# Again the most common case of merging one remote.
- echo "Updating from $head to $1."
+ echo "Updating from $head to $1"
git-update-index --refresh 2>/dev/null
new_head=$(git-rev-parse --verify "$1^0") &&
- git-read-tree -u -m $head "$new_head" &&
+ git-read-tree -u -v -m $head "$new_head" &&
finish "$new_head" "Fast forward"
dropsave
exit 0
1,*,)
# We are not doing octopus, not fast forward, and have only
# one common. See if it is really trivial.
+ git var GIT_COMMITTER_IDENT >/dev/null || exit
+
echo "Trying really trivial in-index merge..."
git-update-index --refresh 2>/dev/null
- if git-read-tree --trivial -m -u $common $head "$1" &&
+ if git-read-tree --trivial -m -u -v $common $head "$1" &&
result_tree=$(git-write-tree)
then
echo "Wonderful."
;;
esac
+# We are going to make a new commit.
+git var GIT_COMMITTER_IDENT >/dev/null || exit
+
case "$use_strategies" in
'')
case "$#" in
do
echo $remote
done >"$GIT_DIR/MERGE_HEAD"
-echo $merge_msg >"$GIT_DIR/MERGE_MSG"
+echo "$merge_msg" >"$GIT_DIR/MERGE_MSG"
if test "$merge_was_ok" = t
then
sed -e 's/^[^ ]* / /' |
uniq
} >>"$GIT_DIR/MERGE_MSG"
+ if test -d "$GIT_DIR/rr-cache"
+ then
+ git-rerere
+ fi
die "Automatic merge failed; fix up by hand"
fi