Subject: [RFC] [GSoC]: STRBUF_INIT_CONST: initialize `strbuf` to constant string

From: Mateo Patino <[email-masked]>
Date: Sun, 22 Mar 2026 02:55:09 -0400

Hello,

My name is Mateo, and I'm a new contributor to Git. I'm a 1st year
undergrad at Columbia University studying CS and applied math.

I wanted to ask the community for feedback on a project proposal
regarding the `strbuf` API. Seven years ago, a macro to initialize a 
`strbuf` to a constant string literal was proposed in GitGitGadget [1]
called `STRBUF_INIT_CONST`. This macro would work just like `STRBUF_INIT`
but it would set `alloc` to 0 (i.e. the buffer would not be 
heap-allocated).

Someone made a pull request to implement this feature [2], but their
changes were not merged. Later, Robear Selwans made a patch series [3]
attempting to implement this same feature. Robear got extensive 
feedback, but his patches were not accepted. The same GitHub user from
[2] sent a patch here [4], but his changes were not accepted.

More recently, the potential need for `STRBUF_INIT_CONST` was mentioned 
in this patch series [5] by Patrick Steinhardt, though it was marked
as a #leftoverbit and not directly addressed.

`STRBUF_INIT_CONST` has been mentioned for a long time in this list,
but it has not been implemented yet. My Request For Comment is the
following: is `STRBUF_INIT_CONST` a feature that is still of interest
to the community? If so, I would like to make a GSoC proposal around it.
The past email threads have already laid out the considerations of 
implementing `STRBUF_INIT_CONST` or something equivalent, so I would
like to propose this as GSoC idea if the community would find it 
worthwhile.

I would love to hear any thoughts about this.

Thanks!

Mateo <[email-masked]>

[1] https://github.com/gitgitgadget/git/issues/398
[2] https://github.com/gitgitgadget/git/pull/824
[3] https://lore.kernel.org/git/[email-masked]/
[4] https://lore.kernel.org/git/[email-masked]/
[5] https://lore.kernel.org/git/Zrm9ix5aN_g76Qxq@tanuki/