[PATCH v4 0/2] am: support --empty-commit=(die|skip|asis) option to am empty commits
- From
Aleen via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Nov 16, 2021, 05:18 UTC
- Message-ID
- <pull.1076.v4.git.1637039888.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1076.v3.git.1636972769.gitgitgadget@gmail.com>
Since that git has supported the --always option for the git-format-patch command to create a patch with an empty commit message, git-am should support applying and committing with empty patches.
----------------------------------------------------------------------------
Changes since v1:
1. add a case when not passing the --always option 2. rename the --always option to --allow-empty
----------------------------------------------------------------------------
Changes since v2:
1. rename the --allow-empty option to --empty-commit
2. introduce three different strategies (die|skip|asis) when trying to
record empty patches as empty commits.----------------------------------------------------------------------------
Changes since v3:
1. generate the missed file for test cases 2. grep -f cannot be used under Mac OS
----------------------------------------------------------------------------
Aleen (2): doc: git-format-patch: describe the option --always am: support --empty-commit option to handle empty patches
Documentation/git-am.txt | 9 ++++ Documentation/git-format-patch.txt | 6 ++- builtin/am.c | 48 ++++++++++++++++++-- t/t4150-am.sh | 73 ++++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 6 deletions(-)
base-commit: b550198c73edd4cc058832dcf74b41aeec2adba2 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1076%2Faleen42%2Fnext-v4 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1076/aleen42/next-v4 Pull-Request: https://github.com/gitgitgadget/git/pull/1076
Range-diff vs v3:
1: 9f1b3dd6d0b = 1: 9f1b3dd6d0b doc: git-format-patch: describe the option --always
2: ef33ce8c6f9 ! 2: b7e30c9b7ab am: support --empty-commit option to handle empty patches
@@ t/t4150-am.sh: test_expect_success setup '
+ git commit -m "empty commit" --allow-empty &&
+
+ git format-patch --stdout empty-commit^ >empty.patch &&
++ git format-patch --stdout --cover-letter empty-commit^ >cover-letter.patch &&
+ git format-patch --always --stdout empty-commit^ >empty-commit.patch &&
+
# reset time
@@ t/t4150-am.sh: test_expect_success 'apply binary blob in partial clone' '
+
+ git am --empty-commit=skip cover-letter.patch >err &&
+ test_path_is_missing .git/rebase-apply &&
-+ git rev-parse empty-commit^ >expected &&
-+ git rev-parse HEAD >actual &&
-+ test_cmp expected actual
++ test_cmp_rev empty-commit^ HEAD
+'
+
+test_expect_success 'record as an empty commit when meeting e-mail message that lacks a patch' '
+ git am --empty-commit=asis empty-commit.patch &&
+ test_path_is_missing .git/rebase-apply &&
-+ git show empty-commit --format="%B" >expected &&
++ {
++ git show empty-commit --format="%B" &&
++ echo "--" &&
++ git version | sed -e "s/^git version //" &&
++ echo
++ } >expected &&
+ git show HEAD --format="%B" >actual &&
-+ grep -f actual expected &&
++ test_cmp actual expected &&
+
+ git am --empty-commit=asis cover-letter.patch &&
+ test_path_is_missing .git/rebase-apply &&
-+ git show empty-commit --format="%B" >expected &&
++ {
++ echo "*** SUBJECT HERE ***" &&
++ echo &&
++ echo "*** BLURB HERE ***" &&
++ echo &&
++ echo "A U Thor (1):" &&
++ printf " " &&
++ git show empty-commit --format="%B" &&
++ echo "--" &&
++ git version | sed -e "s/^git version //" &&
++ echo
++ } >expected &&
+ git show HEAD --format="%B" >actual &&
-+ grep -f actual expected
++ test_cmp actual expected
+'
+
test_done-- gitgitgadget