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.
next prev parent 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).