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

Re: [Feature Request] Support for sharing root-level files across repositories

From
Ben Knoble <ben.knoble@gmail.com>
Date
Sep 29, 2025, 21:17 UTC
Message-ID
<8C362D63-3EF1-4042-A825-7DAFA9A51B22@gmail.com>
In-Reply-To
<03d601dc3166$0f302170$2d906450$@nexbridge.com>
Show 52 quoted lines
> Le 29 sept. 2025 à 13:25, rsbecker@nexbridge.com a écrit :
> 
> On September 26, 2025 4:33 AM, George Ogden wrote:
>> Hello Git developers,
>> 
>> Firstly, apologies if this has already been discussed or if there is a way to solve this
>> problem that I am not aware of.
>> 
>> Motivation
>> 
>> Git submodules are very useful for sharing directories between repositories.
>> However, in some workflows, there is a need to share a single file that must live in
>> the repository root.
>> 
>> A concrete example is .pre-commit-config.yaml. I maintain a standard template
>> across many repositories. When I add a new hook or update a version, I have to
>> manually update the file in each repository. I could use a submodule for this, but
>> submodules always appear in a subdirectory — not at the root where tools expect
>> this file.
>> 
>> The same issue arises with other configuration files that need to reside at the top
>> level of a project (linters, CI configs, licenses, etc.).
>> 
>> Proposal
>> 
>> It would be helpful if Git provided a way to share a file across repositories so that it
>> appears at the root of the working tree, without requiring a separate build step,
>> symlink, or copy operation.
>> 
>> I understand there are alternative approaches (subtrees, packages, external
>> tooling), but they all involve extra indirection. Having first-class support within Git
>> for this use case would make it much simpler and more consistent.
>> 
>> Thanks
>> 
>> Thank you for your work maintaining and evolving Git! I would greatly appreciate
>> any feedback on whether this idea has been considered before, and if there are
>> technical reasons it may not fit Git’s model.
> 
> I have been thinking about a current use case for this RFE. Consider
> GNU/Configure-based projects where we have config.guess and config.sub in the
> repository root. These two files are independent of the project itself and truly
> should be shared and managed from a single authoritative source. It can be a
> real delay/pain to wait for the project to manually update these two files
> from an upstream to get platform support for their project.
> 
> In order to support something like this, we might need a submodule concept
> That supports something like a link upwards. Or this might be something
> That could be part of the sparse-checkout infrastructure. I'm not sure, but I
> Do think there is merit to this. It could also apply to organisations that have
> cross-application root certificates that need to be in the same directory
> as the application root.
Sparse-checkout made me think of some kind of “repository overlay”: as long as there are no conflicts (or perhaps for later versions, conflicts are resolved by higher-layers-win), each layer (i.e., repository) knows only about its own files.
Adding untracked files would need some work to choose a layer. 
Previous: George Ogden
Message 4 of 4 in “[Feature Request] Support for sharing root-level files across repositories”
  1. George OgdenSep 26, 2025
  2. rsbecker@nexbridge.comSep 29, 2025
  3. George OgdenSep 29, 2025
  4. Ben KnobleSep 29, 2025

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.