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
This commit is contained in:
commit
a0db3e5878
@ -167,7 +167,7 @@ static int checkout_merged(int pos, struct checkout *state)
|
|||||||
fill_mm(active_cache[pos+2]->sha1, &theirs);
|
fill_mm(active_cache[pos+2]->sha1, &theirs);
|
||||||
|
|
||||||
status = ll_merge(&result_buf, path, &ancestor,
|
status = ll_merge(&result_buf, path, &ancestor,
|
||||||
&ours, "ours", &theirs, "theirs", 1);
|
&ours, "ours", &theirs, "theirs", 0);
|
||||||
free(ancestor.ptr);
|
free(ancestor.ptr);
|
||||||
free(ours.ptr);
|
free(ours.ptr);
|
||||||
free(theirs.ptr);
|
free(theirs.ptr);
|
||||||
|
@ -542,4 +542,61 @@ test_expect_success 'switch out of non-branch' '
|
|||||||
! grep "^Previous HEAD" 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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user