git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-remote-testgit: avoid process substitution

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 25, 2013, 20:06 UTC
Message-ID
<7vsj2e2x5d.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CAMP44s3LhYt+eNaKWyoDWAPtepaOKXLhYsPXg5dPjYN8MoGA-w@mail.gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 26 quoted lines
> On Thu, Apr 25, 2013 at 1:25 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Felipe Contreras <felipe.contreras@gmail.com> writes:
>>
>>>>> ...
>>>>> +             git for-each-ref --format='%(refname) %(objectname)' |
>>>>> +             while read ref a
>>>>>               do
>>>>> -                     test $a == $b && continue
>>>>> +                     case "$before" in
>>>>> +                     *"$ref $a"*)
>>>>> +                             continue
>>>>
>>> I wonder if we should bother with this at all. The purpose of the code
>>> was mainly to show to users that they should report the success only
>>> if the refs have been updated, but the code is becoming more
>>> obfuscated, a comment should do the trick. And then, we can just
>>> report success for all the refs (and explain in the comment why).
>>
>> Are you proposing to say "ok $ref" to everything we see in the
>> resulting repository, even the ones the caller of remote-testgit did
>> not ask us to do anything with?
>>
>> Wouldn't the caller be surprised if we did so?
>
> Why would it?  The only effective difference is what you'll see
> reported in the UI, but there's no user here.

You are correct that it affects only the UI, but isn't that because the current implementation of push_update_refs_status() blindly accepts whatever 'ok' response says without checking the ref mentioned against what it tried to push out? I was wondering if that codepath should stay that way forever, or if we may want add sanity checks later. If the latter, I suspect this would manifest as an ancient bug to say 'ok' for everything we have instead of what we actually pushed out (of course, the explanation in the comment would help).

So I am OK with that simpler approach. Care to roll the conclusion of your idea into a patch?

By the way, I noticed that Documentation/gitremote-helpers.txt does not even mention these 'ok' responses for 'export' command, but they should be the same as responses to 'push'. Perhaps we can share some text between the two?

Previous: Felipe ContrerasNext: Felipe Contreras
Message 11 of 22 in “What's cooking in git.git (Apr 2013, #07; Mon, 22)”
  1. Junio C HamanoApr 22, 2013
  2. What's cooking in git.git (Apr 2013, #08; Tue, 23)Junio C Hamano, Apr 23, 2013
  3. Johannes SixtApr 24, 2013
  4. Felipe ContrerasApr 24, 2013
  5. Johannes SixtApr 24, 2013
  6. git-remote-testgit: avoid process substitutionJohannes Sixt, Apr 25, 2013
  7. Junio C HamanoApr 25, 2013
  8. Felipe ContrerasApr 25, 2013
  9. Junio C HamanoApr 25, 2013
  10. Felipe ContrerasApr 25, 2013
  11. Junio C HamanoApr 25, 2013
  12. Felipe ContrerasApr 25, 2013
  13. Felipe ContrerasApr 26, 2013
  14. Junio C HamanoApr 26, 2013
  15. Felipe ContrerasApr 26, 2013
  16. Re* [PATCH] git-remote-testgit: avoid process substitutionJunio C Hamano, Apr 26, 2013
  17. Johannes SixtApr 27, 2013
  18. Junio C HamanoApr 29, 2013
  19. 0/3 De-bashing remote-testgitJunio C Hamano, Apr 29, 2013
  20. 1/3 git-remote-testgit: avoid process substitutionJunio C Hamano, Apr 29, 2013
  21. 2/3 git-remote-testgit: further remove some bashismsJunio C Hamano, Apr 29, 2013
  22. 3/3 git-remote-testgit: build it to run under $SHELL_PATHJunio C Hamano, Apr 29, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.