|
|
|
@ -83,6 +83,52 @@ test_expect_success '--amend option copies authorship' '
@@ -83,6 +83,52 @@ test_expect_success '--amend option copies authorship' '
|
|
|
|
|
test_cmp expect actual |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
sha1_file() { |
|
|
|
|
echo "$*" | sed "s#..#.git/objects/&/#" |
|
|
|
|
} |
|
|
|
|
remove_object() { |
|
|
|
|
rm -f $(sha1_file "$*") |
|
|
|
|
} |
|
|
|
|
no_reflog() { |
|
|
|
|
cp .git/config .git/config.saved && |
|
|
|
|
echo "[core] logallrefupdates = false" >>.git/config && |
|
|
|
|
test_when_finished "mv -f .git/config.saved .git/config" && |
|
|
|
|
|
|
|
|
|
if test -e .git/logs |
|
|
|
|
then |
|
|
|
|
mv .git/logs . && |
|
|
|
|
test_when_finished "mv logs .git/" |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
test_expect_success '--amend option with empty author' ' |
|
|
|
|
git cat-file commit Initial >tmp && |
|
|
|
|
sed "s/author [^<]* </author </" tmp >empty-author && |
|
|
|
|
no_reflog && |
|
|
|
|
sha=$(git hash-object -t commit -w empty-author) && |
|
|
|
|
test_when_finished "remove_object $sha" && |
|
|
|
|
git checkout $sha && |
|
|
|
|
test_when_finished "git checkout Initial" && |
|
|
|
|
echo "Empty author test" >>foo && |
|
|
|
|
test_tick && |
|
|
|
|
! git commit -a -m "empty author" --amend 2>err && |
|
|
|
|
grep "empty ident" err |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success '--amend option with missing author' ' |
|
|
|
|
git cat-file commit Initial >tmp && |
|
|
|
|
sed "s/author [^<]* </author </" tmp >malformed && |
|
|
|
|
no_reflog && |
|
|
|
|
sha=$(git hash-object -t commit -w malformed) && |
|
|
|
|
test_when_finished "remove_object $sha" && |
|
|
|
|
git checkout $sha && |
|
|
|
|
test_when_finished "git checkout Initial" && |
|
|
|
|
echo "Missing author test" >>foo && |
|
|
|
|
test_tick && |
|
|
|
|
! git commit -a -m "malformed author" --amend 2>err && |
|
|
|
|
grep "empty ident" err |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success '--reset-author makes the commit ours even with --amend option' ' |
|
|
|
|
git checkout Initial && |
|
|
|
|
echo "Test 6" >>foo && |
|
|
|
|