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

Re: [PATCH 7/8] config: add core.untrackedCache

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 8, 2015, 22:43 UTC
Message-ID
<xmqqfuzck1dp.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqqsi3ckadi.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 22 quoted lines
> Christian Couder <christian.couder@gmail.com> writes:
>
>> When we know that mtime is fully supported by the environment, we
>> might want the untracked cache to be always used by default without
>> any mtime test or kernel version check being performed.
>>
>> Also when we know that mtime is not supported by the environment,
>> for example because the repo is shared over a network file system,
>> then we might want 'git update-index --untracked-cache' to fail
>> immediately instead of preforming tests (because it might work on
>> some systems using the repo over the network file system but not
>> others).
>> ...
> The logic in this paragraph is fuzzy to me.  Shouldn't the config
> give a sensible default, that is overriden by command line options?
> I agree that it is insane to do a runtime check when the user says
> "update-index --untracked-cache" to enable it, as the user _knows_
> that enabling it would help (or the user _knows_ that she wants to
> play with it).  Similarly, shouldn't the config be ignored when the
> user says "update-index --no-untracked-cache" (hence removing the
> untracked cache from the resulting index no matter the config is set
> to)?  ...

As I think about this more, it really seems to me that we shouldn't need to make this configuration variable that special. Because I think it is a *BUG* in the current implementation to do the runtime check even when the user explicitly tells us to use untracked-cache, I'd imagine something along the lines of the following would be a lot simpler, easier to understand and a generally more useful bugfix:

 1 Add one boolean configuration variable, core.untrackedCache, that
   defaults to 'false'.
 2 When creating an index file in an empty repository, enable the
   untracked cache in the index (even without the user runninng
   "update-index --untracked-cache") iff the configuration is set to
   'true'.  No runtime check necessary.
 3 When working on an existing index file, unless the operation is
   "update-index --[no-]untracked-cache", keep the current setting,
   regardless of this configuration variable.  No runtime check
   necessary.
 4 "update-index --[no-]untracked-cache" should enable or disable
   the untracked cache as the user tells us, regardless of the
   configuration variable.  No runtime check necessary.

It is OK to then add an "auto-detect" on top of the above, that would only affect the second bullet point, like so:

 2a When creating an index file in an empty repository, if the
    configuration is set to 'auto', do the lengthy runtime check and
    enable the untracked cache in the index (even without the user
    runninng "update-index --untracked-cache").
without changing any other in the first 4-bullet list.
Am I missing some other requirements?
Previous: Junio C HamanoNext: Christian Couder
Message 22 of 54 in “Untracked cache improvements”
  1. 0/8 Untracked cache improvementsChristian Couder, Dec 8, 2015
  2. 1/8 update-index: add untracked cache notificationsChristian Couder, Dec 8, 2015
  3. Junio C HamanoDec 8, 2015
  4. Christian CouderDec 11, 2015
  5. 2/8 update-index: use enum for untracked cache optionsChristian Couder, Dec 8, 2015
  6. Junio C HamanoDec 8, 2015
  7. Christian CouderDec 10, 2015
  8. Junio C HamanoDec 10, 2015
  9. Christian CouderDec 11, 2015
  10. Junio C HamanoDec 11, 2015
  11. Christian CouderDec 12, 2015
  12. 3/8 update-index: add --test-untracked-cacheChristian Couder, Dec 8, 2015
  13. 4/8 update-index: move 'uc' var declarationChristian Couder, Dec 8, 2015
  14. 5/8 dir: add add_untracked_cache()Christian Couder, Dec 8, 2015
  15. Torsten BögershausenDec 9, 2015
  16. Christian CouderDec 11, 2015
  17. 6/8 dir: add remove_untracked_cache()Christian Couder, Dec 8, 2015
  18. Junio C HamanoDec 8, 2015
  19. Torsten BögershausenDec 9, 2015
  20. 7/8 config: add core.untrackedCacheChristian Couder, Dec 8, 2015
  21. Junio C HamanoDec 8, 2015
  22. Junio C HamanoDec 8, 2015
  23. Christian CouderDec 14, 2015
  24. Junio C HamanoDec 14, 2015
  25. Junio C HamanoDec 14, 2015
  26. Christian CouderDec 15, 2015
  27. Torsten BögershausenDec 15, 2015
  28. Christian CouderDec 15, 2015
  29. Duy NguyenDec 15, 2015
  30. Christian CouderDec 15, 2015
  31. Ævar Arnfjörð BjarmasonDec 15, 2015
  32. Christian CouderDec 15, 2015
  33. Junio C HamanoDec 15, 2015
  34. Ævar Arnfjörð BjarmasonDec 15, 2015
  35. Junio C HamanoDec 15, 2015
  36. Ævar Arnfjörð BjarmasonDec 16, 2015
  37. Jeff KingDec 16, 2015
  38. Junio C HamanoDec 16, 2015
  39. Junio C HamanoDec 16, 2015
  40. Jeff KingDec 17, 2015
  41. Duy NguyenDec 17, 2015
  42. Junio C HamanoDec 21, 2015
  43. Duy NguyenDec 22, 2015
  44. Junio C HamanoDec 22, 2015
  45. Junio C HamanoDec 24, 2015
  46. Duy NguyenDec 24, 2015
  47. Junio C HamanoDec 27, 2015
  48. Christian CouderDec 24, 2015
  49. Duy NguyenDec 17, 2015
  50. Christian CouderDec 18, 2015
  51. Torsten BögershausenDec 9, 2015
  52. 8/8 t7063: add tests for core.untrackedCacheChristian Couder, Dec 8, 2015
  53. Fwd: [PATCH 7/8] config: add core.untrackedCacheChristian Couder, Dec 18, 2015
  54. Fwd: [PATCH 7/8] config: add core.untrackedCacheChristian Couder, Dec 18, 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.