| #!/bin/sh |
| # |
| # Copyright (c) 2006, Junio C Hamano |
| # |
| |
| test_description='fmt-merge-msg test' |
| |
| . ./test-lib.sh |
| |
| test_expect_success setup ' |
| echo one >one && |
| git add one && |
| test_tick && |
| git commit -m "Initial" && |
| |
| git clone . remote && |
| |
| echo uno >one && |
| echo dos >two && |
| git add two && |
| test_tick && |
| git commit -a -m "Second" && |
| |
| git checkout -b left && |
| |
| echo "c1" >one && |
| test_tick && |
| git commit -a -m "Common #1" && |
| |
| echo "c2" >one && |
| test_tick && |
| git commit -a -m "Common #2" && |
| |
| git branch right && |
| |
| echo "l3" >two && |
| test_tick && |
| git commit -a -m "Left #3" && |
| |
| echo "l4" >two && |
| test_tick && |
| git commit -a -m "Left #4" && |
| |
| echo "l5" >two && |
| test_tick && |
| git commit -a -m "Left #5" && |
| git tag tag-l5 && |
| |
| git checkout right && |
| |
| echo "r3" >three && |
| git add three && |
| test_tick && |
| git commit -a -m "Right #3" && |
| git tag tag-r3 && |
| |
| echo "r4" >three && |
| test_tick && |
| git commit -a -m "Right #4" && |
| |
| echo "r5" >three && |
| test_tick && |
| git commit -a -m "Right #5" && |
| |
| git checkout -b long && |
| i=0 && |
| while test $i -lt 30 |
| do |
| test_commit $i one && |
| i=$(($i+1)) |
| done && |
| |
| git show-branch |
| ' |
| |
| cat >expected <<\EOF |
| Merge branch 'left' |
| EOF |
| |
| test_expect_success 'merge-msg test #1' ' |
| |
| git checkout master && |
| git fetch . left && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<EOF |
| Merge branch 'left' of $(pwd) |
| EOF |
| |
| test_expect_success 'merge-msg test #2' ' |
| |
| git checkout master && |
| git fetch "$(pwd)" left && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge branch 'left' |
| |
| * left: |
| Left #5 |
| Left #4 |
| Left #3 |
| Common #2 |
| Common #1 |
| EOF |
| |
| test_expect_success 'merge-msg test #3-1' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.log true && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg test #3-2' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary true && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge branches 'left' and 'right' |
| |
| * left: |
| Left #5 |
| Left #4 |
| Left #3 |
| Common #2 |
| Common #1 |
| |
| * right: |
| Right #5 |
| Right #4 |
| Right #3 |
| Common #2 |
| Common #1 |
| EOF |
| |
| test_expect_success 'merge-msg test #4-1' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.log true && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg test #4-2' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary true && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg test #5-1' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.log yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg test #5-2' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg -F' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| |
| git fmt-merge-msg -F .git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg -F in subdirectory' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . left right && |
| mkdir sub && |
| cp .git/FETCH_HEAD sub/FETCH_HEAD && |
| ( |
| cd sub && |
| git fmt-merge-msg -F FETCH_HEAD >../actual |
| ) && |
| test_cmp expected actual |
| ' |
| |
| test_expect_success 'merge-msg with nothing to merge' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| ( |
| cd remote && |
| git checkout -b unrelated && |
| test_tick && |
| git fetch origin && |
| git fmt-merge-msg <.git/FETCH_HEAD >../actual |
| ) && |
| |
| test_cmp /dev/null actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge tag 'tag-r3' |
| |
| * tag 'tag-r3': |
| Right #3 |
| Common #2 |
| Common #1 |
| EOF |
| |
| test_expect_success 'merge-msg tag' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . tag tag-r3 && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge tags 'tag-r3' and 'tag-l5' |
| |
| * tag 'tag-r3': |
| Right #3 |
| Common #2 |
| Common #1 |
| |
| * tag 'tag-l5': |
| Left #5 |
| Left #4 |
| Left #3 |
| Common #2 |
| Common #1 |
| EOF |
| |
| test_expect_success 'merge-msg two tags' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . tag tag-r3 tag tag-l5 && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge branch 'left', tag 'tag-r3' |
| |
| * tag 'tag-r3': |
| Right #3 |
| Common #2 |
| Common #1 |
| |
| * left: |
| Left #5 |
| Left #4 |
| Left #3 |
| Common #2 |
| Common #1 |
| EOF |
| |
| test_expect_success 'merge-msg tag and branch' ' |
| |
| git config --unset-all merge.log |
| git config --unset-all merge.summary |
| git config merge.summary yes && |
| |
| git checkout master && |
| test_tick && |
| git fetch . tag tag-r3 left && |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| cat >expected <<\EOF |
| Merge branch 'long' |
| |
| * long: (35 commits) |
| EOF |
| |
| test_expect_success 'merge-msg lots of commits' ' |
| |
| git checkout master && |
| test_tick && |
| git fetch . long && |
| |
| i=29 && |
| while test $i -gt 9 |
| do |
| echo " $i" && |
| i=$(($i-1)) |
| done >>expected && |
| echo " ..." >>expected |
| |
| git fmt-merge-msg <.git/FETCH_HEAD >actual && |
| test_cmp expected actual |
| ' |
| |
| test_done |