git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Roy Eldar <royeldar0@gmail.com>
Cc: git@vger.kernel.org, "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH 1/3] git-submodule.sh: make some variables boolean
Date: Sun, 08 Dec 2024 08:43:34 +0900	[thread overview]
Message-ID: <xmqqzfl7rrdl.fsf@gitster.g> (raw)
In-Reply-To: <20241207135201.2536-2-royeldar0@gmail.com> (Roy Eldar's message of "Sat, 7 Dec 2024 15:51:59 +0200")

Roy Eldar <royeldar0@gmail.com> writes:

> When git-submodule.sh parses various options and switchs, it sets some
> variables to values; in particular, every switch that is passed causes a
> corresponding variable to be set to 1, which then affects the options
> given to git-submodule--helper.
>
> There are some variables are assigned "$1", although there is no reason
> for it; this was actually noticed in 757d092 for the "$cached" variable.

Wearing devil's advocate hat on.

This can cut both ways.  If you are doing a thin wrapper front-end,
when calling into the underlying machinery that has its own option
parser, it is often easier to write and read

    submodule--helper $force $cached

instead of

    submodule--helper ${force:+--force} ${cached:+--cached}

In addition, when debugging such a script by running it under "sh -x",
a typical construct like

	if test "$force" = 1
	then
		... do the force thing ...

would appear in the "-x" trace as

	+test 1 = 1
	+... do the force thing ...

if you force yourself to use "1", but 

	if test "$force" = "--force"
	then
		... do the force thing ...

would show either

	+test --force = --force

or

	+test "" = --force

and the latter is especially useful when you are wondering why the
"--force" you gave from the command line is not taking effect.

Having said all that, as long as the use of these switch variables
are done consistently (e.g., consistently set effective ones to "1",
and consistently set ones that are off to ""), we are OK.

Thanks.

  reply	other threads:[~2024-12-07 23:43 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-07 13:51 [PATCH 0/3] git-submodule.sh: improve parsing of options Roy Eldar
2024-12-07 13:51 ` [PATCH 1/3] git-submodule.sh: make some variables boolean Roy Eldar
2024-12-07 23:43   ` Junio C Hamano [this message]
2024-12-08  0:06   ` Eric Sunshine
2024-12-07 13:52 ` [PATCH 2/3] git-submodule.sh: improve parsing of some long options Roy Eldar
2024-12-07 13:52 ` [PATCH 3/3] git-submodule.sh: improve parsing of short options Roy Eldar
2024-12-08  0:02   ` Junio C Hamano
2024-12-09 16:21     ` Roy E
2024-12-09 16:50 ` [PATCH v2 0/8] git-submodule.sh: improve parsing of options Roy Eldar
2024-12-09 16:50   ` [PATCH v2 1/8] git-submodule.sh: make some variables boolean Roy Eldar
2024-12-09 16:50   ` [PATCH v2 2/8] git-submodule.sh: improve parsing of some long options Roy Eldar
2024-12-09 16:50   ` [PATCH v2 3/8] git-submodule.sh: improve parsing of short options Roy Eldar
2024-12-09 16:50   ` [PATCH v2 4/8] git-submodule.sh: get rid of isnumber Roy Eldar
2024-12-09 16:50   ` [PATCH v2 5/8] git-submodule.sh: get rid of unused variable Roy Eldar
2024-12-09 16:50   ` [PATCH v2 6/8] git-submodule.sh: add some comments Roy Eldar
2024-12-09 16:50   ` [PATCH v2 7/8] git-submodule.sh: improve variables readability Roy Eldar
2024-12-09 16:50   ` [PATCH v2 8/8] git-submodule.sh: rename some variables Roy Eldar
2024-12-09 23:26   ` [PATCH v2 0/8] git-submodule.sh: improve parsing of options Junio C Hamano
2024-12-10  0:50     ` Junio C Hamano
2024-12-10 18:11     ` Roy E
2024-12-11  0:02       ` Junio C Hamano
2024-12-11  6:13         ` Roy E
2024-12-11  6:16           ` Junio C Hamano
2024-12-10 18:44   ` [PATCH v3 0/7] " Roy Eldar
2024-12-10 18:44     ` [PATCH v3 1/7] git-submodule.sh: improve parsing of some long options Roy Eldar
2024-12-10 18:44     ` [PATCH v3 2/7] git-submodule.sh: improve parsing of short options Roy Eldar
2024-12-10 18:44     ` [PATCH v3 3/7] git-submodule.sh: get rid of isnumber Roy Eldar
2024-12-10 18:44     ` [PATCH v3 4/7] git-submodule.sh: get rid of unused variable Roy Eldar
2024-12-10 18:44     ` [PATCH v3 5/7] git-submodule.sh: add some comments Roy Eldar
2024-12-10 18:44     ` [PATCH v3 6/7] git-submodule.sh: improve variables readability Roy Eldar
2024-12-11  0:14       ` Junio C Hamano
2024-12-11  6:21         ` Roy E
2024-12-11  1:56       ` Đoàn Trần Công Danh
2024-12-11  6:09         ` Junio C Hamano
2024-12-10 18:44     ` [PATCH v3 7/7] git-submodule.sh: rename some variables Roy Eldar
2024-12-11  6:32     ` [PATCH v4 0/7] git-submodule.sh: improve parsing of options Roy Eldar
2024-12-11  6:32       ` [PATCH v4 1/7] git-submodule.sh: improve parsing of some long options Roy Eldar
2024-12-11  6:32       ` [PATCH v4 2/7] git-submodule.sh: improve parsing of short options Roy Eldar
2024-12-11  6:32       ` [PATCH v4 3/7] git-submodule.sh: get rid of isnumber Roy Eldar
2024-12-11  6:32       ` [PATCH v4 4/7] git-submodule.sh: get rid of unused variable Roy Eldar
2024-12-11  6:32       ` [PATCH v4 5/7] git-submodule.sh: add some comments Roy Eldar
2024-12-11  6:32       ` [PATCH v4 6/7] git-submodule.sh: improve variables readability Roy Eldar
2024-12-11  6:32       ` [PATCH v4 7/7] git-submodule.sh: rename some variables Roy Eldar

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=xmqqzfl7rrdl.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=royeldar0@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 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).