From: Felipe Contreras <felipe.contreras@gmail.com>
To: Stefano Lattarini <stefano.lattarini@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Jeff King <peff@peff.net>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Elijah Newren <newren@gmail.com>,
Ilari Liusvaara <ilari.liusvaara@elisanet.fi>,
Sverre Rabbelier <srabbelier@gmail.com>
Subject: Re: [PATCH v4 04/14] Add new simplified git-remote-testgit
Date: Fri, 2 Nov 2012 17:16:18 +0100 [thread overview]
Message-ID: <CAMP44s38oBadxCew+mWzQJG1o1g++Pi4G50FuHzRO-c1sAk53Q@mail.gmail.com> (raw)
In-Reply-To: <5093EEB4.3040402@gmail.com>
On Fri, Nov 2, 2012 at 5:03 PM, Stefano Lattarini
<stefano.lattarini@gmail.com> wrote:
> On 11/02/2012 04:42 PM, Felipe Contreras wrote:
>> What happens when you call this with:
>>
>> ./script "alias with spaces"
>>
> '$alias' will correctly expand to "alias with spaces". Try out:
>
> $ sh -c 'alias=$1; echo "$alias"' dummy '1 2*3'
> 1 2*3
>
> This works consistently with every known shell (even non-POSIX
> relics like Solaris /bin/sh).
All right.
>> _If_ we want this as POSIX, yeah.
>>
> Why don't we? Why add an extra requirement for a test that
>
> 1. can be easily written in POSIX shell, and
> 2. tests a feature that doesn't require bash to work (unless
> I'm sorely mistaken, that is)?
>
> Honest question. But of course, if the Git active contributors
> deem the extra requirement (which is not an invasive one, given
> how often bash is installed even on non-Linux systems) acceptable
> in order to have the test case simpler and clearer, feel free to
> disregard all my observations in this thread.
Because the code will be more complicated. Most of the changes
required are relatively small, so it's not a big issue, but I would
like to see how you replace the code that uses associative arrays. I
don't know know of a clean, simple way to do it in POSIX. If you can
find one, I don't see any strong reason to use bash.
>>>> +while read line; do
>>>> + case "$line" in
>>>>
>>> Useless double quoting (my previous observation about Git coding
>>> guidelines applies here as well, of course).
>>
>> What if line has multiple spaces?
>>
> Still no problem, as in the case of the 'alias=$1' assignment before:
>
> $ sh -c 'case $1 in *x" "x*) echo ok;; *) exit 1;; esac' dummy 'x x'
> ok
All right.
>>>> + echo "feature import-marks=$gitmarks"
>>>> + echo "feature export-marks=$gitmarks"
>>>> + git fast-export --use-done-feature --{import,export}-marks="$testgitmarks" $refs | \
>>>>
>>> Better avoid the tricky {foo,bar} bashism:
>>>
>>> git fast-export --use-done-feature \
>>> --import-marks="$testgitmarks" \
>>> --export-marks="$testgitmarks" \
>>> $refs | \
>>
>> If that's what we want, yeah.
>>
> Honestly, I find my longer-and-more-explicit version clearer, even
> if you can assume bash for your script. But that's a matter of
> personal preference (sorry for not stating that right away), so
> feel free to ignore it if you decide to keep the bash requirement
> in the end.
And I prefer the other form. I fact, I would prefer if both tools
simply had a --marks option set both, and didn't require the file to
be created beforehand. I've _never_ seen a situation where separate
marks for import and export made sense. But that's off-topic.
If you find a way to replace the associative arrays code, I have no
trouble in switching this to the POSIX version.
Cheers.
--
Felipe Contreras
next prev parent reply other threads:[~2012-11-02 16:16 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-02 2:02 [PATCH v4 00/14] fast-export and remote-testgit improvements Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 01/14] fast-export: avoid importing blob marks Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 02/14] remote-testgit: fix direction of marks Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 03/14] Rename git-remote-testgit to git-remote-testpy Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 04/14] Add new simplified git-remote-testgit Felipe Contreras
2012-11-02 13:55 ` Stefano Lattarini
2012-11-02 14:00 ` Jeff King
2012-11-02 15:42 ` Felipe Contreras
2012-11-02 16:03 ` Stefano Lattarini
2012-11-02 16:16 ` Felipe Contreras [this message]
2012-11-02 2:02 ` [PATCH v4 05/14] remote-testgit: get rid of non-local functionality Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 06/14] remote-testgit: remove irrelevant test Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 07/14] remote-testgit: cleanup tests Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 08/14] remote-testgit: exercise more features Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 09/14] remote-testgit: report success after an import Felipe Contreras
2012-11-02 13:58 ` Stefano Lattarini
2012-11-02 15:46 ` Felipe Contreras
2012-11-02 16:08 ` Stefano Lattarini
2012-11-02 16:19 ` Felipe Contreras
2012-11-02 16:23 ` Stefano Lattarini
2012-11-02 17:19 ` Jeff King
2012-11-02 2:02 ` [PATCH v4 10/14] remote-testgit: make clear the 'done' feature Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 11/14] fast-export: trivial cleanup Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 12/14] fast-export: fix comparison in tests Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 13/14] fast-export: make sure updated refs get updated Felipe Contreras
2012-11-02 2:02 ` [PATCH v4 14/14] fast-export: don't handle uninteresting refs Felipe Contreras
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=CAMP44s38oBadxCew+mWzQJG1o1g++Pi4G50FuHzRO-c1sAk53Q@mail.gmail.com \
--to=felipe.contreras@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ilari.liusvaara@elisanet.fi \
--cc=newren@gmail.com \
--cc=peff@peff.net \
--cc=srabbelier@gmail.com \
--cc=stefano.lattarini@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).