From: Junio C Hamano <gitster@pobox.com> To: "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com> Cc: git@vger.kernel.org, Christian Couder <christian.couder@gmail.com>, ZheNing Hu <adlternative@gmail.com> Subject: Re: [PATCH v4] [GSOC]trailer: pass arg as positional parameter Date: Sat, 27 Mar 2021 11:04:31 -0700 [thread overview] Message-ID: <xmqqk0psqxqo.fsf@gitster.g> (raw) In-Reply-To: <pull.913.v4.git.1616775185562.gitgitgadget@gmail.com> (ZheNing Hu via GitGitGadget's message of "Fri, 26 Mar 2021 16:13:05 +0000") "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com> writes: > @@ -252,6 +252,16 @@ also be executed for each of these arguments. And the <value> part of > these arguments, if any, will be used to replace the `$ARG` string in > the command. > > +trailer.<token>.cmd:: > + The command specified by this configuration variable is run > + with a single parameter, which is the <value> part of an > + existing trailer with the same <token>. The output from the > + command is then used as the value for the <token> in the > + resulting trailer. > + The command is expected to replace `trailer.<token>.cmd`. > + When both .cmd and .command are given for the same <token>, > + .cmd is used and .command is ignored. Christian, because ".cmd" is trying to eventually replace it, I find it a bit disturbing that the description we give here looks a lot smaller compared to the one for ".command". I am afraid that we may have failed to reproduce something important from the description of the ".command" for the above; care to rend a hand or two here to complete the description? As I cannot grok what the description for ".command" is trying to say, especially around this part: When this option is specified, the behavior is as if a special '<token>=<value>' argument were added at the beginning of the command line, where <value> is ... and If some '<token>=<value>' arguments are also passed on the command line, when a 'trailer.<token>.command' is configured, the command will also be executed for each of these arguments. I cannot quite judge if what we came up with in the above description is sufficient. > -* Configure a 'sign' trailer with a command to automatically add a > +* Configure a 'sign' trailer with a cmd to automatically add a > 'Signed-off-by: ' with the author information only if there is no > 'Signed-off-by: ' already, and show how it works: > + > @@ -309,7 +319,7 @@ $ git interpret-trailers --trailer 'Cc: Alice <alice@example.com>' --trailer 'Re > $ git config trailer.sign.key "Signed-off-by: " > $ git config trailer.sign.ifmissing add > $ git config trailer.sign.ifexists doNothing > -$ git config trailer.sign.command 'echo "$(git config user.name) <$(git config user.email)>"' > +$ git config trailer.sign.cmd 'echo "$(git config user.name) <$(git config user.email)>"' > $ git interpret-trailers <<EOF > > EOF This change would definitely be needed when the support for ".command" is removed after deprecation period. As it does not take any argument, .cmd and .command should behave identically, so making this change now, without waiting, may make sense. > @@ -333,14 +343,14 @@ subject > Fix #42 > ------------ > > -* Configure a 'see' trailer with a command to show the subject of a > +* Configure a 'see' trailer with a cmd to show the subject of a > commit that is related, and show how it works: > + > ------------ > $ git config trailer.see.key "See-also: " > $ git config trailer.see.ifExists "replace" > $ git config trailer.see.ifMissing "doNothing" > -$ git config trailer.see.command "git log -1 --oneline --format=\"%h (%s)\" --abbrev-commit --abbrev=14 \$ARG" > +$ git config trailer.see.cmd "test -n \"\$1\" && git log -1 --oneline --format=\"%h (%s)\" --abbrev-commit --abbrev=14 \"\$1\"|| true " > $ git interpret-trailers <<EOF > > subject This, too, but until ".command" is removed, wouldn't it be better for readers to keep both variants, as the distinction between $ARG and $1 needs to be illustrated? Besides, the examples given here are not equivalent. The original assumes that ARG is there, or it is OK to default to HEAD; the new one gives no output when $ARG/$1 is not supplied. It would confuse readers to give two too-similar-but-subtly-different examles, as they will be forced to wonder if the difference is something needed to transition from .command to .cmd (and I am guessing that it is not). Rewriting both to use "--pretty=reference" may be worth doing. As can be seen in these examples: git show -s --pretty=reference \$1 git log -1 --oneline --format=\"%h (%s)\" --abbrev-commit --abbrev=14 \$1 that it makes the result much easier to read. Thanks. Do not send a reroll prematurely; I want to see area expert's input at this point.
next prev parent reply other threads:[~2021-03-27 18:05 UTC|newest] Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-23 14:53 [PATCH] [GSOC]trailer: change $ARG to environment variable ZheNing Hu via GitGitGadget 2021-03-24 15:42 ` [PATCH v2] [GSOC]trailer: pass arg as positional parameter ZheNing Hu via GitGitGadget 2021-03-24 20:18 ` Junio C Hamano 2021-03-25 1:43 ` ZheNing Hu 2021-03-25 11:53 ` [PATCH v3] " ZheNing Hu via GitGitGadget 2021-03-25 22:28 ` Junio C Hamano 2021-03-26 13:29 ` ZheNing Hu 2021-03-26 16:13 ` [PATCH v4] " ZheNing Hu via GitGitGadget 2021-03-27 18:04 ` Junio C Hamano [this message] 2021-03-27 19:53 ` Christian Couder 2021-03-28 10:46 ` ZheNing Hu 2021-03-29 9:04 ` Christian Couder 2021-03-29 13:43 ` ZheNing Hu 2021-03-30 8:45 ` Christian Couder 2021-03-30 11:22 ` ZheNing Hu 2021-03-30 15:07 ` ZheNing Hu 2021-03-30 17:14 ` Junio C Hamano 2021-03-31 5:14 ` ZheNing Hu 2021-03-31 18:19 ` Junio C Hamano 2021-03-31 18:29 ` Junio C Hamano 2021-04-01 3:56 ` ZheNing Hu 2021-04-01 19:49 ` Junio C Hamano 2021-04-02 2:08 ` ZheNing Hu 2021-04-01 3:39 ` ZheNing Hu 2021-03-31 10:05 ` [PATCH v5 0/2] " ZheNing Hu via GitGitGadget 2021-03-31 10:05 ` [PATCH v5 1/2] [GSOC] run-command: add shell_no_implicit_args option ZheNing Hu via GitGitGadget 2021-04-01 7:22 ` Christian Couder 2021-04-01 9:58 ` ZheNing Hu 2021-03-31 10:05 ` [PATCH v5 2/2] [GSOC]trailer: pass arg as positional parameter ZheNing Hu via GitGitGadget 2021-04-01 7:28 ` [PATCH v5 0/2] " Christian Couder 2021-04-01 10:02 ` ZheNing Hu 2021-04-02 13:26 ` [PATCH v6] [GSOC] trailer: add new trailer.<token>.cmd config option ZheNing Hu via GitGitGadget 2021-04-02 20:48 ` Junio C Hamano 2021-04-03 5:08 ` ZheNing Hu 2021-04-04 5:34 ` Junio C Hamano 2021-04-03 5:51 ` Christian Couder 2021-04-04 23:26 ` Junio C Hamano 2021-04-06 3:47 ` Christian Couder 2021-04-06 3:52 ` Christian Couder 2021-04-06 5:16 ` ZheNing Hu 2021-04-06 5:34 ` Junio C Hamano 2021-04-06 5:37 ` Junio C Hamano 2021-04-04 5:43 ` ZheNing Hu 2021-04-04 8:52 ` Christian Couder 2021-04-04 9:53 ` ZheNing Hu 2021-04-02 23:44 ` Junio C Hamano 2021-04-03 3:22 ` ZheNing Hu 2021-04-03 4:31 ` Junio C Hamano 2021-04-03 5:15 ` ZheNing Hu 2021-04-04 13:11 ` [PATCH v7] " ZheNing Hu via GitGitGadget 2021-04-06 16:23 ` Christian Couder 2021-04-07 4:51 ` ZheNing Hu 2021-04-09 13:37 ` [PATCH v8 0/2] [GSOC] trailer: add new .cmd " ZheNing Hu via GitGitGadget 2021-04-09 13:37 ` [PATCH v8 1/2] [GSOC] docs: correct descript of trailer.<token>.command ZheNing Hu via GitGitGadget 2021-04-09 19:02 ` Christian Couder 2021-04-10 13:40 ` ZheNing Hu 2021-04-09 13:37 ` [PATCH v8 2/2] [GSOC] trailer: add new .cmd config option ZheNing Hu via GitGitGadget 2021-04-09 20:18 ` Christian Couder 2021-04-10 14:09 ` ZheNing Hu 2021-04-09 19:59 ` [PATCH v8 0/2] " Christian Couder 2021-04-12 16:39 ` [PATCH v9 " ZheNing Hu via GitGitGadget 2021-04-12 16:39 ` [PATCH v9 1/2] [GSOC] docs: correct descript of trailer.<token>.command ZheNing Hu via GitGitGadget 2021-04-12 20:42 ` Junio C Hamano 2021-04-16 12:03 ` Christian Couder 2021-04-17 1:54 ` Junio C Hamano 2021-04-12 16:39 ` [PATCH v9 2/2] [GSOC] trailer: add new .cmd config option ZheNing Hu via GitGitGadget 2021-04-12 20:51 ` Junio C Hamano 2021-04-13 7:33 ` Christian Couder 2021-04-13 12:02 ` ZheNing Hu 2021-04-13 19:18 ` Junio C Hamano 2021-04-14 13:27 ` ZheNing Hu 2021-04-14 20:33 ` Junio C Hamano 2021-04-15 15:32 ` ZheNing Hu 2021-04-15 17:41 ` Junio C Hamano 2021-04-16 12:54 ` Christian Couder 2021-04-13 18:14 ` Junio C Hamano 2021-04-16 8:47 ` [PATCH v10 0/2] " ZheNing Hu via GitGitGadget 2021-04-16 8:47 ` [PATCH v10 1/2] [GSOC] docs: correct descript of trailer.<token>.command ZheNing Hu via GitGitGadget 2021-04-16 19:11 ` Junio C Hamano 2021-04-16 8:47 ` [PATCH v10 2/2] [GSOC] trailer: add new .cmd config option ZheNing Hu via GitGitGadget 2021-04-16 19:13 ` Junio C Hamano 2021-04-16 19:21 ` Junio C Hamano 2021-04-16 19:25 ` Junio C Hamano 2021-04-17 2:58 ` Junio C Hamano 2021-04-17 3:36 ` Junio C Hamano 2021-04-17 7:41 ` ZheNing Hu 2021-04-17 8:11 ` Junio C Hamano 2021-04-17 15:13 ` [PATCH v11 0/2] " ZheNing Hu via GitGitGadget 2021-04-17 15:13 ` [PATCH v11 1/2] [GSOC] docs: correct description of .command ZheNing Hu via GitGitGadget 2021-04-17 15:13 ` [PATCH v11 2/2] [GSOC] trailer: add new .cmd config option ZheNing Hu via GitGitGadget 2021-04-17 22:26 ` [PATCH v11 0/2] " Junio C Hamano 2021-04-18 7:47 ` ZheNing Hu 2021-04-21 0:09 ` Junio C Hamano 2021-04-21 5:47 ` ZheNing Hu 2021-04-21 23:40 ` Junio C Hamano 2021-04-22 9:20 ` ZheNing Hu 2021-04-27 6:49 ` Junio C Hamano 2021-04-27 12:24 ` ZheNing Hu 2021-05-03 15:41 ` [PATCH v12 " ZheNing Hu via GitGitGadget 2021-05-03 15:41 ` [PATCH v12 1/2] [GSOC] docs: correct descript of trailer.<token>.command ZheNing Hu via GitGitGadget 2021-05-03 15:41 ` [PATCH v12 2/2] [GSOC] trailer: add new .cmd config option ZheNing Hu 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 List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=xmqqk0psqxqo.fsf@gitster.g \ --to=gitster@pobox.com \ --cc=adlternative@gmail.com \ --cc=christian.couder@gmail.com \ --cc=git@vger.kernel.org \ --cc=gitgitgadget@gmail.com \ --subject='Re: [PATCH v4] [GSOC]trailer: pass arg as positional parameter' \ /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
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).