X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-merge-one-file-script;h=b2adc5fc4583e6089f4b38a47e1a73caad183f20;hb=90ffd0952f61717d93858b154d2505d0ba051b14;hp=df1a679c9b0a19637be932e242591b9b4796fa75;hpb=e3b4be7f6c31d85b5f6abc42bd24d61bce5027b4;p=git.git diff --git a/git-merge-one-file-script b/git-merge-one-file-script index df1a679c..b2adc5fc 100755 --- a/git-merge-one-file-script +++ b/git-merge-one-file-script @@ -13,6 +13,11 @@ # do any merges that migth change the tree layout # +# if the directory is newly added in a branch, it might not exist +# in the current tree +dir=$(dirname "$4") +mkdir -p "$dir" + case "${1:-.}${2:-.}${3:-.}" in # # deleted in both, or deleted in one and unchanged in the other @@ -40,7 +45,11 @@ case "${1:-.}${2:-.}${3:-.}" in orig=$(unpack-file $1) src1=$(unpack-file $2) src2=$(unpack-file $3) - merge "$src2" "$orig" "$src1" || echo Leaving conflict merge in $src2 && exit 1 + merge "$src2" "$orig" "$src1" + if [ $? -ne 0 ]; then + echo Leaving conflict merge in $src2 + exit 1 + fi cp "$src2" "$4" && update-cache --add -- "$4" && exit 0 ;;