From: Junio C Hamano Date: Tue, 8 Nov 2005 06:03:46 +0000 (-0800) Subject: merge with /dev/null as base, instead of punting O==empty case X-Git-Tag: v0.99.9h^2~14 X-Git-Url: https://git.octo.it/?p=git.git;a=commitdiff_plain;h=f7d24bbefb06c40f7738f471dda561ab45496d24 Merge ... /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 --- diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh index 5419e598..32e17cbc 100755 --- a/git-merge-one-file.sh +++ b/git-merge-one-file.sh @@ -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") if [ "$6" != "$7" ]; then @@ -56,9 +56,18 @@ case "${1:-.}${2:-.}${3:-.}" in # # Modified in both, but differently. # -"$1$2$3") - echo "Auto-merging $4." - orig=`git-unpack-file $1` +"$1$2$3" | ".$2$3") + case "$1" in + '') + 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` # 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." ret=1 fi + if [ "$1" = '' ]; then + ret=1 + fi if [ $ret -ne 0 ]; then echo "ERROR: Merge conflict in $4."