All of lore.kernel.org
 help / color / mirror / Atom feed
From: "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Bradley M. Kuhn" <bkuhn@sfconservancy.org>,
	Junio C Hamano <gitster@pobox.com>,
	Brandon Casey <drafnel@gmail.com>,
	Shourya Shukla <periperidip@gmail.com>,
	Christian Couder <christian.couder@gmail.com>,
	Rafael Silva <rafaeloliveira.cs@gmail.com>,
	ZheNing Hu <adlternative@gmail.com>
Subject: [PATCH v10 0/3] [GSOC] commit: add --trailer option
Date: Thu, 18 Mar 2021 11:15:53 +0000	[thread overview]
Message-ID: <pull.901.v10.git.1616066156.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.901.v9.git.1615891183320.gitgitgadget@gmail.com>

Now maintainers or developers can also use commit
--trailer="Signed-off-by:commiter<email>" from the command line to provide
trailers to commit messages. This solution may be more generalized than v1.

ZheNing Hu (3):
  [GSOC] commit: add --trailer option
  interpret-trailers: add own-identity option
  commit: add own-identity option

 Documentation/git-commit.txt             |  25 +-
 Documentation/git-interpret-trailers.txt |  14 +
 builtin/commit.c                         |  31 ++
 builtin/interpret-trailers.c             |   6 +-
 t/t7501-commit-basic-functionality.sh    |  91 ++++++
 t/t7502-commit-porcelain.sh              | 356 +++++++++++++++++++++++
 t/t7513-interpret-trailers.sh            |  12 +
 trailer.c                                |  18 +-
 trailer.h                                |   3 +-
 9 files changed, 550 insertions(+), 6 deletions(-)


base-commit: 13d7ab6b5d7929825b626f050b62a11241ea4945
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-901%2Fadlternative%2Fcommit-with-multiple-signatures-v10
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-901/adlternative/commit-with-multiple-signatures-v10
Pull-Request: https://github.com/gitgitgadget/git/pull/901

