Re: [PATCH v1 1/1] cat-file: add use-mailmap/no-use-mailmap to --batch-command
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 29, 2026, 00:50 UTC
- Message-ID
- <xmqqldfbh32d.fsf@gitster.g>
- In-Reply-To
- <20260328203615.60402-1-siddharthasthana31@gmail.com>
Siddharth Asthana <siddharthasthana31@gmail.com> writes:
Show 13 quoted lines
> git-cat-file(1)'s --batch-command works with the --use-mailmap option, > but this option needs to be set when the process is created. This means > we cannot change this option mid-operation. > > At GitLab, Gitaly caches git-cat-file processes and it would be useful > if --batch-command supported toggling mailmap dynamically with existing > processes. > > Add `use-mailmap` and `no-use-mailmap` as new subcommands to > --batch-command. `use-mailmap` enables the mailmap mechanism for > subsequent `contents` and `info` commands, lazily loading the mailmap > data from disk on first invocation. `no-use-mailmap` disables it but > keeps the data in memory so re-enabling doesn't require reloading.
And the cached information in process, if any, would be flushed?
Because in your design, these command words are parsed separately from and have nothing in common with the command line options, I wonder if it is easier to understand if you added just a single command, "mailmap", that takes a single parameter "yes" or "no"? Then this hunk would ...
Show 5 quoted lines
> + { "contents", parse_cmd_contents, 1 },
> + { "info", parse_cmd_info, 1 },
> + { "flush", NULL, 0 },
> + { "use-mailmap", parse_cmd_use_mailmap, 0 },
> + { "no-use-mailmap", parse_cmd_disable_mailmap, 0 },... need only one addition instead of two entries and you do not have to write boilerplate-rich helper functions twice.