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

Re: [RFC PATCH] ref-filter: sort detached HEAD lines firstly

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jun 11, 2019, 00:41 UTC
Message-ID
<20190611004106.GB64137@google.com>
In-Reply-To
<20190610234918.GA10396@comcast.net>
Hi,
Matthew DeVore wrote:
> On Sun, Jun 09, 2019 at 10:17:19AM +0200, Johannes Schindelin wrote:
Show 14 quoted lines
>> I find that it makes sense in general to suppress one's urges regarding
>> introducing `{ ... }` around one-liners when the patch does not actually
>> require it.
>>
>> For example, I found this patch harder than necessary to read because of
>> it.
>
> I understand the desire to make the patch itself clean, and I sometimes try to
> do that to a fault, but the style as I understand it is to put { } around all
> if branches if only one branch requires it. Since I'm already modifying the
> "else if (cmp_type == FIELD_STR)" line, I decided to put the } at the start of
> the line and modify the if (s->version) line as well. So only one line was
> modified "in excess." I think the temporary cost of the verbose patch is
> justified to keep the style consistent in narrow code fragments.

Git seems to be inconsistent about this. Documentation/CodingGuidelines says

        - When there are multiple arms to a conditional and some of them
          require braces, enclose even a single line block in braces for
          consistency. E.g.:

so you have some cover from there (and it matches what I'm used to, too). :)

[...]
Show 9 quoted lines
>>> +	LC_ALL=$zh_CN_locale LC_MESSAGES=$zh_CN_locale \
>>> +		git -C r1 branch >actual &&
>>> +	git -C r1 checkout - &&
>>
>> Why call `checkout` after `branch`? That's unnecessary, we do not verify
>> anything after that call.
>
> It's to get the repo into a neutral state in case an additional testcase is
> added in the future.

For this kind of thing, we tend to use test_when_finished so that the test ends up in a clean state even if it fails.

[...]
Show 14 quoted lines
> test_expect_success GETTEXT_ZH_LOCALE 'detached head sorts before branches' '
> 	# Ref sorting logic should put detached heads before the other
> 	# branches, but this is not automatic when a branch name sorts
> 	# lexically before "(" or the full-width "(" (Unicode codepoint FF08).
> 	# The latter case is nearly guaranteed for the Chinese locale.
>
> 	git -C r1 checkout HEAD^{} -- &&
> 	LC_ALL=$zh_CN_locale LC_MESSAGES=$zh_CN_locale \
> 		git -C r1 branch >actual &&
> 	git -C r1 checkout - &&
>
> 	head -n 1 actual >first &&
> 	# The first line should be enclosed by full-width parenthesis.
> 	grep '$'\xef\xbc\x88.*\xef\xbc\x89'' first &&

nit: older shells do not know how to do $'\x01' interpolation. Probably best to use the raw UTF-8 directly here (it will be more readable anyway).

Thanks, Jonathan

Previous: Matthew DeVoreNext: Matthew DeVore
Message 5 of 36 in “ref-filter: sort detached HEAD lines firstly”
  1. ref-filter: sort detached HEAD lines firstlyMatthew DeVore, Jun 6, 2019
  2. Johannes SchindelinJun 9, 2019
  3. Johannes SchindelinJun 9, 2019
  4. Matthew DeVoreJun 10, 2019
  5. Jonathan NiederJun 11, 2019
  6. Matthew DeVoreJun 11, 2019
  7. Junio C HamanoJun 11, 2019
  8. 0/1 Sort detached HEAD lines firstlyMatthew DeVore, Jun 11, 2019
  9. 1/1 ref-filter: sort detached HEAD lines firstlyMatthew DeVore, Jun 11, 2019
  10. Junio C HamanoJun 11, 2019
  11. Junio C HamanoJun 12, 2019
  12. Matthew DeVoreJun 13, 2019
  13. Matthew DeVoreJun 12, 2019
  14. Johannes SchindelinJun 12, 2019
  15. Jeff KingJun 13, 2019
  16. 0/1 Sort detached heads line firstlyMatthew DeVore, Jun 18, 2019
  17. 1/1 ref-filter: sort detached HEAD lines firstlyMatthew DeVore, Jun 18, 2019
  18. Junio C HamanoJun 19, 2019
  19. 0/5 branch: --sort improvementsÆvar Arnfjörð Bjarmason, Jan 6, 2021
  20. 1/7 branch: change "--local" to "--list" in commentÆvar Arnfjörð Bjarmason, Jan 7, 2021
  21. 0/7 branch: --sort improvementsÆvar Arnfjörð Bjarmason, Jan 7, 2021
  22. 4/7 ref-filter: move "cmp_fn" assignment into "else if" armÆvar Arnfjörð Bjarmason, Jan 7, 2021
  23. 2/7 branch tests: add to --sort testsÆvar Arnfjörð Bjarmason, Jan 7, 2021
  24. 3/7 ref-filter: add braces to if/else if/else chainÆvar Arnfjörð Bjarmason, Jan 7, 2021
  25. 6/7 branch: sort detached HEAD based on a flagÆvar Arnfjörð Bjarmason, Jan 7, 2021
  26. 7/7 branch: show "HEAD detached" first under reverse sortÆvar Arnfjörð Bjarmason, Jan 7, 2021
  27. 5/7 ref-filter: move ref_sorting flags to a bitfieldÆvar Arnfjörð Bjarmason, Jan 7, 2021
  28. Junio C HamanoJan 7, 2021
  29. 1/5 branch: change "--local" to "--list" in commentÆvar Arnfjörð Bjarmason, Jan 6, 2021
  30. 2/5 branch tests: add to --sort testsÆvar Arnfjörð Bjarmason, Jan 6, 2021
  31. Junio C HamanoJan 6, 2021
  32. 4/5 branch: use the "detached_head_first" sorting optionÆvar Arnfjörð Bjarmason, Jan 6, 2021
  33. 3/5 ref-filter: add a "detached_head_first" sorting optionÆvar Arnfjörð Bjarmason, Jan 6, 2021
  34. Junio C HamanoJan 6, 2021
  35. 5/5 branch: show "HEAD detached" first under reverse sortÆvar Arnfjörð Bjarmason, Jan 6, 2021
  36. Junio C HamanoJan 6, 2021

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.