From: Junio C Hamano Date: Sun, 17 Jan 2010 23:59:40 +0000 (-0800) Subject: Merge branch 'jc/maint-1.6.1-checkout-m-custom-merge' X-Git-Tag: v1.7.0-rc0~91 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a0db3e5878fd5fa3f54bcf7042ad3d0cb30e07f2;p=git.git Merge branch 'jc/maint-1.6.1-checkout-m-custom-merge' * jc/maint-1.6.1-checkout-m-custom-merge: checkout -m path: fix recreating conflicts Conflicts: t/t7201-co.sh --- a0db3e5878fd5fa3f54bcf7042ad3d0cb30e07f2 diff --cc t/t7201-co.sh index ebfd34df3,3214ad29e..6442f710b --- a/t/t7201-co.sh +++ b/t/t7201-co.sh @@@ -534,12 -534,61 +534,69 @@@ test_expect_success 'failing checkout - ' +test_expect_success 'switch out of non-branch' ' + git reset --hard master && + git checkout master^0 && + echo modified >one && + test_must_fail git checkout renamer 2>error.log && + ! grep "^Previous HEAD" error.log +' + + ( + echo "#!$SHELL_PATH" + cat <<\EOF + O=$1 A=$2 B=$3 + cat "$A" >.tmp + exec >"$A" + echo '<<<<<<< filfre-theirs' + cat "$B" + echo '||||||| filfre-common' + cat "$O" + echo '=======' + cat ".tmp" + echo '>>>>>>> filfre-ours' + rm -f .tmp + exit 1 + EOF + ) >filfre.sh + chmod +x filfre.sh + + test_expect_success 'custom merge driver with checkout -m' ' + git reset --hard && + + git config merge.filfre.driver "./filfre.sh %O %A %B" && + git config merge.filfre.name "Feel-free merge driver" && + git config merge.filfre.recursive binary && + echo "arm merge=filfre" >.gitattributes && + + git checkout -b left && + echo neutral >arm && + git add arm .gitattributes && + test_tick && + git commit -m neutral && + git branch right && + + echo left >arm && + test_tick && + git commit -a -m left && + git checkout right && + + echo right >arm && + test_tick && + git commit -a -m right && + + test_must_fail git merge left && + ( + for t in filfre-common left right + do + grep $t arm || exit 1 + done + exit 0 + ) && + + mv arm expect && + git checkout -m arm && + test_cmp expect arm + ' + test_done