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

Re: [PATCH 0/4] Re: [PATCH 3/4] t: rev-parse-parents: avoid yoda conditions

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Sep 8, 2013, 03:11 UTC
Message-ID
<CAMP44s3O=cHAtHOj41MccBDOausukb49MV-E6jib6n6czs+p3Q@mail.gmail.com>
In-Reply-To
<20130904183559.GA3465@sigill.intra.peff.net>
On Wed, Sep 4, 2013 at 1:36 PM, Jeff King <peff@peff.net> wrote:
Show 31 quoted lines
> On Wed, Sep 04, 2013 at 10:38:03AM -0700, Junio C Hamano wrote:
>
>> >> This is way off tangent, but I am somewhat sympathetic to Felipe's
>> >> "compare actual with expect", with reservations.
>> >
>> > This isn't an argument either way, but note that JUnit (and NUnit and
>> > PHPUnit) all have assertEquals methods that take the arguments in the
>> > order "expect, actual".  I've always assumed that Git's test framework
>> > was imitating that,...
>>
>> No.  See 82ebb0b6 (add test_cmp function for test scripts,
>> 2008-03-12).  The "test_cmp" was a replacement for "diff -u", and
>> the same order we fed "diff -u", i.e. expect then actual, was
>> carried over.
>
> I don't think it was intentional at the time. But over the intervening 5
> years, I have noticed that I certainly think of "test_cmp A B" as
> "differences from A to B", and the order makes sense. IOW, the "test_cmp
> is diff" abstraction is leaky, and that is fine (if it were not leaky,
> then order would not matter at all, but it clearly does).
>
> But let's take a step back. This seems like an endian-ness issue to me.
> I.e., some people prefer one order for test assertions, and other people
> prefer the other. Is anyone actually right, or is this simply a matter
> of preference? And if it is simply a matter of preference, then why
> bother going through the pain of changing the current project standard?
>
> Though I prefer the current, I can certainly live and adapt to a changed
> standard, and I do not mind doing so if there is a good reason. But I've
> yet to see any argument beyond "it is not what I like". Which to me
> argues for the status quo as the path of least resistance.
Didn't Junio already provided reasoning?
Here's more; human semantics:

Computer, compare A with B cmp(A, B)

Why would I write?
cmp(B, A)
Could you even construct an English sentence that starts with B, and then A?
-- 
Felipe Contreras
Previous: Junio C HamanoNext: Jeff King
Message 29 of 45 in “t: rev-parse-parents: cleanups”
  1. 0/4 t: rev-parse-parents: cleanupsFelipe Contreras, Sep 2, 2013
  2. 1/4 t: rev-parse-parents: fix styleFelipe Contreras, Sep 2, 2013
  3. 2/4 t: rev-parse-parents: fix weird ! notationFelipe Contreras, Sep 2, 2013
  4. 3/4 t: rev-parse-parents: avoid yoda conditionsFelipe Contreras, Sep 2, 2013
  5. Jeff KingSep 3, 2013
  6. SZEDER GáborSep 3, 2013
  7. Jeff KingSep 3, 2013
  8. Felipe ContrerasSep 3, 2013
  9. SZEDER GáborSep 3, 2013
  10. Felipe ContrerasSep 3, 2013
  11. SZEDER GáborSep 3, 2013
  12. 0/4 Re: [PATCH 3/4] t: rev-parse-parents: avoid yoda conditionsJonathan Nieder, Sep 3, 2013
  13. 1/4 rev-parse test: modernize quoting and whitespaceJonathan Nieder, Sep 3, 2013
  14. 2/4 rev-parse test: use test_must_fail, not "if <command>; then false; fi"Jonathan Nieder, Sep 3, 2013
  15. Felipe ContrerasSep 3, 2013
  16. 3/4 rev-parse test: use test_cmp instead of "test" builtinJonathan Nieder, Sep 3, 2013
  17. Junio C HamanoSep 3, 2013
  18. Jonathan NiederSep 4, 2013
  19. Felipe ContrerasSep 3, 2013
  20. 4/4 rev-parse test: use standard test functions for setupJonathan Nieder, Sep 3, 2013
  21. 4/4 rev-parse test: use standard test functions for setupJonathan Nieder, Sep 3, 2013
  22. Jeff KingSep 3, 2013
  23. Felipe ContrerasSep 3, 2013
  24. Junio C HamanoSep 4, 2013
  25. John KeepingSep 4, 2013
  26. Junio C HamanoSep 4, 2013
  27. Jeff KingSep 4, 2013
  28. Junio C HamanoSep 4, 2013
  29. Felipe ContrerasSep 8, 2013
  30. Jeff KingSep 8, 2013
  31. Felipe ContrerasSep 8, 2013
  32. Felipe ContrerasSep 8, 2013
  33. Jeff KingSep 8, 2013
  34. Felipe ContrerasSep 8, 2013
  35. Jeff KingSep 8, 2013
  36. Felipe ContrerasSep 8, 2013
  37. Jeff KingSep 8, 2013
  38. Felipe ContrerasSep 9, 2013
  39. Junio C HamanoSep 8, 2013
  40. Felipe ContrerasSep 8, 2013
  41. Philip OakleySep 8, 2013
  42. Junio C HamanoSep 3, 2013
  43. Junio C HamanoSep 3, 2013
  44. Felipe ContrerasSep 3, 2013
  45. 4/4 t: rev-parse-parents: simplify setupFelipe Contreras, Sep 2, 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.