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

Re: [PATCH v4 2/3] diff: Let "git diff -O" read orderfile from any file, fail properly

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 17, 2013, 17:54 UTC
Message-ID
<xmqqsitrmkhe.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CAJYzjmd_EWcQ5OzuZBQwhkfAtdxbPbvhVxUSsh98SzMzyz=-8w@mail.gmail.com>
Samuel Bronson <naesten@gmail.com> writes:
Show 37 quoted lines
> On Mon, Dec 16, 2013 at 4:32 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Samuel Bronson <naesten@gmail.com> writes:
>>
>>>  for i in 1 2
>>>  do
>>>       test_expect_success "orderfile using option ($i)" '
>>>       git diff -Oorder_file_$i --name-only HEAD^..HEAD >actual &&
>>>       test_cmp expect_$i actual
>>>  '
>>
>> This funny indentation in the previous step needs to be fixed, and
>> the added block below should match.
>
> Even though this results in oddly-indented --verbose output?
>
>>> +     rm -f order_fifo &&
>>> +     mkfifo order_fifo &&
>>> +     cat order_file_$i >order_fifo &
>>> +     git diff -O order_fifo --name-only HEAD^..HEAD >actual &&
>>
>> I think this part can be racy depending on which between cat and
>> "git diff" are scheduled first, no?  Try running this test under
>> load and I think you will see it deadlocked.
>>
>> Besides, the above breaks && chain; even if mkfifo breaks (hence not
>> allowing cat to run), "git diff" will go ahead and run, no?
>
> Hmm.  Well, what I really wanted to put here was a "process substitution":
>
>     git diff -O <(cat order_file_$i) --name-only HEAD^..HEAD >actual &&
>
> but I did not see this feature listed in the dash(1) manpage, so I
> assumed it wasn't allowed by POSIX.  And, having looked, I indeed
> don't see it mentioned in POSIX either.
>
> I'm not terribly surprised that I screwed up the translation to FIFOs;
> how would I really want to do it?
How about not doing a fifo?
Previous: Samuel BronsonNext: Antoine Pelisse
Message 22 of 35 in “diff: Add diff.orderfile configuration variable”
  1. diff: Add diff.orderfile configuration variableAnders Waldenborg, Oct 21, 2013
  2. Jonathan NiederOct 21, 2013
  3. Anders WaldenborgOct 25, 2013
  4. diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 6, 2013
  5. Junio C HamanoDec 6, 2013
  6. Samuel BronsonDec 7, 2013
  7. Junio C HamanoDec 9, 2013
  8. 0/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 14, 2013
  9. 1/3 diff: Tests for "git diff -O"Samuel Bronson, Dec 14, 2013
  10. 2/3 diff: Let "git diff -O" read orderfile from any file, failing when appropriateSamuel Bronson, Dec 14, 2013
  11. Junio C HamanoDec 16, 2013
  12. 3/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 14, 2013
  13. Junio C HamanoDec 16, 2013
  14. Samuel BronsonDec 16, 2013
  15. 0/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 16, 2013
  16. 1/3 diff: Tests for "git diff -O"Samuel Bronson, Dec 16, 2013
  17. 2/3 diff: Let "git diff -O" read orderfile from any file, fail properlySamuel Bronson, Dec 16, 2013
  18. Junio C HamanoDec 16, 2013
  19. Samuel BronsonDec 17, 2013
  20. Junio C HamanoDec 16, 2013
  21. Samuel BronsonDec 17, 2013
  22. Junio C HamanoDec 17, 2013
  23. Antoine PelisseDec 17, 2013
  24. Junio C HamanoDec 17, 2013
  25. Samuel BronsonDec 18, 2013
  26. Junio C HamanoDec 18, 2013
  27. Junio C HamanoDec 17, 2013
  28. 3/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 16, 2013
  29. 0/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 19, 2013
  30. 1/3 diff: Tests for "git diff -O"Samuel Bronson, Dec 19, 2013
  31. 2/3 diff: Let "git diff -O" read orderfile from any file, fail properlySamuel Bronson, Dec 19, 2013
  32. diff test: reading a directory as a file need not error outJonathan Nieder, Jan 10, 2014
  33. Junio C HamanoJan 10, 2014
  34. 3/3 diff: Add diff.orderfile configuration variableSamuel Bronson, Dec 19, 2013
  35. Junio C HamanoDec 19, 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.