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

Re: [PATCH RFC v3 2/2] Move libgit.a sources into separate "lib/" directory

From
Patrick Steinhardt <ps@pks.im>
Date
Aug 11, 2026, 12:16 UTC
Message-ID
<ansSg4qsPwh5FcR9@pks.im>
In-Reply-To
<xmqqjyqpb96n.fsf@gitster.g>
On Mon, Jul 20, 2026 at 03:14:24PM -0700, Junio C Hamano wrote:
Show 21 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> >> > My own (obviously subjective and biased) take is that the tradeoff is
> >> > worth it, as these issues are a one-time cost while the benefits to
> >> > discoverability will be permanent.
> >> 
> >> It is not a one-time cost, but will be an ongoing burden.
> >
> > It is maybe drawn-out, but it is a one-time cost. It's not like we're
> > going to mass-rename source files to move them to `lib/` every two weeks
> > from now on.
> 
> Since the topic was posted, I have dealt with the fallout from it at
> least twice a day (which, when we are lucky, is not a huge time
> sink, as I have mostly automated it by now), and again every time a
> new topic is posted that touches the moved files in substantial ways
> or adds new files that ought to be moved.  The latter is the most
> time-consuming to handle.  This will continue until all contemporary
> topics, as well as the topic in question, graduate.
> 
> If that is not an ongoing burden, I do not know what is.

I guess the argument is rather that it's a burden now, but once it's merged and the dust has settled it's going to become less so.

Show 23 quoted lines
> > And this statement neglects to acknowledge that the lack of clean
> > organization of source code files is an ongoing burden _right now_, and
> > would be at least partially addressed by the move.
> 
> At least, Gábor does not seem to think that the lack of clean
> organization is so severe as to warrant a massive code churn like
> this.
> 
> I value stability much more than prettiness.  If we had started out
> with almost nothing at the root level and almost everything in
> either 'lib' or 'builtin', I would have strongly preferred to keep
> that structure.  But since we have been using a layout that has all
> built-in commands in 'builtin', with subsystems like 'refs' and
> 'odb' in their own directories, and everything else at the root
> level, I would prefer to keep that organization until a substantial
> subsystem update wants to carve out a new location for itself, just
> as past updates to create 'builtin', 'refs', and 'odb' did.
> 
> Compared to those past moves, the proposed change looks more like
> churn for the sake of moving things around, without achieving any
> real organizational improvement.
> 
> I must say that I, too, remain skeptical.

My main motivation isn't prettiness though, it's newcomers to the project. Git is not an easy project to get started in, and the root cause of that of course isn't our file layout but probably rather that Git has been growing organically for 20 years. But the file layout definitely doesn't help newcomers to find their way around in the product.

So I'd say main motivation isn't prettiness, it's discoverability. And sure, that's a property that regulars on the mailing list are unlikely to care about as they already know their way around the project. But I'm sure that folks who are new would appreciate it if they could see at a glance what parts the project is made of to help them find the right files at the right time.

Anyway, as I've said already: I'm totally fine if the result of this discussion is that we don't want to do it. It is churn, and that churn has of course does have a cost.

Thanks!
Patrick
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 18 in “Move libgit.a sources into separate "lib/" directory”
  1. 0/2 Move libgit.a sources into separate "lib/" directoryPatrick Steinhardt, Jul 1, 2026
  2. 1/2 t/helper: prepare "test-example-tap.c" for introduction of "lib/"Patrick Steinhardt, Jul 1, 2026
  3. 2/2 Move libgit.a sources into separate "lib/" directoryPatrick Steinhardt, Jul 1, 2026
  4. SZEDER GáborJul 13, 2026
  5. Johannes SchindelinJul 20, 2026
  6. Junio C HamanoJul 20, 2026
  7. Patrick SteinhardtAug 11, 2026
  8. Junio C HamanoAug 11, 2026
  9. Patrick SteinhardtAug 11, 2026
  10. Johannes SchindelinAug 13, 2026
  11. Junio C HamanoAug 13, 2026
  12. Michael MontalboAug 13, 2026
  13. Michael MontalboAug 14, 2026
  14. Junio C HamanoAug 17, 2026
  15. brian m. carlsonJul 20, 2026
  16. Junio C HamanoJul 20, 2026
  17. Taylor BlauJul 20, 2026
  18. Patrick SteinhardtAug 11, 2026

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.