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

Re:Re: [PATCH v2 0/5] Support server option from configuration

From
XXXing Xin <bupt_xingxin@163.com>
Date
Oct 8, 2024, 03:42 UTC
Message-ID
<2d736d9e.4c15.1926a38e006.Coremail.bupt_xingxin@163.com>
In-Reply-To
<ZwOaZkxETwdId9Qg@pks.im>
At 2024-10-07 16:23:02, "Patrick Steinhardt" <ps@pks.im> wrote:
Show 33 quoted lines
>On Mon, Sep 23, 2024 at 12:17:53PM +0000, blanet via GitGitGadget wrote:
>> We have multiple internal repositories configured with a huge number of CI
>> tasks, each requiring code preparation (either via clone or fetch). These CI
>> tasks, triggered by post-receive hooks, often fetch the same code (usually
>> using --depth=1) concurrently.
>> 
>> To reduce performance impacts on the git server caused by these tasks, we
>> want to deploy a special designed pack-objects-hook. This hook would allow
>> the packs generated by git-pack-objects to be reused. Since not all
>> clone/fetch operations will benefit from this caching (e.g., pulls from
>> developers' environments), clients need to pass a special identifier to
>> indicate whether caching should be enabled for a particular operation. Using
>> server options is a suitable method for this.
>> 
>> However, server options can only be specified via the command line option
>> (via --server-option or -o), which is inconvenient and requires CI script
>> modifications. A configuration-based approach is easier to propagate (by
>> changing the global configuration ~/.gitconfig) and avoids issues with older
>> Git versions that don't support --server-option.
>> 
>> This patch series introduces a new multi-valued configuration,
>> remote.<name>.serverOption, similar to push.pushOption, to specify default
>> server options for the corresponding remote.
>> 
>>  * Patch 1~3 is the main change for introducing the new configuration.
>>  * Patch 4 fixes a issue for git-fetch not sending server-options when
>>    fetching multiple remotes.
>>  * Patch 5 is a minor fix for a server options-related memory leak.
>
>Sorry for taking this long to get back to this patch series. I've given
>it another careful read and have a single proposal for improved docs
>that you may want to address. But other than those nits this version
>looks great to me, thanks!

Thanks for your kind help! I just got back from holiday, so your reply was perfectly timed. :-)

Xing Xin
Previous: Patrick SteinhardtNext: blanet via GitGitGadget
Message 30 of 39 in “Support server option from configuration”
  1. 0/4 Support server option from configurationblanet via GitGitGadget, Sep 2, 2024
  2. 1/4 transport: add parse_transport_option() methodXing Xin via GitGitGadget, Sep 2, 2024
  3. 2/4 builtin/fetch.c: add fetch.serverOption configurationXing Xin via GitGitGadget, Sep 2, 2024
  4. Patrick SteinhardtSep 3, 2024
  5. 3/4 builtin/clone.c: recognize fetch.serverOption configurationXing Xin via GitGitGadget, Sep 2, 2024
  6. Patrick SteinhardtSep 3, 2024
  7. Xing XinSep 4, 2024
  8. Patrick SteinhardtSep 5, 2024
  9. Xing XinSep 5, 2024
  10. Patrick SteinhardtSep 5, 2024
  11. Junio C HamanoSep 5, 2024
  12. Xing XinSep 9, 2024
  13. Patrick SteinhardtSep 9, 2024
  14. Xing XinSep 23, 2024
  15. Junio C HamanoSep 9, 2024
  16. 4/4 builtin/ls-remote.c: recognize fetch.serverOption configurationXing Xin via GitGitGadget, Sep 2, 2024
  17. Patrick SteinhardtSep 3, 2024
  18. Patrick SteinhardtSep 3, 2024
  19. 0/5 Support server option from configurationblanet via GitGitGadget, Sep 23, 2024
  20. 1/5 transport: introduce parse_transport_option() methodXing Xin via GitGitGadget, Sep 23, 2024
  21. 2/5 remote: introduce remote.<name>.serverOption configurationXing Xin via GitGitGadget, Sep 23, 2024
  22. Patrick SteinhardtOct 7, 2024
  23. Xing XinOct 8, 2024
  24. 3/5 transport.c::handshake: make use of server options from remoteXing Xin via GitGitGadget, Sep 23, 2024
  25. 4/5 fetch: respect --server-option when fetching multiple remotesXing Xin via GitGitGadget, Sep 23, 2024
  26. Patrick SteinhardtOct 7, 2024
  27. 5/5 ls-remote: leakfix for not clearing server_optionsXing Xin via GitGitGadget, Sep 23, 2024
  28. Patrick SteinhardtOct 7, 2024
  29. Patrick SteinhardtOct 7, 2024
  30. Xing XinOct 8, 2024
  31. 0/5 Support server option from configurationblanet via GitGitGadget, Oct 8, 2024
  32. 1/5 transport: introduce parse_transport_option() methodXing Xin via GitGitGadget, Oct 8, 2024
  33. 2/5 remote: introduce remote.<name>.serverOption configurationXing Xin via GitGitGadget, Oct 8, 2024
  34. 3/5 transport.c::handshake: make use of server options from remoteXing Xin via GitGitGadget, Oct 8, 2024
  35. 4/5 fetch: respect --server-option when fetching multiple remotesXing Xin via GitGitGadget, Oct 8, 2024
  36. Junio C HamanoOct 8, 2024
  37. 5/5 ls-remote: leakfix for not clearing server_optionsXing Xin via GitGitGadget, Oct 8, 2024
  38. Patrick SteinhardtOct 8, 2024
  39. Junio C HamanoOct 8, 2024

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.