projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Link git-name-rev and git-symbolic-ref from the main git page
[git.git]
/
git-merge.sh
diff --git
a/git-merge.sh
b/git-merge.sh
index
d12a2a9
..
3457a96
100755
(executable)
--- a/
git-merge.sh
+++ b/
git-merge.sh
@@
-26,7
+26,7
@@
dropsave() {
savestate() {
# Stash away any local modifications.
git-diff-index -r -z --name-only $head |
savestate() {
# Stash away any local modifications.
git-diff-index -r -z --name-only $head |
- cpio -0 -o >"$GI
R
_DIR/MERGE_SAVE"
+ cpio -0 -o >"$GI
T
_DIR/MERGE_SAVE"
}
restorestate() {
}
restorestate() {
@@
-38,10
+38,20
@@
restorestate() {
fi
}
fi
}
-summary() {
+finish () {
+ test '' = "$2" || echo "$2"
+ case "$merge_msg" in
+ '')
+ echo "No merge message -- not updating HEAD"
+ ;;
+ *)
+ git-update-ref HEAD "$1" "$head" || exit 1
+ ;;
+ esac
+
case "$no_summary" in
'')
case "$no_summary" in
'')
- git-diff-tree -p -M
$head
"$1" |
+ git-diff-tree -p -M
"$head"
"$1" |
git-apply --stat --summary
;;
esac
git-apply --stat --summary
;;
esac
@@
-103,12
+113,12
@@
echo "$head" >"$GIT_DIR/ORIG_HEAD"
case "$#,$common" in
*,'')
case "$#,$common" in
*,'')
- die "Unable to find common commit between $head_arg and $*"
+ # No common ancestors found. We need a real merge.
;;
1,"$1")
# If head can reach all the merge then we are up to date.
# but first the most common case of merging one remote
;;
1,"$1")
# If head can reach all the merge then we are up to date.
# but first the most common case of merging one remote
- echo "Already up-to-date.
Yeeah!
"
+ echo "Already up-to-date."
dropsave
exit 0
;;
dropsave
exit 0
;;
@@
-116,10
+126,9
@@
case "$#,$common" in
# Again the most common case of merging one remote.
echo "Updating from $head to $1."
git-update-index --refresh 2>/dev/null
# Again the most common case of merging one remote.
echo "Updating from $head to $1."
git-update-index --refresh 2>/dev/null
- git-read-tree -u -m $head "$1" &&
new_head=$(git-rev-parse --verify "$1^0") &&
new_head=$(git-rev-parse --verify "$1^0") &&
- git-
update-ref HEAD "$new_head" "$head" || exit 1
-
summary "$1
"
+ git-
read-tree -u -m $head "$new_head" &&
+
finish "$new_head" "Fast forward
"
dropsave
exit 0
;;
dropsave
exit 0
;;
@@
-140,8
+149,7
@@
case "$#,$common" in
echo "$merge_msg" |
git-commit-tree $result_tree -p HEAD -p "$1"
) || exit
echo "$merge_msg" |
git-commit-tree $result_tree -p HEAD -p "$1"
) || exit
- git-update-ref HEAD $result_commit $head
- summary $result_commit
+ finish "$result_commit" "In-index merge"
dropsave
exit 0
fi
dropsave
exit 0
fi
@@
-237,9
+245,7
@@
then
parents="$parents -p $remote"
done
result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree $parents) || exit
parents="$parents -p $remote"
done
result_commit=$(echo "$merge_msg" | git-commit-tree $result_tree $parents) || exit
- echo "Committed merge $result_commit, made by $wt_strategy."
- git-update-ref HEAD $result_commit $head
- summary $result_commit
+ finish "$result_commit" "Merge $result_commit, made by $wt_strategy."
dropsave
exit 0
fi
dropsave
exit 0
fi