| #!/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 $(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 && | 
 | 	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_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 && | 
 | 	setdate && | 
 | 	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 && | 
 | 	setdate && | 
 | 	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_done |