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

Re: [PATCH] describe --contains: default to HEAD when no commit-ish is given

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 24, 2015, 18:47 UTC
Message-ID
<xmqqd1yc4j6p.fsf@gitster.dls.corp.google.com>
In-Reply-To
<20150824181417.Horde.2DAlveA2ZaXbdApUl8wLOQ8@webmail.informatik.kit.edu>
SZEDER Gábor <szeder@ira.uka.de> writes:
Show 27 quoted lines
>> By the way, I usually prefer a fatter 'else' clause when everything
>> else is equal, i.e.
>>
>> 	if (!argc)
>>         	argv_array_push(&args, "HEAD"); /* default to HEAD */
>> 	else {
>> 		while (*argv) {
>>                 	...
>> 		}
>> 	}
>>
>> because it is easy to miss tiny else-clause while reading code, but
>> it is harder to miss tiny then-clause.  In this case, however, the
>> while loop can be replaced with argv_array_pushv() these days, so
>> perhaps
>>
>> 	if (!argc)
>>         	argv_array_push(&args, "HEAD"); /* default to HEAD ... */
>> 	else
>> 		argv_array_pushv(&args, argv); /* or relay what we got */
>>
>> or something?
>
> Indeed, I didn't notice argv_array_pushv() being added, log tells me
> it happened quite recently.  I suppose with both branches becoming a
> one-liner the order of them can remain what it was in the patch,
> this sparing the negation from 'if (!argc)'.

Another reason to favor the way the code is illustrated for educational purposes above is it is easier to see exceptional case first, i.e. "if we have nothing then we do this special thing, but otherwise we do the normal thing".

But that is a much weaker preference than the preference to "fatter else"; I could go either way.

> v2 comes in a minute.
Thanks.
Previous: SZEDER Gábor
Message 9 of 9 in “describe: make '--always' fallback work after '--exact-match' failed”
  1. describe: make '--always' fallback work after '--exact-match' failedSZEDER Gábor, Aug 20, 2015
  2. Junio C HamanoAug 20, 2015
  3. SZEDER GáborAug 21, 2015
  4. Junio C HamanoAug 21, 2015
  5. describe --contains: default to HEAD when no commit-ish is givenSZEDER Gábor, Aug 21, 2015
  6. Junio C HamanoAug 21, 2015
  7. SZEDER GáborAug 24, 2015
  8. describe --contains: default to HEAD when no commit-ish is givenSZEDER Gábor, Aug 24, 2015
  9. Junio C HamanoAug 24, 2015

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.