git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Hu Jialun <hujialun@comp.nus.edu.sg>
To: git@vger.kernel.org
Cc: gitster@pobox.com, congdanhqx@gmail.com, felipe.contreras@gmail.com
Subject: Re: [PATCH] commit: remove irrelavent prompt on `--allow-empty-message`
Date: Thu,  8 Jul 2021 23:19:11 +0800	[thread overview]
Message-ID: <20210708151911.2524122-1-hujialun@comp.nus.edu.sg> (raw)
In-Reply-To: <20210707162308.2438170-1-hujialun@comp.nus.edu.sg>

Junio C Hamano wrote:
> char *hint_cleanup_all =
> _("Please enter the ... , and an empty message aborts the commit.\n");
> char *hint_cleanup_space =
> _("Please enter the ... if you want to.\n"
>       "An empty message aborts the commit.\n");
>
> if (allow_empty_message) {
>         hint_cleanup_all = _("...");
>         hint_cleanup_space = _("...");
> }
>
> ... the if/elseif cascade in which calls to status_printf() are made
> ... using these variables

Would it be better this way or just using the ternary operator in-line
instead? If the latter, should it still be separated into another
variable or just embedded in the status_printf call? Using the ternary
operator does require to separate checks of allow_empty_message, but
might as well save us an `if` construct to reassign the variable.

In other words, which of the following 3 is the most acceptable?

1. As Junio suggested, quoted above.

2.
status_printf(s, GIT_COLOR_NORMAL, allow_empty_message ?
                                   _("...") :
				   _("...."), comment_line_char);

3.
const char *hint_foo = allow_empty_message ?
                       _("...") :
		       _("....");
......
status_printf(s, GIT_COLOR_NORMAL, hint_foo, comment_line_char);

--------------------------------------------------------------------

Felipe Contreras wrote:
> In git the style is to avoid braces if the content of the condition is a
> single line.

Đoàn Trần Công Danh wrote:
> In Git project, it's enforced to have -Wdeclaration-after-statement,
> IOW, move all declaration before statement.

Noted with thanks!

> After changing those texts, the tests should be updated, too.
> It's a customary service for the next developer, who needs to bisect
> this project to have all test-cases pass on each changes.
> 
> With this change, t7500.50 and t7502.37 runs into failures.
> Please fix them here, instead of next change.

I did change test cases accordingly in the second patch (excerpt below), and
both tests did pass afterwards. Was there something wrong with it?

> diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh
> index 7d02f79c0d..812ca45043 100755
> --- a/t/t7500-commit-template-squash-signoff.sh
> +++ b/t/t7500-commit-template-squash-signoff.sh
> @@ -497,8 +497,8 @@ test_expect_success 'invalid message options when using --fixup' '
> 
>  cat >expected-template <<EOF
> 
> -# Please enter the commit message for your changes. Lines starting
> -# with '#' will be ignored, and an empty message aborts the commit.
> +# Please enter the commit message for your changes.
> +# Lines starting with '#' will be ignored.
>  #
>  # Author:    A U Thor <author@example.com>
>  #
> diff --git a/t/t7502-commit-porcelain.sh b/t/t7502-commit-porcelain.sh
> index 38a532d81c..a5217872ca 100755
> --- a/t/t7502-commit-porcelain.sh
> +++ b/t/t7502-commit-porcelain.sh
> @@ -608,8 +608,8 @@ test_expect_success 'cleanup commit messages (strip option,-F,-e)' '
> 
>  echo "sample
> 
> -# Please enter the commit message for your changes. Lines starting
> -# with '#' will be ignored, and an empty message aborts the commit." >expect
> +# Please enter the commit message for your changes.
> +# Lines starting with '#' will be ignored." >expect
> 
>  test_expect_success 'cleanup commit messages (strip option,-F,-e): output' '
>  	test_cmp expect actual

--------------------------------------------------------------------

And some perhaps rather noob questions below, as an (overly) curious
newcomer,

- Why is the "lego" style breakdown of translation strings unrecommended?
  I suppose it might be in consideration of possibly different linguistic
  sequences across languages but I'm not so sure.

- What is the rationale behind prohibiting braces around single line
  constructs? It seems somewhat error-prone since somebody else could
  later be adding statements into the body without putting the curly
  braces.

- When replying to multiple comments in multiple emails (like in this very
  email), would it be better to send multiple emails as replies to individual
  comments or do it in one email? If the latter, which previous message should
  the single reply be In-Reply-To?

Thanks in advance,
Hu Jialun

  parent reply	other threads:[~2021-07-08 15:19 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06  2:24 [PATCH] commit: remove irrelavent prompt on `--allow-empty-message` Hu Jialun
2021-07-06 15:44 ` Junio C Hamano
2021-07-07  4:37   ` Felipe Contreras
2021-07-07 10:43   ` Hu Jialun
2021-07-07 16:23 ` Hu Jialun
2021-07-07 16:23   ` [PATCH v2 1/2] commit: reorganise duplicate commit prompt strings Hu Jialun
2021-07-07 16:57     ` Đoàn Trần Công Danh
2021-07-07 17:44       ` Junio C Hamano
2021-07-07 16:23   ` [PATCH v2 2/2] commit: remove irrelavent prompt on `--allow-empty-message` Hu Jialun
2021-07-07 17:42     ` Felipe Contreras
2021-07-08 15:19   ` Hu Jialun [this message]
2021-07-08 16:05     ` [PATCH] " Đoàn Trần Công Danh
2021-07-08 18:26       ` Junio C Hamano
2021-07-09 18:07   ` [PATCH v3 1/2] commit: reorganise commit hint strings Hu Jialun
2021-07-09 19:14     ` Junio C Hamano
2021-07-09 18:07   ` [PATCH v3 2/2] commit: remove irrelavent prompt on `--allow-empty-message` Hu Jialun
2021-07-09 19:14     ` Junio C Hamano
2021-07-10 17:26       ` Hu Jialun
2021-07-22 18:33       ` Hu Jialun
2021-07-22 21:18         ` Junio C Hamano

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=20210708151911.2524122-1-hujialun@comp.nus.edu.sg \
    --to=hujialun@comp.nus.edu.sg \
    --cc=congdanhqx@gmail.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.
Code repositories for project(s) associated with this public 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).