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

Re: [PATCH v3 1/3] factor out refresh_and_write_cache function

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 12, 2019, 16:46 UTC
Message-ID
<xmqqh85hh382.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20190911175201.GA11444@cat>
Thomas Gummerer <t.gummerer@gmail.com> writes:
Show 64 quoted lines
> On 09/11, Johannes Schindelin wrote:
>> Hi Thomas,
>> 
>> On Fri, 6 Sep 2019, Thomas Gummerer wrote:
>> > Oops, I didn't realize there was another series in flight that also
>> > introduces 'repo_refresh_and_write_index'.  Probably should have done
>> > a test merge of this with pu.
>> 
>> Yep, our patches clash. I would not mind placing my patch series on top
>> of yours, provided that you can make a few changes that I need ;-)
>
> Sounds good.  Looking ahead further I don't mind these changes at all!
>
>> > Right, and if gentle is set to false, it avoids writing the index,
>> > which seems fine from my perspective.
>> 
>> This also suggests that it would make sense to avoid
>> `LOCK_DIE_ON_ERROR`, _in particular_ because this is supposed to be a
>> library function, not just a helper function for a one-shot built-in
>> (don't you like how this idea "it is okay to use exit() to clean up
>> after us, we don't care" comes back to bite us?).
>
> Yup, returning an error for this definitely makes sense, especially
> for future proofing.
>
>> > >  - This version allows to pass pathspec, seen and header_msg, while
>> > >    the one in builtin-add-i cannot limit the part of the index
>> > >    getting refreshed with pathspec.  It wouldn't be a brain surgery
>> > >    to use this version and adjust the caller (there only is one) in
>> > >    the builtin-add-i topic.
>> >
>> > 'pathspec', 'seen' and 'header_msg' are not used in my version either,
>> > I just implemented it for completeness and compatibility.  So I'd be
>> > fine to do without them.
>> 
>> Oh, why not keep them? I'd rather keep them and adjust the caller in
>> `builtin-add-i`.
>
> Great, I'm happy to keep them.
>
>> > There's two more differences between the versions:
>> >
>> >  - The version in my series allows passing in write_flags to be passed
>> >    to write_locked_index, which is required to convert the callers in
>> >    builtin/merge.c.
>> 
>> I can always pass in 0 as `write_flags`.
>> 
>> >  - Dscho's version also calls 'repo_read_index_preload()', which I
>> >    don't do in mine.  Some callers don't need to do that, so I think it
>> >    would be nice to keep that outside of the
>> >    'repo_refresh_and_write_index()' function.
>> 
>> Agreed.
>> 
>> > I can think of a few ways forward here:
>> >
>> >  - I incorporate features that are needed for the builtin-add-i series
>> >    here, and that is rebased on top of this series.
>> 
>> I'd prefer this way forward. The `builtin-add-i` patch series is
>> evolving more slowly than yours.
>
> Great!  I'll send an updated version of my series soon.  Thanks!

I just read the conclusion you two reached (after being down and offline for two days) and found the reasoning totally sensible.

Thanks, both of you, for working well together.
Previous: Thomas GummererNext: Thomas Gummerer
Message 23 of 29 in “make sure stash refreshes the index properly”
  1. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Aug 27, 2019
  2. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Aug 27, 2019
  3. Martin ÅgrenAug 28, 2019
  4. Thomas GummererAug 29, 2019
  5. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Aug 27, 2019
  6. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Aug 27, 2019
  7. Martin ÅgrenAug 28, 2019
  8. Thomas GummererAug 29, 2019
  9. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Aug 29, 2019
  10. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Aug 29, 2019
  11. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Aug 29, 2019
  12. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Aug 29, 2019
  13. Martin ÅgrenAug 30, 2019
  14. Junio C HamanoAug 30, 2019
  15. Thomas GummererSep 2, 2019
  16. Junio C HamanoSep 3, 2019
  17. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Sep 3, 2019
  18. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Sep 3, 2019
  19. Junio C HamanoSep 5, 2019
  20. Thomas GummererSep 6, 2019
  21. Johannes SchindelinSep 11, 2019
  22. Thomas GummererSep 11, 2019
  23. Junio C HamanoSep 12, 2019
  24. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Sep 3, 2019
  25. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Sep 3, 2019
  26. 0/3 make sure stash refreshes the index properlyThomas Gummerer, Sep 11, 2019
  27. 1/3 factor out refresh_and_write_cache functionThomas Gummerer, Sep 11, 2019
  28. 2/3 merge: use refresh_and_write_cacheThomas Gummerer, Sep 11, 2019
  29. 3/3 stash: make sure to write refreshed cacheThomas Gummerer, Sep 11, 2019

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.