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

Re: [PATCH 2/2] dir: improve naming of oid_stat fields in two structs

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 16, 2020, 18:31 UTC
Message-ID
<xmqqsgi8882t.fsf@gitster.c.googlers.com>
In-Reply-To
<CAHd-oW4OpoW0Qbp6_HfFiXRXasLXVnw3hDkzDG3S4WR3yH9Wuw@mail.gmail.com>
Matheus Tavares Bernardino <matheus.bernardino@usp.br> writes:
Show 17 quoted lines
>> I also am wondering if we can do without any prefix, i.e. just call
>> them "info_exclude" and "excludes_file", because the field names are
>> private to each struct and there is no strong reason to have a
>> common prefix among fields in a single struct.  Rather, it is more
>> important for the fields of the same type in a single struct to have
>> distinct names so that the reader can easily tell them apart and the
>> reason for their use is straight-forward to understand, and the two
>> names without any prefix convey their distinction pretty well, I
>> would think.
>
> Yes, I guess removing the prefix wouldn't make the names less
> descriptive. However, especially for "ss_excludes_file", I think using
> just "excludes_file" might induce the reader to think that the field
> refers to a "char *" holding a path. (We also have a "excludes_file"
> global variable in environment.c which is used like that). What if we
> renamed them to "oidst_info_exclude" and "oidst_excludes_file", would
> that be too verbose?

The potential for confusion with "path to these files" is real, I would think, so they may benefit from some prefix.

But instead of basing the prefix on their type, can we name it after what this struct holds about the excludes file, and what the data the struct holds is used for? Is "oidst" something that conveys it well to the readers of the code?

I guess the definition of "struct oid_stat" in dir.h should say what it is for and why it is called oid_stat, or even better yet, rename it to what is better than "this is a random bag to hold the file stat data and an object id for an unspecified purpose". IOW, it would be better for the name of a structure to say what's in it, but what the data it holds are for.

In a sense, this struct is a pared down version of cache_entry that keeps the filesystem stat data to allow us quickly find if the path was modified, and also lets us know if two contents are the same without comparing bytes. It is a mechanism for us to tell validity of our cached data. "struct path_validity" perhaps? I dunno.

Previous: Matheus Tavares BernardinoNext: Junio C Hamano
Message 7 of 13 in “dir: update outdated fields and comments about oid_stat”
  1. 0/2 dir: update outdated fields and comments about oid_statMatheus Tavares, Mar 16, 2020
  2. 1/2 dir: fix outdated comment on add_patterns()Matheus Tavares, Mar 16, 2020
  3. 2/2 dir: improve naming of oid_stat fields in two structsMatheus Tavares, Mar 16, 2020
  4. Junio C HamanoMar 16, 2020
  5. Patryk ObaraMar 16, 2020
  6. Matheus Tavares BernardinoMar 16, 2020
  7. Junio C HamanoMar 16, 2020
  8. Junio C HamanoMar 16, 2020
  9. Jeff KingMar 16, 2020
  10. 0/3 dir: update outdated field names and comments about oid_statMatheus Tavares, Mar 17, 2020
  11. 1/3 dir: fix outdated comment on add_patterns()Matheus Tavares, Mar 17, 2020
  12. 2/3 dir: improve naming of oid_stat fields in two structsMatheus Tavares, Mar 17, 2020
  13. 3/3 dir: update outdated comments about untracked cacheMatheus Tavares, Mar 17, 2020

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.