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

Re: [RFC/PATCH 0/3] Thinning the git toplevel directory

From
Jeff King <peff@peff.net>
Date
Feb 18, 2011, 11:08 UTC
Message-ID
<20110218110810.GC7262@sigill.intra.peff.net>
In-Reply-To
<20110218092518.GB30648@elie>
On Fri, Feb 18, 2011 at 03:25:18AM -0600, Jonathan Nieder wrote:
> Thanks again for both of your help.  I've put up an updated series at
> 
>  git://repo.or.cz/git/jrn.git flatten-source
s/flatten/un&/
> Changes since the series sent to the list:
> 
>  - put headers in libgit/ with the source files.  I don't
>    know what I was thinking before.
That is much nicer, I think.
>  - renamed nonbuiltin/ to commands/.  Names like
>    commands/add--interactive.perl even seem to make a kind of sense.
Definitely a better name.
>  - moved the http support mini-library to http/.
Seems like a weird one-off to me, as it only has two files.
>  - renamed git_remote_helpers to python/, though I'm not very happy
>    about that.

I think this has been discussed a couple of times, and there was some confusion about what the directory means. It is "this is a python library called git_remote_helpers". It is not "this is generic python code for git", nor is it "this is generic remote helper code". So I think python/git_remote_helpers would probably be a more appropriate name in case we ever grow more python code.

> This is all very off-the-cuff.  I'd be happy for others to pick this
> up and remold it to their taste (after all, I'm too used to the
> current layout to remember what matters).  It doesn't feel cooked yet.
Two overall comments that are vague and you can feel free to ignore:
  1. I was one of the initial complainers of a source reorganization.
     But my complaint was mainly "let's only do it if there is some real
     benefit". Unlike simply shoving everything most of what's in the
     top-level into a src/ directory, I think this is shaping up to be a
     real reorganization, and the structure is easier to look at.
  2. I found it most instructive to actually checkout the result and
     look at the organization from a new user perspective. Here are my
     impressions:
       - There are a still a lot of directories. I wonder if we should
         be going deeper. Like commands/builtin. Or lib/*.
       - Some names seem funny. Like "gitk-git", which really should
         just be "gitk". But I think that is a limitation of the subtree
         merge. Maybe it's time for us to eat our own submodules
         dogfood? :)
       - Before build, "ls | wc -l" reports 35 entries. Afterwards, it
         reports 213, and any structure you uncovered in reorganization
         is lost. Maybe that doesn't matter, since the clean tree is
         what people will see first when they are getting their
         bearings. Or maybe not, since maybe they build first, then
         hack. I dunno. I'm not sure what the solution is. There are
         some obvious things, like throwing the test-* built executables
         into test-programs (which will require some magic in
         test-lib.sh to find them). Maybe git-* should stay in commands.
         I dunno.
-Peff
Previous: Jonathan NiederNext: Jonathan Nieder
Message 25 of 54 in “Move test-*.c to test/ subdirectory”
  1. Move test-*.c to test/ subdirectoryNguyễn Thái Ngọc Duy, Feb 9, 2011
  2. Nguyen Thai Ngoc DuyFeb 9, 2011
  3. Junio C HamanoFeb 9, 2011
  4. Move test-* to t/helper/ subdirectoryNguyễn Thái Ngọc Duy, Feb 10, 2011
  5. 0/3 Thinning the git toplevel directoryJonathan Nieder, Feb 18, 2011
  6. 1/3 Move libgit.a sources into a libgit/ subdirectoryJonathan Nieder, Feb 18, 2011
  7. Nguyen Thai Ngoc DuyFeb 18, 2011
  8. Jonathan NiederFeb 18, 2011
  9. Jeff KingFeb 18, 2011
  10. Jonathan NiederFeb 18, 2011
  11. Nguyen Thai Ngoc DuyFeb 18, 2011
  12. 2/3 Move test-* into a test-programs/ subdirectoryJonathan Nieder, Feb 18, 2011
  13. 3/3 Move header files into a include/ subdirectoryJonathan Nieder, Feb 18, 2011
  14. Nguyen Thai Ngoc DuyFeb 18, 2011
  15. 6/3 Move remaining header files into a include/ subdirectoryJonathan Nieder, Feb 18, 2011
  16. 4/3 compat: do not use relative paths to refer to git-compat-util.h et alJonathan Nieder, Feb 18, 2011
  17. 5/3 block-sha1: do not use relative path for git-compat-util.hJonathan Nieder, Feb 18, 2011
  18. 6/3 Move git-compat-util.h, strbuf.h, and cache.h to include/Jonathan Nieder, Feb 18, 2011
  19. Nguyen Thai Ngoc DuyFeb 18, 2011
  20. 9/3 Thinning the git toplevel directoryJonathan Nieder, Feb 18, 2011
  21. 7/3 Move test-sha1.sh to test-programs/Jonathan Nieder, Feb 18, 2011
  22. 8/3 Move build helpers to scripts/ subdirectoryJonathan Nieder, Feb 18, 2011
  23. 9/3 Move non-builtin git commands and script libraries to a subdirectoryJonathan Nieder, Feb 18, 2011
  24. Jonathan NiederFeb 18, 2011
  25. Jeff KingFeb 18, 2011
  26. Jonathan NiederFeb 18, 2011
  27. Nguyen Thai Ngoc DuyFeb 18, 2011
  28. Junio C HamanoFeb 18, 2011
  29. Jonathan NiederFeb 19, 2011
  30. Sverre RabbelierFeb 19, 2011
  31. The git_remote_helpers package (Re: [RFC/PATCH 0/3] Thinning the git toplevel directory)Jonathan Nieder, Feb 19, 2011
  32. Jeff KingFeb 22, 2011
  33. Junio C HamanoFeb 22, 2011
  34. Sverre RabbelierFeb 22, 2011
  35. Jeff KingFeb 23, 2011
  36. Jonathan NiederFeb 23, 2011
  37. Jeff KingFeb 23, 2011
  38. Recursive make and variations on the themeJonathan Nieder, Feb 23, 2011
  39. Junio C HamanoFeb 23, 2011
  40. Nicolas PitreFeb 23, 2011
  41. Drew NorthupFeb 23, 2011
  42. Nicolas PitreFeb 24, 2011
  43. Drew NorthupFeb 24, 2011
  44. Nicolas PitreFeb 24, 2011
  45. Jeff KingFeb 24, 2011
  46. Drew NorthupFeb 24, 2011
  47. Piotr KrukowieckiFeb 19, 2011
  48. Junio C HamanoFeb 19, 2011
  49. Jonathan NiederFeb 19, 2011
  50. Piotr KrukowieckiFeb 19, 2011
  51. Piotr KrukowieckiFeb 19, 2011
  52. Advertising the prebuilt htmldocs and manpagesJonathan Nieder, Feb 19, 2011
  53. Junio C HamanoFeb 20, 2011
  54. Jonathan NiederFeb 20, 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.