Use merge-recursive in git-am -3.
By switching from merge-resolve to merge-recursive in the 3-way fallback behavior of git-am we gain a few benefits: * renames are automatically handled, like in rebase -m; * conflict hunks can reference the patch name; * its faster on Cygwin (less forks). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>maint
parent
a970e84e8a
commit
579c9bb198
|
@ -88,10 +88,12 @@ It does not apply to blobs recorded in its index."
|
||||||
# This is not so wrong. Depending on which base we picked,
|
# This is not so wrong. Depending on which base we picked,
|
||||||
# orig_tree may be wildly different from ours, but his_tree
|
# orig_tree may be wildly different from ours, but his_tree
|
||||||
# has the same set of wildly different changes in parts the
|
# has the same set of wildly different changes in parts the
|
||||||
# patch did not touch, so resolve ends up canceling them,
|
# patch did not touch, so recursive ends up canceling them,
|
||||||
# saying that we reverted all those changes.
|
# saying that we reverted all those changes.
|
||||||
|
|
||||||
git-merge-resolve $orig_tree -- HEAD $his_tree || {
|
eval GITHEAD_$his_tree='"$SUBJECT"'
|
||||||
|
export GITHEAD_$his_tree
|
||||||
|
git-merge-recursive $orig_tree -- HEAD $his_tree || {
|
||||||
if test -d "$GIT_DIR/rr-cache"
|
if test -d "$GIT_DIR/rr-cache"
|
||||||
then
|
then
|
||||||
git-rerere
|
git-rerere
|
||||||
|
@ -99,6 +101,7 @@ It does not apply to blobs recorded in its index."
|
||||||
echo Failed to merge in the changes.
|
echo Failed to merge in the changes.
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
unset GITHEAD_$his_tree
|
||||||
}
|
}
|
||||||
|
|
||||||
prec=4
|
prec=4
|
||||||
|
|
Loading…
Reference in New Issue