merge with /dev/null as base, instead of punting O==empty case
Instead of leaving the path unmerged in a case where each side adds different version of the same path, attempt to merge it with empty base and leave "our" version in the index file, just like we do for the case in conflicting merge. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
6fd72e39af
commit
f7d24bbefb
@ -40,7 +40,7 @@ case "${1:-.}${2:-.}${3:-.}" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Added in both (check for same permissions).
|
# Added in both, identically (check for same permissions).
|
||||||
#
|
#
|
||||||
".$3$2")
|
".$3$2")
|
||||||
if [ "$6" != "$7" ]; then
|
if [ "$6" != "$7" ]; then
|
||||||
@ -56,9 +56,18 @@ case "${1:-.}${2:-.}${3:-.}" in
|
|||||||
#
|
#
|
||||||
# Modified in both, but differently.
|
# Modified in both, but differently.
|
||||||
#
|
#
|
||||||
"$1$2$3")
|
"$1$2$3" | ".$2$3")
|
||||||
echo "Auto-merging $4."
|
case "$1" in
|
||||||
orig=`git-unpack-file $1`
|
'')
|
||||||
|
echo "Added $4 in both, but differently."
|
||||||
|
orig=`git-unpack-file $2`
|
||||||
|
: >$orig
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Auto-merging $4."
|
||||||
|
orig=`git-unpack-file $1`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
src2=`git-unpack-file $3`
|
src2=`git-unpack-file $3`
|
||||||
|
|
||||||
# We reset the index to the first branch, making
|
# We reset the index to the first branch, making
|
||||||
@ -73,6 +82,9 @@ case "${1:-.}${2:-.}${3:-.}" in
|
|||||||
echo "ERROR: Permissions conflict: $5->$6,$7."
|
echo "ERROR: Permissions conflict: $5->$6,$7."
|
||||||
ret=1
|
ret=1
|
||||||
fi
|
fi
|
||||||
|
if [ "$1" = '' ]; then
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $ret -ne 0 ]; then
|
if [ $ret -ne 0 ]; then
|
||||||
echo "ERROR: Merge conflict in $4."
|
echo "ERROR: Merge conflict in $4."
|
||||||
|
Loading…
Reference in New Issue
Block a user