Range-diff vs v9:

 1:  e524c4ba5dc1 ! 1:  949faf9ee56a [GSOC] commit: add --trailer option
     @@ Documentation/git-commit.txt: The `-m` option is mutually exclusive with `-c`, `
      +	<committer@example.com>" --trailer "Helped-by:C O Mitter \
      +	<committer@example.com>"` will add the "Signed-off-by" trailer
      +	and the "Helped-by" trailer in the commit message.)
     -+	See linkgit:git-interpret-trailers[1] for details.
     ++	Use `git -c trailer.* commit --trailer` to make the appropriate
     ++	configuration. See linkgit:git-interpret-trailers[1] for details.
       -n::
       --no-verify::
       	This option bypasses the pre-commit and commit-msg hooks.
     @@ builtin/commit.c: static int prepare_to_commit(const char *index_file, const cha
      +			     "--in-place", git_path_commit_editmsg(), NULL);
      +		strvec_pushv(&run_trailer.args, trailer_args.v);
      +		run_trailer.git_cmd = 1;
     -+		if (run_command(&run_trailer))
     -+			strvec_clear(&run_trailer.args);
     ++		if (run_command(&run_trailer)) {
     ++			die(_("unable to pass tailers to --trailers"));
     ++		}
      +		strvec_clear(&trailer_args);
      +	}
      +
     @@ builtin/commit.c: int cmd_commit(int argc, const char **argv, const char *prefix
       		OPT_STRING(0, "fixup", &fixup_message, N_("commit"), N_("use autosquash formatted message to fixup specified commit")),
       		OPT_STRING(0, "squash", &squash_message, N_("commit"), N_("use autosquash formatted message to squash specified commit")),
       		OPT_BOOL(0, "reset-author", &renew_authorship, N_("the commit is authored by me now (used with -C/-c/--amend)")),
     -+		OPT_CALLBACK_F(0, "trailer", NULL, N_("trailer"), N_("trailer(s) to add"), PARSE_OPT_NONEG, opt_pass_trailer),
     ++		OPT_CALLBACK_F(0, "trailer", NULL, N_("trailer"), N_("add custom trailer(s)"), PARSE_OPT_NONEG, opt_pass_trailer),
       		OPT_BOOL('s', "signoff", &signoff, N_("add a Signed-off-by trailer")),
       		OPT_FILENAME('t', "template", &template_file, N_("use specified template file")),
       		OPT_BOOL('e', "edit", &edit_flag, N_("force edit of commit")),
     @@ t/t7502-commit-porcelain.sh: test_expect_success 'sign off' '
       
       '
       
     -+test_expect_success 'trailer' '
     -+	>file1 &&
     -+	git add file1 &&
     -+	git commit -s --trailer "Signed-off-by:C O Mitter1 <committer1@example.com>" \
     -+		--trailer "Helped-by:C O Mitter2 <committer2@example.com>"  \
     -+		--trailer "Reported-by:C O Mitter3 <committer3@example.com>" \
     -+		--trailer "Mentored-by:C O Mitter4 <committer4@example.com>" \
     ++test_expect_success 'commit --trailer without -c' '
     ++	echo "fun" >>file &&
     ++	git add file &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Helped-by: C2 E2
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	EOF
     ++	git commit -s --trailer "Signed-off-by:C1 E1 " \
     ++		--trailer "Helped-by:C2 E2 " \
     ++		--trailer "Reported-by:C3 E3" \
     ++		--trailer "Mentored-by:C4 E4" \
      +		-m "hello" &&
      +	git cat-file commit HEAD >commit.msg &&
     -+	sed -e "1,7d" commit.msg >actual &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "replace" as ifexists' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	EOF
     ++	git -c trailer.ifexists="replace" \
     ++		commit --trailer "Mentored-by: C4 E4" \
     ++		 --trailer "Helped-by: C3 E3" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "add" as ifexists' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	EOF
     ++	git -c trailer.ifexists="add" \
     ++		commit --trailer "Helped-by: C3 E3" \
     ++		--trailer "Helped-by: C3 E3" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "donothing" as ifexists' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
      +	cat >expected <<-\EOF &&
     ++
      +	Signed-off-by: C O Mitter <committer@example.com>
     -+	Signed-off-by: C O Mitter1 <committer1@example.com>
     -+	Helped-by: C O Mitter2 <committer2@example.com>
     -+	Reported-by: C O Mitter3 <committer3@example.com>
     -+	Mentored-by: C O Mitter4 <committer4@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
      +	EOF
     ++	git -c trailer.ifexists="donothing" \
     ++		commit --trailer "Mentored-by: C5 E5" \
     ++		--trailer "Reviewed-by: C6 E6" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "addIfDifferent" as ifexists' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	EOF
     ++	git -c trailer.ifexists="addIfDifferent" \
     ++		commit --trailer "Reviewed-by: C6 E6" \
     ++		--trailer "Reported-by: C5 E5" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "addIfDifferentNeighbor" as ifexists' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	EOF
     ++	git -c trailer.ifexists="addIfDifferent" \
     ++		commit --trailer "Reported-by: C5 E5" \
     ++		--trailer "Reviewed-by: C6 E6" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "end" as where' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	EOF
     ++	git -c trailer.where="end" \
     ++		commit --trailer "Reported-by: C5 E5" \
     ++		--trailer "Reported-by: C7 E7" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "start" as where' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C8 E8
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	EOF
     ++	git -c trailer.where="start" \
     ++		commit --trailer "Signed-off-by: C8 E8" \
     ++		--trailer "Signed-off-by: C8 E8" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "after" as where' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C8 E8
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Mentored-by: C9 E9
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	Reported-by: C10 E10
     ++	EOF
     ++	git -c trailer.where="after" \
     ++		commit --trailer "Mentored-by: C9 E9" \
     ++		--trailer "Reported-by: C10 E10" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "before" as where' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C8 E8
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C11 E11
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Mentored-by: C9 E9
     ++	Helped-by: C12 E12
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	Reported-by: C10 E10
     ++	EOF
     ++	git -c trailer.where="before" \
     ++		commit --trailer "Helped-by: C12 E12" \
     ++		--trailer "Reported-by: C11 E11" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "donothing" as ifmissing' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C8 E8
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C11 E11
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Mentored-by: C9 E9
     ++	Helped-by: C12 E12
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	Reported-by: C10 E10
     ++	Helped-by: C12 E12
     ++	EOF
     ++	git -c trailer.ifmissing="donothing" \
     ++		commit --trailer "Helped-by: C12 E12" \
     ++		--trailer "Based-by: C13 E13" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "add" as ifmissing' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++	Signed-off-by: C8 E8
     ++	Signed-off-by: C O Mitter <committer@example.com>
     ++	Signed-off-by: C1 E1
     ++	Reported-by: C11 E11
     ++	Reported-by: C3 E3
     ++	Mentored-by: C4 E4
     ++	Mentored-by: C9 E9
     ++	Helped-by: C12 E12
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Helped-by: C3 E3
     ++	Reviewed-by: C6 E6
     ++	Reported-by: C5 E5
     ++	Reported-by: C7 E7
     ++	Reported-by: C10 E10
     ++	Helped-by: C12 E12
     ++	Based-by: C13 E13
     ++	EOF
     ++	git -c trailer.ifmissing="add" \
     ++		commit --trailer "Helped-by: C12 E12" \
     ++		--trailer "Based-by: C13 E13" \
     ++		--amend &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and "=" as separators' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++		Acked-by= Peff
     ++	EOF
     ++	git -c trailer.separators="=" \
     ++		-c trailer.ack.key="Acked-by= " \
     ++		commit --trailer "ack = Peff" -m "hello" &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
     ++	test_cmp expected actual
     ++'
     ++
     ++test_expect_success 'commit --trailer with -c and ":=#" as separators' '
     ++	echo "fun" >>file1 &&
     ++	git add file1 &&
     ++	cat >expected <<-\EOF &&
     ++
     ++		Bug #42
     ++	EOF
     ++	git -c trailer.separators=":=#" \
     ++		-c trailer.bug.key="Bug #" \
     ++		commit --trailer "bug = 42" -m "I hate bug" &&
     ++	git cat-file commit HEAD >commit.msg &&
     ++	sed -e "1,6d" commit.msg >actual &&
      +	test_cmp expected actual
      +'
      +
 -:  ------------ > 2:  42590e95deee interpret-trailers: add own-identity option
 -:  ------------ > 3:  2dfcc20f0e9f commit: add own-identity option

-- 
gitgitgadget

  parent reply	other threads:[~2021-03-18 11:16 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-11  7:16 [PATCH] [GSOC] commit: provides multiple common signatures ZheNing Hu via GitGitGadget
2021-03-11 15:03 ` Shourya Shukla
2021-03-12 11:41   ` ZheNing Hu
2021-03-11 17:28 ` Junio C Hamano
2021-03-12 12:01   ` ZheNing Hu
2021-03-12 13:22   ` ZheNing Hu
2021-03-12 15:54 ` [PATCH v2] [GSOC] commit: add trailer command ZheNing Hu via GitGitGadget
2021-03-14  4:19   ` Christian Couder
2021-03-14  7:09     ` ZheNing Hu
2021-03-14 22:45     ` Junio C Hamano
2021-03-14 13:02   ` [PATCH v3] [GSOC] commit: add --trailer option ZheNing Hu via GitGitGadget
2021-03-14 13:10     ` Rafael Silva
2021-03-14 14:13       ` ZheNing Hu
2021-03-14 15:58     ` [PATCH v4] " ZheNing Hu via GitGitGadget
2021-03-14 23:52       ` Junio C Hamano
2021-03-15  1:27         ` ZheNing Hu
2021-03-15  4:42           ` Junio C Hamano
2021-03-15  5:14             ` ZheNing Hu
2021-03-15  3:24       ` [PATCH v5] " ZheNing Hu via GitGitGadget
2021-03-15  5:33         ` Christian Couder
2021-03-15  5:41           ` Christian Couder
2021-03-15  5:46           ` ZheNing Hu
2021-03-15  6:35         ` [PATCH v6] " ZheNing Hu via GitGitGadget
2021-03-15  8:02           ` Christian Couder
2021-03-15  8:21             ` ZheNing Hu
2021-03-15  9:08           ` [PATCH v7] " ZheNing Hu via GitGitGadget
2021-03-15 10:00             ` Christian Couder
2021-03-15 10:14             ` Christian Couder
2021-03-15 11:32               ` ZheNing Hu
2021-03-16  5:37                 ` Christian Couder
2021-03-16  8:35                   ` ZheNing Hu
2021-03-15 13:07             ` [PATCH v8 0/2] " ZheNing Hu via GitGitGadget
2021-03-15 13:07               ` [PATCH v8 1/2] " ZheNing Hu via GitGitGadget
2021-03-16 12:52                 ` Ævar Arnfjörð Bjarmason
2021-03-17  2:01                   ` ZheNing Hu
2021-03-17  8:08                     ` Ævar Arnfjörð Bjarmason
2021-03-17 13:54                       ` ZheNing Hu
2021-03-15 13:07               ` [PATCH v8 2/2] interpret_trailers: for three options parse add warning ZheNing Hu via GitGitGadget
2021-03-16  5:53                 ` Christian Couder
2021-03-16  9:11                   ` ZheNing Hu
2021-03-16 10:39               ` [PATCH v9] [GSOC] commit: add --trailer option ZheNing Hu via GitGitGadget
2021-03-17  5:26                 ` Shourya Shukla
2021-03-17  6:06                   ` ZheNing Hu
2021-03-18 11:15                 ` ZheNing Hu via GitGitGadget [this message]
2021-03-18 11:15                   ` [PATCH v10 1/3] " ZheNing Hu via GitGitGadget
2021-03-18 16:29                     ` Đoàn Trần Công Danh
2021-03-19  7:56                       ` ZheNing Hu
2021-03-18 11:15                   ` [PATCH v10 2/3] interpret-trailers: add own-identity option ZheNing Hu via GitGitGadget
2021-03-18 16:45                     ` Đoàn Trần Công Danh
2021-03-19  8:04                       ` ZheNing Hu
2021-03-18 19:20                     ` Junio C Hamano
2021-03-19  9:33                       ` ZheNing Hu
2021-03-19 15:36                         ` Junio C Hamano
2021-03-20  2:54                           ` ZheNing Hu
2021-03-20  5:06                             ` Jeff King
2021-03-20  5:50                               ` Junio C Hamano
2021-03-20  6:16                                 ` ZheNing Hu
2021-03-20  6:38                                   ` ZheNing Hu
2021-03-20  6:53                                     ` Junio C Hamano
2021-03-20  8:43                                       ` ZheNing Hu
2021-03-18 11:15                   ` [PATCH v10 3/3] commit: " ZheNing Hu via GitGitGadget
2021-03-18 13:47                   ` [PATCH v10 0/3] [GSOC] commit: add --trailer option Christian Couder
2021-03-18 15:27                     ` ZheNing Hu
2021-03-19 12:05                   ` [PATCH v11] " ZheNing Hu via GitGitGadget
2021-03-19 17:48                     ` Junio C Hamano
2021-03-20 13:41                     ` [PATCH v12] " ZheNing Hu via GitGitGadget
2021-03-22  4:24                       ` [PATCH v13] " ZheNing Hu via GitGitGadget
2021-03-22  7:43                         ` Christian Couder
2021-03-22 10:23                           ` ZheNing Hu
2021-03-22 21:34                             ` Christian Couder
2021-03-23  6:11                               ` ZheNing Hu
2021-03-23  6:19                               ` Junio C Hamano
2021-03-23  7:57                                 ` Christian Couder
2021-03-23 17:11                                   ` Junio C Hamano
2021-03-24  5:21                                     ` ZheNing Hu
2021-03-23 10:35                                 ` ZheNing Hu
2021-03-23 12:41                                   ` Christian Couder
2021-03-23 17:12                                   ` Junio C Hamano
2021-03-24  5:25                                     ` ZheNing Hu
2021-03-22 21:55                             ` Christian Couder
2021-03-23  6:29                               ` ZheNing Hu
2021-03-23 13:55                         ` [PATCH v14] " ZheNing Hu via GitGitGadget
2021-03-15  4:38       ` [PATCH v4] " Junio C Hamano
2021-03-15  5:11         ` ZheNing Hu

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.901.v10.git.1616066156.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=adlternative@gmail.com \
    --cc=bkuhn@sfconservancy.org \
    --cc=christian.couder@gmail.com \
    --cc=drafnel@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=periperidip@gmail.com \
    --cc=rafaeloliveira.cs@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.