-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
"git am -s" has been taught that some input may end with a trailer block that is not Signed-off-by: and it should refrain from adding an extra blank line before adding a new sign-off in such a case. * pw/am-signoff: am: fix signoff when other trailers are present
- Loading branch information
Showing
2 changed files
with
64 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,6 +40,8 @@ test_expect_success 'setup: messages' ' | |
dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio | ||
dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te | ||
feugait nulla facilisi. | ||
Reported-by: A N Other <[email protected]> | ||
EOF | ||
cat >failmail <<-\EOF && | ||
|
@@ -93,7 +95,7 @@ test_expect_success setup ' | |
echo world >>file && | ||
git add file && | ||
test_tick && | ||
git commit -s -F msg && | ||
git commit -F msg && | ||
git tag second && | ||
git format-patch --stdout first >patch1 && | ||
|
@@ -124,8 +126,6 @@ test_expect_success setup ' | |
echo "Date: $GIT_AUTHOR_DATE" && | ||
echo && | ||
sed -e "1,2d" msg && | ||
echo && | ||
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" && | ||
echo "---" && | ||
git diff-tree --no-commit-id --stat -p second | ||
} >patch1-stgit.eml && | ||
|
@@ -144,8 +144,6 @@ test_expect_success setup ' | |
echo "# Parent $_z40" && | ||
cat msg && | ||
echo && | ||
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" && | ||
echo && | ||
git diff-tree --no-commit-id -p second | ||
} >patch1-hg.eml && | ||
|
@@ -470,13 +468,15 @@ test_expect_success 'am --signoff adds Signed-off-by: line' ' | |
git reset --hard && | ||
git checkout -b master2 first && | ||
git am --signoff <patch2 && | ||
printf "%s\n" "$signoff" >expected && | ||
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" >>expected && | ||
git cat-file commit HEAD^ | grep "Signed-off-by:" >actual && | ||
test_cmp expected actual && | ||
echo "Signed-off-by: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" >expected && | ||
git cat-file commit HEAD | grep "Signed-off-by:" >actual && | ||
test_cmp expected actual | ||
{ | ||
printf "third\n\nSigned-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" && | ||
cat msg && | ||
printf "Signed-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" | ||
} >expected-log && | ||
git log --pretty=%B -2 HEAD >actual && | ||
test_cmp expected-log actual | ||
' | ||
|
||
test_expect_success 'am stays in branch' ' | ||
|
@@ -486,17 +486,60 @@ test_expect_success 'am stays in branch' ' | |
' | ||
|
||
test_expect_success 'am --signoff does not add Signed-off-by: line if already there' ' | ||
git format-patch --stdout HEAD^ >patch3 && | ||
sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2] [foo," patch3 >patch4 && | ||
rm -fr .git/rebase-apply && | ||
git reset --hard && | ||
git checkout HEAD^ && | ||
git am --signoff patch4 && | ||
git cat-file commit HEAD >actual && | ||
test $(grep -c "^Signed-off-by:" actual) -eq 1 | ||
git format-patch --stdout first >patch3 && | ||
git reset --hard first && | ||
git am --signoff <patch3 && | ||
git log --pretty=%B -2 HEAD >actual && | ||
test_cmp expected-log actual | ||
' | ||
|
||
test_expect_success 'am --signoff adds Signed-off-by: if another author is preset' ' | ||
NAME="A N Other" && | ||
EMAIL="[email protected]" && | ||
{ | ||
printf "third\n\nSigned-off-by: %s <%s>\nSigned-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" \ | ||
"$NAME" "$EMAIL" && | ||
cat msg && | ||
printf "Signed-off-by: %s <%s>\nSigned-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" \ | ||
"$NAME" "$EMAIL" | ||
} >expected-log && | ||
git reset --hard first && | ||
GIT_COMMITTER_NAME="$NAME" GIT_COMMITTER_EMAIL="$EMAIL" \ | ||
git am --signoff <patch3 && | ||
git log --pretty=%B -2 HEAD >actual && | ||
test_cmp expected-log actual | ||
' | ||
|
||
test_expect_success 'am --signoff duplicates Signed-off-by: if it is not the last one' ' | ||
NAME="A N Other" && | ||
EMAIL="[email protected]" && | ||
{ | ||
printf "third\n\nSigned-off-by: %s <%s>\n\ | ||
Signed-off-by: %s <%s>\nSigned-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" \ | ||
"$NAME" "$EMAIL" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" && | ||
cat msg && | ||
printf "Signed-off-by: %s <%s>\nSigned-off-by: %s <%s>\n\ | ||
Signed-off-by: %s <%s>\n\n" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" \ | ||
"$NAME" "$EMAIL" \ | ||
"$GIT_COMMITTER_NAME" "$GIT_COMMITTER_EMAIL" | ||
} >expected-log && | ||
git format-patch --stdout first >patch3 && | ||
git reset --hard first && | ||
git am --signoff <patch3 && | ||
git log --pretty=%B -2 HEAD >actual && | ||
test_cmp expected-log actual | ||
' | ||
|
||
test_expect_success 'am without --keep removes Re: and [PATCH] stuff' ' | ||
git format-patch --stdout HEAD^ >tmp && | ||
sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2] [foo," tmp >patch4 && | ||
git reset --hard HEAD^ && | ||
git am <patch4 && | ||
git rev-parse HEAD >expected && | ||
git rev-parse master2 >actual && | ||
test_cmp expected actual | ||
|