author | Junio C Hamano <gitster@pobox.com> | |
Sun, 17 Jan 2010 23:59:40 +0000 (15:59 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Sun, 17 Jan 2010 23:59:40 +0000 (15:59 -0800) |
* jc/maint-1.6.1-checkout-m-custom-merge:
checkout -m path: fix recreating conflicts
Conflicts:
t/t7201-co.sh
checkout -m path: fix recreating conflicts
Conflicts:
t/t7201-co.sh
1 | 2 | |||
---|---|---|---|---|
builtin-checkout.c | patch | | diff1 | | diff2 | | blob | history |
t/t7201-co.sh | patch | | diff1 | | diff2 | | blob | history |
diff --cc builtin-checkout.c
Simple merge
diff --cc t/t7201-co.sh
index ebfd34df36068f8808406a98d371731fb85012c4,3214ad29e146e252618f84b1845b77968ddb9f14..6442f710be8bcaea11931044d52deb5b75d8f7e0
--- 1/t/t7201-co.sh
--- 2/t/t7201-co.sh
+++ b/t/t7201-co.sh
'
+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