From: "Aleen via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "René Scharfe" <l.s.r@web.de>, "Aleen 徐沛文" <pwxu@coremail.cn>,
"René Scharfe" <l.s.r@web.de>, Aleen <aleen42@vip.qq.com>
Subject: [PATCH v3 0/2] am: support --empty-commit=(die|skip|asis) option to am empty commits
Date: Mon, 15 Nov 2021 10:39:27 +0000 [thread overview]
Message-ID: <pull.1076.v3.git.1636972769.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1076.v2.git.1636700040.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.
----------------------------------------------------------------------------
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 | 58 ++++++++++++++++++++++++++++++
4 files changed, 115 insertions(+), 6 deletions(-)
base-commit: b550198c73edd4cc058832dcf74b41aeec2adba2
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1076%2Faleen42%2Fnext-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1076/aleen42/next-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/1076
Range-diff vs v2:
1: 71e6989375c ! 1: 9f1b3dd6d0b doc: git-format-patch: specify the option --always
@@ Metadata
Author: Aleen <aleen42@vip.qq.com>
## Commit message ##
- doc: git-format-patch: specify the option --always
+ doc: git-format-patch: describe the option --always
Signed-off-by: Aleen <aleen42@vip.qq.com>
## Documentation/git-format-patch.txt ##
@@ Documentation/git-format-patch.txt: SYNOPSIS
- [--range-diff=<previous> [--creation-factor=<percent>]]
- [--filename-max-length=<n>]
- [--progress]
-+ [--always]
- [<common diff options>]
- [ <since> | <revision range> ]
-
-@@ Documentation/git-format-patch.txt: you can use `--suffix=-patch` to get `0001-description-of-my-change-patch`.
- --progress::
- Show progress reports on stderr as patches are generated.
+ [-n | --numbered | -N | --no-numbered]
+ [--start-number <n>] [--numbered-files]
+ [--in-reply-to=<message id>] [--suffix=.<sfx>]
+- [--ignore-if-in-upstream]
++ [--ignore-if-in-upstream] [--always]
+ [--cover-from-description=<mode>]
+ [--rfc] [--subject-prefix=<subject prefix>]
+ [(--reroll-count|-v) <n>]
+@@ Documentation/git-format-patch.txt: will want to ensure that threading is disabled for `git send-email`.
+ patches being generated, and any patch that matches is
+ ignored.
+--always::
-+ Patch commits with detailed commit messages,
-+ even if they emit no changes. (see linkgit:git-diff-tree[1])
++ Include patches for commits that do not introduce any change,
++ which are omitted by default.
+
- CONFIGURATION
- -------------
- You can specify extra mail header lines to be added to each message,
+ --cover-from-description=<mode>::
+ Controls which parts of the cover letter will be automatically
+ populated using the branch's description.
2: 59b1417da37 ! 2: ef33ce8c6f9 am: support --always option to am empty commits
@@ Metadata
Author: Aleen <aleen42@vip.qq.com>
## Commit message ##
- am: support --always option to am empty commits
+ am: support --empty-commit option to handle empty patches
Signed-off-by: Aleen <aleen42@vip.qq.com>
@@ Documentation/git-am.txt: SYNOPSIS
[--exclude=<path>] [--include=<path>] [--reject] [-q | --quiet]
[--[no-]scissors] [-S[<keyid>]] [--patch-format=<format>]
[--quoted-cr=<action>]
-+ [--always]
++ [--empty-commit=(die|skip|asis)]
[(<mbox> | <Maildir>)...]
'git am' (--continue | --skip | --abort | --quit | --show-current-patch[=(diff|raw)])
-@@ Documentation/git-am.txt: default. You can use `--no-utf8` to override this.
- countermand both `commit.gpgSign` configuration variable, and
- earlier `--gpg-sign`.
+@@ Documentation/git-am.txt: OPTIONS
+ --quoted-cr=<action>::
+ This flag will be passed down to 'git mailinfo' (see linkgit:git-mailinfo[1]).
-+--always::
-+ Apply patches of commits with detailed commit messages,
-+ even if they emit no changes. (see linkgit:git-format-patch[1])
++--empty-commit=(die|skip|asis)::
++ The command usually errors out when seeing an input e-mail
++ message that lacks a patch. When this option is set to
++ 'skip', skip such an e-mail message without outputting error.
++ When this option is set to 'asis', create an empty commit,
++ recording the contents of the e-mail message as its log.
++ 'die' is specified by default.
+
- --continue::
- -r::
- --resolved::
+ -m::
+ --message-id::
+ Pass the `-m` flag to 'git mailinfo' (see linkgit:git-mailinfo[1]),
## builtin/am.c ##
-@@ builtin/am.c: struct am_state {
- int ignore_date;
- int allow_rerere_autoupdate;
- const char *sign_commit;
-+ int always;
-+ int empty_commit;
- int rebasing;
+@@ builtin/am.c: enum show_patch_type {
+ SHOW_PATCH_DIFF = 1,
};
++enum empty_commit_action {
++ DIE_EMPTY_COMMIT = 0, /* output errors */
++ SKIP_EMPTY_COMMIT, /* skip without outputting errors */
++ ASIS_EMPTY_COMMIT /* keep recording as empty commits */
++};
++
+ struct am_state {
+ /* state directory path */
+ char *dir;
+@@ builtin/am.c: struct am_state {
+ int message_id;
+ int scissors; /* enum scissors_type */
+ int quoted_cr; /* enum quoted_cr_action */
++ int empty_commit; /* enum empty_commit_action */
+ struct strvec git_apply_opts;
+ const char *resolvemsg;
+ int committer_date_is_author_date;
+@@ builtin/am.c: static int am_option_parse_quoted_cr(const struct option *opt,
+ return 0;
+ }
+
++static int am_option_parse_empty_commit(const struct option *opt,
++ const char *arg, int unset)
++{
++ int *opt_value = opt->value;
++
++ if (unset || !strcmp(arg, "die"))
++ *opt_value = DIE_EMPTY_COMMIT;
++ else if (!strcmp(arg, "skip"))
++ *opt_value = SKIP_EMPTY_COMMIT;
++ else if (!strcmp(arg, "asis"))
++ *opt_value = ASIS_EMPTY_COMMIT;
++ else
++ return error(_("Invalid value for --empty-commit: %s"), arg);
++
++ return 0;
++}
++
+ /**
+ * Returns path relative to the am_state directory.
+ */
@@ builtin/am.c: static int parse_mail(struct am_state *state, const char *mail)
+ goto finish;
}
- if (is_empty_or_missing_file(am_path(state, "patch"))) {
+- if (is_empty_or_missing_file(am_path(state, "patch"))) {
- printf_ln(_("Patch is empty."));
- die_user_resolve(state);
-+ if (state->always) {
-+ state->empty_commit = 1;
-+ } else {
-+ printf_ln(_("Patch is empty."));
-+ die_user_resolve(state);
-+ }
- }
-
+- }
+-
strbuf_addstr(&msg, "\n\n");
+ strbuf_addbuf(&msg, &mi.log_message);
+ strbuf_stripspace(&msg, 0);
@@ builtin/am.c: static void am_run(struct am_state *state, int resume)
if (state->interactive && do_interactive(state))
goto next;
-+ if (state->empty_commit)
-+ goto commit;
++ if (is_empty_or_missing_file(am_path(state, "patch"))) {
++ if (state->empty_commit == SKIP_EMPTY_COMMIT)
++ goto next;
++ else if (state->empty_commit == ASIS_EMPTY_COMMIT) {
++ if (run_applypatch_msg_hook(state))
++ exit(1);
++ else
++ goto commit;
++ } else if (state->empty_commit == DIE_EMPTY_COMMIT) {
++ printf_ln(_("Patch is empty."));
++ die_user_resolve(state);
++ }
++ }
+
if (run_applypatch_msg_hook(state))
exit(1);
@@ builtin/am.c: int cmd_am(int argc, const char **argv, const char *prefix)
{ OPTION_STRING, 'S', "gpg-sign", &state.sign_commit, N_("key-id"),
N_("GPG-sign commits"),
PARSE_OPT_OPTARG, NULL, (intptr_t) "" },
-+ OPT_BOOL(0, "always", &state.always,
-+ N_("always apply patch event if the patch is empty")),
-+ OPT_HIDDEN_BOOL(0, "empty-commit", &state.empty_commit,
-+ N_("(internal use for skipping git-apply to empty commits)")),
++ { OPTION_CALLBACK, 0, "empty-commit", &state.empty_commit,
++ "(die|skip|asis)",
++ N_("specify how to handle empty patches"),
++ PARSE_OPT_OPTARG, am_option_parse_empty_commit },
OPT_HIDDEN_BOOL(0, "rebasing", &state.rebasing,
N_("(internal use for git-rebase)")),
OPT_END()
@@ t/t4150-am.sh: test_expect_success 'apply binary blob in partial clone' '
git -C client am ../patch
'
-+test_expect_success 'am a real empty patch with the --always option' '
-+ rm -fr .git/rebase-apply &&
-+ git reset --hard &&
-+ test_must_fail git am --always empty.patch 2>actual &&
++test_expect_success 'still output error with --empty-commit when meeting empty files' '
++ test_must_fail git am --empty-commit=skip empty.patch 2>actual &&
+ echo Patch format detection failed. >expected &&
+ test_cmp expected actual
+'
+
-+test_expect_success 'am a patch with empty commits' '
-+ grep "empty commit" empty-commit.patch &&
-+ rm -fr .git/rebase-apply &&
-+ git reset --hard &&
++test_expect_success 'error when meeting e-mail message that lacks a patch by default' '
+ git checkout empty-commit^ &&
-+ git am --always empty-commit.patch &&
++ test_must_fail git am empty-commit.patch >err &&
++ test_path_is_dir .git/rebase-apply &&
++ test_i18ngrep "Patch is empty." err &&
++ rm -fr .git/rebase-apply &&
++
++ test_must_fail git am --empty-commit=die empty-commit.patch >err &&
++ test_path_is_dir .git/rebase-apply &&
++ test_i18ngrep "Patch is empty." err &&
++ rm -fr .git/rebase-apply &&
++
++ test_must_fail git am --empty-commit=die cover-letter.patch >err &&
++ test_path_is_dir .git/rebase-apply &&
++ test_i18ngrep "Patch is empty." err &&
++ rm -fr .git/rebase-apply
++'
++
++test_expect_success 'skip without error when meeting e-mail message that lacks a patch' '
++ git am --empty-commit=skip empty-commit.patch >err &&
++ test_path_is_missing .git/rebase-apply &&
++ git rev-parse empty-commit^ >expected &&
++ git rev-parse HEAD >actual &&
++ test_cmp expected actual &&
++
++ 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_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 HEAD --format="%B" >actual &&
++ grep -f actual expected &&
++
++ git am --empty-commit=asis cover-letter.patch &&
+ test_path_is_missing .git/rebase-apply &&
-+ git cat-file commit HEAD >actual &&
-+ test_i18ngrep "empty commit" actual
++ git show empty-commit --format="%B" >expected &&
++ git show HEAD --format="%B" >actual &&
++ grep -f actual expected
+'
+
test_done
3: da024ced668 < -: ----------- test: am: add the case when not passing the --always option
4: 45e9720f40b < -: ----------- chore: am: rename the --always option to --allow-empty
--
gitgitgadget
next prev parent reply other threads:[~2021-11-15 10:39 UTC|newest]
Thread overview: 129+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-12 4:58 [PATCH 0/2] am: support --always option to am empty commits Aleen via GitGitGadget
2021-11-12 4:58 ` [PATCH 1/2] doc: git-format-patch: specify the option --always Aleen via GitGitGadget
2021-11-12 4:58 ` [PATCH 2/2] am: support --always option to am empty commits Aleen via GitGitGadget
2021-11-12 6:17 ` [PATCH 0/2] " René Scharfe
2021-11-12 6:42 ` Aleen
2021-11-12 6:47 ` Junio C Hamano
2021-11-12 7:10 ` Aleen 徐沛文
2021-11-12 15:28 ` René Scharfe
2021-11-12 16:08 ` Junio C Hamano
2021-11-12 6:53 ` [PATCH v2 0/4] am: support --allow-empty " Aleen via GitGitGadget
2021-11-12 6:53 ` [PATCH v2 1/4] doc: git-format-patch: specify the option --always Aleen via GitGitGadget
2021-11-12 22:17 ` Junio C Hamano
2021-11-12 6:53 ` [PATCH v2 2/4] am: support --always option to am empty commits Aleen via GitGitGadget
2021-11-12 22:23 ` Junio C Hamano
2021-11-12 6:53 ` [PATCH v2 3/4] test: am: add the case when not passing the --always option Aleen via GitGitGadget
2021-11-12 6:54 ` [PATCH v2 4/4] chore: am: rename the --always option to --allow-empty Aleen via GitGitGadget
2021-11-15 10:39 ` Aleen via GitGitGadget [this message]
2021-11-15 10:39 ` [PATCH v3 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-15 10:39 ` [PATCH v3 2/2] am: support --empty-commit option to handle empty patches Aleen via GitGitGadget
2021-11-15 11:13 ` Aleen 徐沛文
2021-11-16 5:18 ` [PATCH v4 0/2] am: support --empty-commit=(die|skip|asis) option to am empty commits Aleen via GitGitGadget
2021-11-16 5:18 ` [PATCH v4 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-16 5:18 ` [PATCH v4 2/2] am: support --empty-commit option to handle empty patches Aleen via GitGitGadget
2021-11-16 10:07 ` Phillip Wood
2021-11-16 10:31 ` Aleen 徐沛文
2021-11-17 8:39 ` Junio C Hamano
2021-11-17 9:33 ` [PATCH v5 0/2] am: support --empty-commit=(die|skip|asis) option to am empty commits Aleen via GitGitGadget
2021-11-17 9:33 ` [PATCH v5 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-17 9:33 ` [PATCH v5 2/2] am: support --empty option to handle empty patches Aleen via GitGitGadget
2021-11-18 10:50 ` [PATCH v6 0/3] am: support --empty=(die|drop|keep) " Aleen via GitGitGadget
2021-11-18 10:50 ` [PATCH v6 1/3] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-18 10:50 ` [PATCH v6 2/3] am: support --empty option to handle empty patches Aleen via GitGitGadget
2021-11-19 0:56 ` Junio C Hamano
2021-11-19 10:33 ` Bagas Sanjaya
2021-11-19 12:10 ` Ævar Arnfjörð Bjarmason
2021-11-19 12:20 ` Eric Sunshine
2021-11-19 16:49 ` Junio C Hamano
2021-11-19 16:46 ` Junio C Hamano
2021-11-18 10:50 ` [PATCH v6 3/3] am: throw an error when passing --empty option without value Aleen via GitGitGadget
2021-11-19 1:13 ` Junio C Hamano
2021-11-19 2:11 ` Aleen 徐沛文
2021-11-18 23:47 ` [PATCH v6 0/3] am: support --empty=(die|drop|keep) option to handle empty patches Junio C Hamano
2021-11-19 1:45 ` Aleen 徐沛文
2021-11-19 5:46 ` Junio C Hamano
2021-11-19 7:23 ` Aleen 徐沛文
2021-11-19 7:25 ` =?gb18030?B?QWxlZW4=?=
2021-11-19 16:54 ` Junio C Hamano
2021-11-19 17:14 ` Aleen 徐沛文
2021-11-19 19:25 ` Junio C Hamano
2021-11-22 11:57 ` Johannes Schindelin
2021-11-19 4:16 ` Aleen 徐沛文
2021-11-19 5:04 ` [PATCH v7 0/2] " Aleen via GitGitGadget
2021-11-19 5:04 ` [PATCH v7 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-19 5:04 ` [PATCH v7 2/2] am: support --empty=<option> to handle empty patches Aleen via GitGitGadget
2021-11-19 22:50 ` Junio C Hamano
2021-11-19 23:07 ` Junio C Hamano
2021-11-22 6:46 ` [PATCH v8 0/2] am: support --empty=(die|drop|keep) option " Aleen via GitGitGadget
2021-11-22 6:46 ` [PATCH v8 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-22 6:46 ` [PATCH v8 2/2] am: support --empty=<option> to handle empty patches Aleen via GitGitGadget
2021-11-22 7:06 ` Junio C Hamano
2021-11-22 7:19 ` Aleen 徐沛文
2021-11-22 7:02 ` [PATCH v9 0/2] am: support --empty=(die|drop|keep) option " Aleen via GitGitGadget
2021-11-22 7:02 ` [PATCH v9 1/2] doc: git-format-patch: describe the option --always Aleen 徐沛文 via GitGitGadget
2021-11-22 7:02 ` [PATCH v9 2/2] am: support --empty=<option> to handle empty patches Aleen 徐沛文 via GitGitGadget
2021-11-22 7:04 ` Aleen 徐沛文
2021-11-22 7:51 ` [PATCH v10 0/2] am: support --empty=(die|drop|keep) option " Aleen via GitGitGadget
2021-11-22 7:51 ` [PATCH v10 1/2] doc: git-format-patch: describe the option --always Aleen via GitGitGadget
2021-11-22 12:00 ` Johannes Schindelin
2021-11-23 1:25 ` Aleen 徐沛文
2021-11-23 12:30 ` Johannes Schindelin
2021-11-22 7:51 ` [PATCH v10 2/2] am: support --empty=<option> to handle empty patches Aleen via GitGitGadget
2021-11-23 15:26 ` [PATCH v11 0/2] am: support --empty=(die|drop|keep) option " Aleen via GitGitGadget
2021-11-23 15:26 ` [PATCH v11 1/2] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-11-23 16:12 ` Johannes Schindelin
2021-11-23 22:02 ` Junio C Hamano
2021-11-23 15:26 ` [PATCH v11 2/2] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-11-26 20:14 ` Elijah Newren
2021-11-29 9:19 ` Aleen 徐沛文
2021-11-29 10:00 ` Aleen 徐沛文
2021-11-29 17:10 ` Elijah Newren
2021-11-30 5:45 ` [PATCH v12 3/3] am: support --allow-empty to record specific " Aleen 徐沛文
2021-11-29 18:17 ` [PATCH v11 2/2] am: support --empty=<option> to handle " Junio C Hamano
2021-11-29 18:57 ` Elijah Newren
2021-11-30 5:37 ` [PATCH v12 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option " Aleen via GitGitGadget
2021-11-30 5:37 ` [PATCH v12 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-11-30 5:37 ` [PATCH v12 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-11-30 5:37 ` [PATCH v12 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-11-30 7:21 ` Junio C Hamano
2021-11-30 9:55 ` [PATCH v13 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-11-30 9:55 ` [PATCH v13 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-11-30 9:55 ` [PATCH v13 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-11-30 9:55 ` [PATCH v13 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-01 3:37 ` [PATCH v14 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-12-01 3:37 ` [PATCH v14 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-01 3:37 ` [PATCH v14 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-03 22:30 ` Johannes Schindelin
2021-12-01 3:37 ` [PATCH v14 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-02 0:58 ` Junio C Hamano
2021-12-06 1:35 ` Aleen 徐沛文
2021-12-06 9:41 ` [PATCH v15 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-12-06 9:41 ` [PATCH v15 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-06 9:41 ` [PATCH v15 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-06 9:41 ` [PATCH v15 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-07 5:01 ` [PATCH v16 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-12-07 5:01 ` [PATCH v16 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-07 5:01 ` [PATCH v16 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-07 5:01 ` [PATCH v16 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-07 8:31 ` [PATCH v17 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-12-07 8:31 ` [PATCH v17 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-07 8:31 ` [PATCH v17 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-07 18:12 ` Junio C Hamano
2021-12-07 8:31 ` [PATCH v17 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-07 18:23 ` Junio C Hamano
2021-12-07 18:24 ` [PATCH v17 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Junio C Hamano
2021-12-08 5:05 ` [PATCH v18 " Aleen via GitGitGadget
2021-12-08 5:05 ` [PATCH v18 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-08 5:05 ` [PATCH v18 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-08 5:05 ` [PATCH v18 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
2021-12-08 6:22 ` Junio C Hamano
2021-12-08 6:46 ` Aleen 徐沛文
2021-12-08 11:32 ` Junio C Hamano
2021-12-09 7:25 ` [PATCH v19 0/3] am: support --empty=(die|drop|keep) option and --allow-empty option to handle " Aleen via GitGitGadget
2021-12-09 7:25 ` [PATCH v19 1/3] doc: git-format-patch: describe the option --always 徐沛文 (Aleen) via GitGitGadget
2021-12-09 9:28 ` Bagas Sanjaya
2021-12-10 1:26 ` Aleen 徐沛文
2021-12-10 6:50 ` Bagas Sanjaya
2021-12-11 9:22 ` Junio C Hamano
2021-12-09 7:25 ` [PATCH v19 2/3] am: support --empty=<option> to handle empty patches 徐沛文 (Aleen) via GitGitGadget
2021-12-09 7:25 ` [PATCH v19 3/3] am: support --allow-empty to record specific " 徐沛文 (Aleen) via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1076.v3.git.1636972769.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=aleen42@vip.qq.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
--cc=pwxu@coremail.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).