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

Re: [PATCH v2 3/3] repository: move 'repository_format_worktree_config' to repo scope

From
Glen Choo <chooglen@google.com>
Date
Jun 12, 2023, 20:23 UTC
Message-ID
<kl6lr0qgfmzo.fsf@chooglen-macbookpro.roam.corp.google.com>
In-Reply-To
<dd21767c-7c66-cf42-1a64-954a069dc466@github.com>
Victoria Dye <vdye@github.com> writes:
Show 8 quoted lines
> Even if we updated the only other 'repository_format' value
> ('repository_format_precious_objects') to be copied the same way, the
> benefit we'd get from eliminating a couple of lines of code duplication
> wouldn't necessarily outweigh the the extra complexity of a new abstraction
> - which may or may not need special-casing based on who's calling it -
> and/or the risk associated with changing behavior if we want to eliminate
> those special cases. IOW, I don't feel it's a definitive net improvement in
> this situation.

I see. In the process of doing this digging, I've become quite convinced that the risk is minimal. I definitely want the refactor to happen, but I suppose it's not reasonable for you to bear the risk.

I'll send a follow up patch on top of your series that implements the cleanup I hope to see, and I'd be happy to give _that_ series a Reviewed-by (though it's a bit weird since one of the patches will be mine). It'll touch the same lines twice, but at least the patches will be owned by the people who care about them the most.

Show 19 quoted lines
>> E.g. we could support both deep and shallow copying, like:
>> 
>>   /*
>>    * Copy members from a repository_format to repository.
>>    *
>>    * If 'src' will no longer be read after copying (e.g. it will be
>>    * cleared soon), pass a nonzero value so that pointer members will be
>>    * moved to 'dest' (NULL-ed and shallow copied) instead of being deep
>>    * copied.
>>    */
>>   void copy_repository_format(struct repository *dest,
>>                               struct repository_format *src,
>>                               int take_ownership);
>
> Unless we find that we *need* to support both, this approach would be more
> harmful than helpful. If it doesn't matter whether the copy is shallow or
> deep, this design proliferates that meaningless distinction in a way that
> can easily confuse developers (or at least create more work for them as try
> to try to understand it) if they ever want to change or use the function.

Fair enough. I agree we're better off figuring out if the need exists before trying to support it.

Previous: Victoria DyeNext: Glen Choo
Message 22 of 29 in “Fix behavior of worktree config in submodules”
  1. 0/2 Fix behavior of worktree config in submodulesVictoria Dye via GitGitGadget, May 23, 2023
  2. 1/2 config: use gitdir to get worktree configVictoria Dye via GitGitGadget, May 23, 2023
  3. Glen ChooMay 25, 2023
  4. Derrick StoleeMay 25, 2023
  5. 2/2 repository: move 'repository_format_worktree_config' to repo scopeVictoria Dye via GitGitGadget, May 23, 2023
  6. Glen ChooMay 25, 2023
  7. Glen ChooMay 25, 2023
  8. Victoria DyeMay 25, 2023
  9. Derrick StoleeMay 25, 2023
  10. Junio C HamanoMay 24, 2023
  11. Glen ChooMay 25, 2023
  12. 0/3 Fix behavior of worktree config in submodulesVictoria Dye via GitGitGadget, May 26, 2023
  13. 1/3 config: use gitdir to get worktree configVictoria Dye via GitGitGadget, May 26, 2023
  14. 2/3 config: pass 'repo' directly to 'config_with_options()'Victoria Dye via GitGitGadget, May 26, 2023
  15. 3/3 repository: move 'repository_format_worktree_config' to repo scopeVictoria Dye via GitGitGadget, May 26, 2023
  16. Glen ChooMay 31, 2023
  17. Junio C HamanoJun 1, 2023
  18. Glen ChooJun 12, 2023
  19. Victoria DyeJun 7, 2023
  20. Glen ChooJun 12, 2023
  21. Victoria DyeJun 12, 2023
  22. Glen ChooJun 12, 2023
  23. setup: copy repository_format using helperGlen Choo, Jun 12, 2023
  24. Victoria DyeJun 13, 2023
  25. Glen ChooJun 13, 2023
  26. Junio C HamanoJun 13, 2023
  27. Derrick StoleeMay 26, 2023
  28. Glen ChooJun 13, 2023
  29. Victoria DyeJun 13, 2023

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.