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

Re: [1.8.0] reorganize the mess that the source tree has become

From
Nicolas Pitre <nico@fluxnic.net>
Date
Feb 3, 2011, 06:16 UTC
Message-ID
<alpine.LFD.2.00.1102030036420.12104@xanadu.home>
In-Reply-To
<20110202022909.30644.qmail@science.horizon.com>
On Tue, 1 Feb 2011, George Spelvin wrote:
Show 12 quoted lines
> For what it's worth, I don't see the "cleanup".
> 
> If it significantly reduced the size of the largest directory,
> that would be a win.  But moving everything into src/ doesn't
> do that.
> 
> If there's a way to divide the source into cohesive subunits, that
> would be great.  A programmer could ignore whole subdirectories
> when working on something.
> 
> But just moving the whole existing pile into a subdirectory "because
> everyone else does it" is not a reason; that's superstition.
There is no superstition here, simply basic elegance.

When you pick up a book from a shelf, do you see the actual content of the book printed right from the inside of the cover page, and the table of content tossed in the margin? Would you construct a book yourself that way?

A nice source tree should be organized with a minimum of hierarchical structure. To a newbie wanting to contribute to Git, it is rather frightening to cd into the git directory and see that ls generates more than 280 entries. That simply looks sloppy. And this gets much worse after a make.

The top directory should make different things stand out much more clearly, like a preface and a table of content. You have the documentation here, the source there, the tests there, a clearly visible README file, etc. If the src directory has about the same relative number of files after a move that's fine. At least you should expect _only_ source files in there (and possibly their by-products), and not other types of data buried into the mix.

> Having to type "src/" a lot more often is definitely a downside.
Come on.  This is a rather egocentric argument without much substance.
> Heck, that's one thing I actively dislike about GNU autoconf conventions.

This has _nothing_ about any autoconf convention. GNU autoconf requires stupid things like having a bunch of files such as CREDITS, INSTALL, CHANGELOG, and other whatnots even if you have nothing to put in them, in which case they still have to be there but empty. It also dictates the exact name your directories must have, etc.

I'm not proposing a tree reorganization because GNU autoconf commands it, but rather because this is a sensible thing to do.

> If there's a compelling reason to change, could someone please describe it?

It's about the third time I'm putting forward arguments for this. Please see the list archive.

P.S. the netiquette on busy mailing lists recommends that you preserve all the email addresses that were listed as recipients on the message you reply to. That would be highly appreciated.

Nicolas
Previous: Pascal ObryNext: Miles Bader
Message 4 of 15 in “Re: [1.8.0] reorganize the mess that the source tree has become”
  1. George SpelvinFeb 2, 2011
  2. Erik Faye-LundFeb 2, 2011
  3. Pascal ObryFeb 2, 2011
  4. Nicolas PitreFeb 3, 2011
  5. Miles BaderFeb 3, 2011
  6. Andreas SchwabFeb 3, 2011
  7. Eugene SajineFeb 3, 2011
  8. Hilco WijbengaFeb 3, 2011
  9. Miles BaderFeb 4, 2011
  10. Tor ArntsenFeb 4, 2011
  11. Jakub NarebskiFeb 4, 2011
  12. Erik Faye-LundFeb 4, 2011
  13. [1.8.0] Re: reorganize the mess that the source tree has becomeNicolas Sebrecht, Feb 4, 2011
  14. Drew NorthupFeb 4, 2011
  15. [1.8.0] Re: reorganize the mess that the source tree has becomeNicolas Sebrecht, Feb 5, 2011

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.