From: Junio C Hamano Date: Fri, 15 Apr 2016 01:57:49 +0000 (-0700) Subject: Merge branch 'jv/merge-nothing-into-void' into maint X-Git-Tag: v2.8.2~11 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/a5953f68186e72b3fe7b7dc0b2a7cb0f451cf3ef?ds=inline;hp=-c Merge branch 'jv/merge-nothing-into-void' into maint "git merge FETCH_HEAD" dereferenced NULL pointer when merging nothing into an unborn history (which is arguably unusual usage, which perhaps was the reason why nobody noticed it). * jv/merge-nothing-into-void: merge: fix NULL pointer dereference when merging nothing into void --- a5953f68186e72b3fe7b7dc0b2a7cb0f451cf3ef diff --combined t/t7600-merge.sh index dc9f142f53,9d7952f42c..85248a14b6 --- a/t/t7600-merge.sh +++ b/t/t7600-merge.sh @@@ -33,11 -33,9 +33,11 @@@ printf '%s\n' 1 2 3 4 5 6 7 8 9 >fil printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >file.1 printf '%s\n' 1 2 3 4 '5 X' 6 7 8 9 >file.5 printf '%s\n' 1 2 3 4 5 6 7 8 '9 X' >file.9 +printf '%s\n' 1 2 3 4 5 6 7 8 '9 Y' >file.9y printf '%s\n' '1 X' 2 3 4 5 6 7 8 9 >result.1 printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 9 >result.1-5 printf '%s\n' '1 X' 2 3 4 '5 X' 6 7 8 '9 X' >result.1-5-9 +printf '%s\n' 1 2 3 4 5 6 7 8 '9 Z' >result.9z >empty create_merge_msgs () { @@@ -130,12 -128,6 +130,12 @@@ test_expect_success 'setup' git tag c2 && c2=$(git rev-parse HEAD) && git reset --hard "$c0" && + cp file.9y file && + git add file && + test_tick && + git commit -m "commit 7" && + git tag c7 && + git reset --hard "$c0" && cp file.9 file && git add file && test_tick && @@@ -226,26 -218,6 +226,26 @@@ test_expect_success 'merge c1 with c2' verify_parents $c1 $c2 ' +test_expect_success 'merge --squash c3 with c7' ' + git reset --hard c3 && + test_must_fail git merge --squash c7 && + cat result.9z >file && + git commit --no-edit -a && + + { + cat <<-EOF + Squashed commit of the following: + + $(git show -s c7) + + # Conflicts: + # file + EOF + } >expect && + git cat-file commit HEAD | sed -e '1,/^$/d' >actual && + test_cmp expect actual +' + test_debug 'git log --graph --decorate --oneline --all' test_expect_success 'merge c1 with c2 and c3' ' @@@ -753,4 -725,14 +753,14 @@@ test_expect_success 'merge detects mod- test_must_fail git merge -s resolve master ' + test_expect_success 'merge nothing into void' ' + git init void && + ( + cd void && + git remote add up .. && + git fetch up && + test_must_fail git merge FETCH_HEAD + ) + ' + test_done