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

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

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Apr 25, 2013, 17:50 UTC
Message-ID
<CAMP44s0FHnm0xeSuzVNxVhn_rMQ=oKqoDxCU+OWGKPNOxmnGyA@mail.gmail.com>
In-Reply-To
<7vehdy7j5f.fsf@alter.siamese.dyndns.org>
On Thu, Apr 25, 2013 at 9:57 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 40 quoted lines
> Johannes Sixt <j.sixt@viscovery.net> writes:
>
>> From: Johannes Sixt <j6t@kdbg.org>
>>
>> Bash on Windows does not implement process substitution.
>>
>> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
>> ---
>> ...
>> Here is a fix. It assumes that the list of refs after the import is
>> a superset of the refs before the import. (Can refs be deleted
>> via fast-import?)
>>
>>  git-remote-testgit | 12 +++++++-----
>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/git-remote-testgit b/git-remote-testgit
>> index 23c9d40..e99d5fa 100755
>> --- a/git-remote-testgit
>> +++ b/git-remote-testgit
>> @@ -91,13 +91,15 @@ do
>>
>>               git fast-import "${testgitmarks_args[@]}" --quiet
>>
>> -             after=$(git for-each-ref --format='%(refname) %(objectname)')
>> -
>>               # figure out which refs were updated
>> -             join -e 0 -o '0 1.2 2.2' -a 2 <(echo "$before") <(echo "$after") |
>> -             while read ref a b
>> +             git for-each-ref --format='%(refname) %(objectname)' |
>> +             while read ref a
>>               do
>> -                     test $a == $b && continue
>> +                     case "$before" in
>> +                     *"$ref $a"*)
>> +                             continue
>
> This just like the original 'join' depends on the two output from
> for-each-ref to be sorted the same way, which is true and fine.  But
> I wonder one thing.  When $before has this in it:

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).

-- 
Felipe Contreras
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 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.