git-commit-vandalism/t/t4014-format-patch.sh
Junio C Hamano 982b64e4cc t4014: fix test commit labels.
The commit tag and commit comments used in the test claimed that
the  commit was merged upstream where the test actually let the
upstream merge  commit.  Fix them.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-28 22:48:34 -07:00

70 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2006 Junio C Hamano
#
test_description='Format-patch skipping already incorporated patches'
. ./test-lib.sh
test_expect_success setup '
for i in 1 2 3 4 5 6 7 8 9 10; do echo "$i"; done >file &&
git add file &&
git commit -m Initial &&
git checkout -b side &&
for i in 1 2 5 6 A B C 7 8 9 10; do echo "$i"; done >file &&
git update-index file &&
git commit -m "Side change #1" &&
for i in D E F; do echo "$i"; done >>file &&
git update-index file &&
git commit -m "Side change #2" &&
git tag C2 &&
for i in 5 6 1 2 3 A 4 B C 7 8 9 10 D E F; do echo "$i"; done >file &&
git update-index file &&
git commit -m "Side change #3" &&
git checkout master &&
git diff-tree -p C2 | git apply --index &&
git commit -m "Master accepts moral equivalent of #2"
'
test_expect_success "format-patch --ignore-if-in-upstream" '
git format-patch --stdout master..side >patch0 &&
cnt=`grep "^From " patch0 | wc -l` &&
test $cnt = 3
'
test_expect_success "format-patch --ignore-if-in-upstream" '
git format-patch --stdout \
--ignore-if-in-upstream master..side >patch1 &&
cnt=`grep "^From " patch1 | wc -l` &&
test $cnt = 2
'
test_expect_success "format-patch result applies" '
git checkout -b rebuild-0 master &&
git am -3 patch0 &&
cnt=`git rev-list master.. | wc -l` &&
test $cnt = 2
'
test_expect_success "format-patch --ignore-if-in-upstream result applies" '
git checkout -b rebuild-1 master &&
git am -3 patch1 &&
cnt=`git rev-list master.. | wc -l` &&
test $cnt = 2
'
test_done