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

Re: [PATCH v4 09/10] config: add core.untrackedCache

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 4, 2016, 18:09 UTC
Message-ID
<xmqqd1thp683.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAP8UFD35VZ3QCLg525RCpacDrRHqt7EhxV1MeL-9xxHf8BCZ+A@mail.gmail.com>
Christian Couder <christian.couder@gmail.com> writes:
> What scenario do you have in mind where people would have to do things
> differently?

They eventually will see a system in which that they do not have do anything after flipping the configuration, yet will still see stale "you must run 'git status'" on their websearches and SO questions, which would be a cost for them to remember that they no longer have to do the extra 'git status'.

Show 14 quoted lines
>> Itt sounds like somewhat a short-sighted mindset to design the
>> system, and I was hoping that by now you would have become better
>> than that.
>>
>> The real question is what are the problems in implementing this in
>> the way Duy suggested in the previous discussion.  The answer may
>> fall into somewhere between "that approach does not work in such and
>> such cases, so this is the best I could come up with" and "I know
>> that approach is far superiour, but I have invested too much in this
>> inferiour approach and refuse to rework it further to make it better."
>
> My question is why should I invest time thinking about and testing
> another approach when the current approach seems simpler, less bug
> prone, faster and without any downside?

As to the downside, I think Duy's "at the time we read the index" is the least problematic route from the maintainability point of view. What are you doing to help people who make changes in the future to the system to make "git add $dir" or "git clean $dir" aware of the untracked cache not to forget doing the "oh, the config says we want to add the untracked cache if missing, so we do it here" in their new codepath? Whey you say "This is only about status", you are essentially saying "It's outside the scope of my job, I was hired to improve the usability of 'git status' with untracked cache and I do not care about the longer term overall health of the system".

Now, you said something about "simpler", "less bug prone" and "faster" (I doubt you can make such statements that involve comparison without investing time thinking about other approaches, though, but that is a separate topic). That would mean that you see "complexity", "error prone-ness", and "slowness" in the way Duy suggested---that is exactly the question I asked you in the message you are responding to. What are the problems in implementing this in the way Duy suggested? What kind of "complexity" do you see? Which part is more "error prone"? Why does it have to be "slower"?

Show 16 quoted lines
>> Using of not using untracked-cache is (supposed to be) purely
>> performance and not correctness thing, and I do not think the users
>> and the scripts do not deserve to see a failure from "update-index
>> --untracked-cache" only because there is a stray core.untrackedCache
>> set to 'false' somewhere.
>
> This "stray core.untrackedCache" could not have been put there by
> users of previous git versions because it has no meaning before this
> patch series. So I don't understand why you call it "a stray
> core.untrackedCache".
>
> It is no more "stray" to me than the call to "update-index --untracked-cache".
>
> If it has been put in /etc/git.config by an admin and if the user
> thinks he knows better, the user can still change the config locally
> to override the system one.

You are assuming that everybody constantly looks at /etc/git.config to make sure evil admins won't do things that affect their repositories and use of Git in potentially negative way. I doubt anybody does.

By the way, I understand that this "stray one affects without user being aware of it" is the primary the reason why Ævar wants this 'configuration automatically adds untracked cache even to the existing index' feature---everybody will get it without even be aware of the change their admins make. Which may be a good thing for those who use the configuration variable.

Previous: Christian CouderNext: Christian Couder
Message 21 of 24 in “Untracked cache improvements”
  1. 00/10 Untracked cache improvementsChristian Couder, Dec 29, 2015
  2. 01/10 dir: free untracked cache when removing itChristian Couder, Dec 29, 2015
  3. Junio C HamanoDec 29, 2015
  4. 02/10 update-index: use enum for untracked cache optionsChristian Couder, Dec 29, 2015
  5. 03/10 update-index: add --test-untracked-cacheChristian Couder, Dec 29, 2015
  6. Junio C HamanoDec 29, 2015
  7. 04/10 update-index: add untracked cache notificationsChristian Couder, Dec 29, 2015
  8. 05/10 update-index: move 'uc' var declarationChristian Couder, Dec 29, 2015
  9. 06/10 dir: add {new,add}_untracked_cache()Christian Couder, Dec 29, 2015
  10. 07/10 dir: add remove_untracked_cache()Christian Couder, Dec 29, 2015
  11. 08/10 dir: simplify untracked cache "ident" fieldChristian Couder, Dec 29, 2015
  12. Junio C HamanoDec 29, 2015
  13. Christian CouderDec 30, 2015
  14. Torsten BögershausenDec 30, 2015
  15. Christian CouderDec 30, 2015
  16. 09/10 config: add core.untrackedCacheChristian Couder, Dec 29, 2015
  17. Junio C HamanoDec 29, 2015
  18. Christian CouderDec 30, 2015
  19. Junio C HamanoDec 30, 2015
  20. Christian CouderDec 31, 2015
  21. Junio C HamanoJan 4, 2016
  22. Christian CouderJan 8, 2016
  23. Junio C HamanoJan 8, 2016
  24. 10/10 t7063: add tests for core.untrackedCacheChristian Couder, Dec 29, 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.