mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
As a general principle, we should not use "git diff" to validate the results of what git command that is being tested has done. We would not know if we are testing the command in question, or locating a bug in the cute hack of "git diff --no-index". Rather use test_cmp for that purpose. Signed-off-by: Junio C Hamano <gitster@pobox.com>
212 lines
3.6 KiB
Bash
Executable file
212 lines
3.6 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2006, Junio C Hamano
|
|
#
|
|
|
|
test_description='fmt-merge-msg test'
|
|
|
|
. ./test-lib.sh
|
|
|
|
datestamp=1151939923
|
|
setdate () {
|
|
GIT_COMMITTER_DATE="$datestamp +0200"
|
|
GIT_AUTHOR_DATE="$datestamp +0200"
|
|
datestamp=`expr "$datestamp" + 1`
|
|
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
|
|
}
|
|
|
|
test_expect_success setup '
|
|
echo one >one &&
|
|
git add one &&
|
|
setdate &&
|
|
git commit -m "Initial" &&
|
|
|
|
echo uno >one &&
|
|
echo dos >two &&
|
|
git add two &&
|
|
setdate &&
|
|
git commit -a -m "Second" &&
|
|
|
|
git checkout -b left &&
|
|
|
|
echo $datestamp >one &&
|
|
setdate &&
|
|
git commit -a -m "Common #1" &&
|
|
|
|
echo $datestamp >one &&
|
|
setdate &&
|
|
git commit -a -m "Common #2" &&
|
|
|
|
git branch right &&
|
|
|
|
echo $datestamp >two &&
|
|
setdate &&
|
|
git commit -a -m "Left #3" &&
|
|
|
|
echo $datestamp >two &&
|
|
setdate &&
|
|
git commit -a -m "Left #4" &&
|
|
|
|
echo $datestamp >two &&
|
|
setdate &&
|
|
git commit -a -m "Left #5" &&
|
|
|
|
git checkout right &&
|
|
|
|
echo $datestamp >three &&
|
|
git add three &&
|
|
setdate &&
|
|
git commit -a -m "Right #3" &&
|
|
|
|
echo $datestamp >three &&
|
|
setdate &&
|
|
git commit -a -m "Right #4" &&
|
|
|
|
echo $datestamp >three &&
|
|
setdate &&
|
|
git commit -a -m "Right #5" &&
|
|
|
|
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 ../$test
|
|
EOF
|
|
|
|
test_expect_success 'merge-msg test #2' '
|
|
|
|
git checkout master &&
|
|
git fetch ../"$test" 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 &&
|
|
setdate &&
|
|
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 &&
|
|
setdate &&
|
|
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 &&
|
|
setdate &&
|
|
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 &&
|
|
setdate &&
|
|
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 &&
|
|
setdate &&
|
|
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 &&
|
|
setdate &&
|
|
git fetch . left right &&
|
|
|
|
git fmt-merge-msg <.git/FETCH_HEAD >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_done
|