From: Jens Lehmann <Jens.Lehmann@web.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: Fredrik Gustafsson <iveqy@iveqy.com>,
git@vger.kernel.org, hvoigt@hvoigt.net
Subject: Re: [PATCH] Use correct value when hinting strbuf_read()
Date: Sun, 26 Jun 2011 22:32:30 +0200 [thread overview]
Message-ID: <4E07975E.5010900@web.de> (raw)
In-Reply-To: <7vzkl4z8nl.fsf@alter.siamese.dyndns.org>
Am 26.06.2011 21:37, schrieb Junio C Hamano:
> Fredrik Gustafsson <iveqy@iveqy.com> writes:
>
>> diff --git a/submodule.c b/submodule.c
>> index b6dec70..86baf42 100644
>> --- a/submodule.c
>> +++ b/submodule.c
>> @@ -326,7 +326,7 @@ static int is_submodule_commit_present(const char *path, unsigned char sha1[20])
>> cp.no_stdin = 1;
>> cp.out = -1;
>> cp.dir = path;
>> - if (!run_command(&cp) && !strbuf_read(&buf, cp.out, 1024))
>> + if (!run_command(&cp) && !strbuf_read(&buf, cp.out, 41))
>> is_present = 1;
>
> The change is not incorrect per-se. If the original used 41 and a patch
> tried to update it to 1024, we wouldn't accept such a patch, but on the
> other hand, I do not think this patch would make much difference (any
> value would do here as it is merely a hint, and if the patch does make a
> difference, we would have a bigger problem, either by forking too often
> with run_command(), or by leaking buf.buf every time we do so).
Makes sense.
> It however raises a more interesting question.
>
> This function tries to see, even a commit object name, if it is fully
> connected to any ref (IOW the tip of a branch or a tag). There are three
> outcomes:
>
> - It is reachable from a ref, and we get nothing from the command;
>
> - It is not, and we get the commit object name back (and nothing else);
>
> - We get something unexpected. Perhaps an error found in the repository
> (strictly speaking I do not think we would catch this as we are not
> capturing stderr at all).
>
> The first one is what this if() condition catches, but we do not tell the
> second and the third apart. I wonder if we should.
Hmm, maybe we should die() if run_command() doesn't return 0? (The intention
behind not catching stderr was that the reason for the failure of rev-list
should visible to the user)
prev parent reply other threads:[~2011-06-26 20:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-15 18:08 [PATCH] Use correct value when hinting strbuf_read() Fredrik Gustafsson
2011-06-26 19:37 ` Junio C Hamano
2011-06-26 20:32 ` Jens Lehmann [this message]
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=4E07975E.5010900@web.de \
--to=jens.lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hvoigt@hvoigt.net \
--cc=iveqy@iveqy.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.