Merge branch 'jk/filter-branch-use-of-sed-on-incomplete-line' into maint

A recent "filter-branch --msg-filter" broke skipping of the commit
object header, which is fixed.

* jk/filter-branch-use-of-sed-on-incomplete-line:
  filter-branch: remove multi-line headers in msg filter
This commit is contained in:
Junio C Hamano 2015-10-20 15:22:39 -07:00
commit 44a9b53c59
2 changed files with 15 additions and 1 deletions

View File

@ -347,7 +347,7 @@ while read commit parents; do
fi fi
{ {
while read -r header_line && test -n "$header_line" while IFS='' read -r header_line && test -n "$header_line"
do do
# skip header lines... # skip header lines...
:; :;

View File

@ -2,6 +2,7 @@
test_description='git filter-branch' test_description='git filter-branch'
. ./test-lib.sh . ./test-lib.sh
. "$TEST_DIRECTORY/lib-gpg.sh"
test_expect_success 'setup' ' test_expect_success 'setup' '
test_commit A && test_commit A &&
@ -292,6 +293,19 @@ test_expect_success 'Tag name filtering strips gpg signature' '
test_cmp expect actual test_cmp expect actual
' '
test_expect_success GPG 'Filtering retains message of gpg signed commit' '
mkdir gpg &&
touch gpg/foo &&
git add gpg &&
test_tick &&
git commit -S -m "Adding gpg" &&
git log -1 --format="%s" > expect &&
git filter-branch -f --msg-filter "cat" &&
git log -1 --format="%s" > actual &&
test_cmp expect actual
'
test_expect_success 'Tag name filtering allows slashes in tag names' ' test_expect_success 'Tag name filtering allows slashes in tag names' '
git tag -m tag-with-slash X/1 && git tag -m tag-with-slash X/1 &&
git cat-file tag X/1 | sed -e s,X/1,X/2, > expect && git cat-file tag X/1 | sed -e s,X/1,X/2, > expect &&