git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
	git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Nicolas Pitre <nico@fluxnic.net>
Subject: Re: [RFC/PATCH 0/3] Thinning the git toplevel directory
Date: Fri, 18 Feb 2011 06:33:07 -0600	[thread overview]
Message-ID: <20110218123306.GA1428@elie> (raw)
In-Reply-To: <20110218110810.GC7262@sigill.intra.peff.net>

Jeff King wrote:
> On Fri, Feb 18, 2011 at 03:25:18AM -0600, Jonathan Nieder wrote:

>>  - moved the http support mini-library to http/.
>
> Seems like a weird one-off to me, as it only has two files.

That was just to get the files out of the toplevel.  I suspect the
reason they are not part of libgit is to isolate the expat and curl
linkage.

Hmm, maybe an http/README explaining that would be nice.

> So I
> think python/git_remote_helpers would probably be a more appropriate
> name in case we ever grow more python code.

Good idea.  So the layout would be:

 python/
	Makefile
	git_remote_helpers/
		...

>        - There are a still a lot of directories. I wonder if we should
>          be going deeper. Like commands/builtin. Or lib/*.

For reference:

 Documentation/
 block-sha1/	fast, portable sha1 routine
 builtin/   	built-in (busybox style) commands
 commands/  	stand-alone commands
 compat/    	compatibility replacements, platform-specific code
 contrib/   	contributed software
 gitk-git/  	gitk
 gitweb/    	web interface
 git-gui/   	gui
 http/      	code for use in HTTP support commands (wraps curl and expat)
 libgit/    	code for use in multiple commands
 perl/      	Git.pm
 ppc/       	fast sha1 routine in powerpc assembler
 python/    	python-fastimport + a remote-helper protocol helper
 scripts/   	build scripts
 t/         	tests
 templates/ 	repository skeleton
 test-programs/	sample programs to exercise libgit, vcs-svn, and the sha1 lib
 xdiff/     	diff generator
 vcs-svn/   	svn interop

To give an extreme example :), this could be pruned to

 Documentation/
 commands/
 contrib/
 libgit/
 scripts/
 templates/
 testsuite/
 xdiff/

by

 - not distinguishing builtins from non-builtins by filename
 - dropping gitk, git gui, and gitweb from the tree
 - moving test programs into the testsuite
 - moving sha1 implementations and compatibility code under libgit
 - including http support files in libgit/ even though they are not
   part of libgit.a
 - moving perl and python libraries under libgit
 
>        - Some names seem funny. Like "gitk-git", which really should
>          just be "gitk".

I think it was originally to make the transition from file to
directory smoother.

>                          But I think that is a limitation of the subtree
>          merge.

Should work fine, no?  Since / in common ancestor matches gitk/ in
HEAD, that would be the detected shift.  (Caveat: I haven't tried it.)

>        - Before build, "ls | wc -l" reports 35 entries. Afterwards, it
>          reports 213, and any structure you uncovered in reorganization
>          is lost.

I think the best way to fix this is to provide support[1] for

 make O=build/

for those who want to maintain a clean source tree.

Thanks for some good ideas.
Jonathan

[1] There's a skeleton of such support here:
http://thread.gmane.org/gmane.comp.version-control.git/165720/focus=165850
I don't think I'm the right one to take it further, though, since I
don't really like to use "make O=elsewhere".

  reply	other threads:[~2011-02-18 12:33 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-09 15:14 [PATCH/RFC] Move test-*.c to test/ subdirectory Nguyễn Thái Ngọc Duy
2011-02-09 15:23 ` Nguyen Thai Ngoc Duy
2011-02-09 22:15 ` Junio C Hamano
2011-02-10  2:14   ` [PATCH] Move test-* to t/helper/ subdirectory Nguyễn Thái Ngọc Duy
2011-02-18  2:27     ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jonathan Nieder
2011-02-18  2:31       ` [PATCH 1/3] Move libgit.a sources into a libgit/ subdirectory Jonathan Nieder
2011-02-18  3:47         ` Nguyen Thai Ngoc Duy
2011-02-18  4:14           ` Jonathan Nieder
2011-02-18  4:18             ` Jeff King
2011-02-18  5:58               ` Jonathan Nieder
2011-02-18  4:31         ` Nguyen Thai Ngoc Duy
2011-02-18  2:33       ` [PATCH 2/3] Move test-* into a test-programs/ subdirectory Jonathan Nieder
2011-02-18  2:37       ` [PATCH 3/3] Move header files into a include/ subdirectory Jonathan Nieder
2011-02-18  3:52         ` Nguyen Thai Ngoc Duy
2011-02-18  4:29           ` [RFC/PATCH 4 to 6/3] Move remaining " Jonathan Nieder
2011-02-18  4:32             ` [PATCH 4/3] compat: do not use relative paths to refer to git-compat-util.h et al Jonathan Nieder
2011-02-18  4:34             ` [PATCH 5/3] block-sha1: do not use relative path for git-compat-util.h Jonathan Nieder
2011-02-18  4:35             ` [PATCH 6/3] Move git-compat-util.h, strbuf.h, and cache.h to include/ Jonathan Nieder
2011-02-18  3:56       ` [RFC/PATCH 0/3] Thinning the git toplevel directory Nguyen Thai Ngoc Duy
2011-02-18  4:51         ` [RFC/PATCH 7 - 9/3] " Jonathan Nieder
2011-02-18  4:52           ` [PATCH 7/3] Move test-sha1.sh to test-programs/ Jonathan Nieder
2011-02-18  4:55           ` [PATCH 8/3] Move build helpers to scripts/ subdirectory Jonathan Nieder
2011-02-18  5:04           ` [PATCH 9/3] Move non-builtin git commands and script libraries to a subdirectory Jonathan Nieder
2011-02-18  9:25         ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jonathan Nieder
2011-02-18 11:08           ` Jeff King
2011-02-18 12:33             ` Jonathan Nieder [this message]
2011-02-18 12:33           ` Nguyen Thai Ngoc Duy
2011-02-18 18:55           ` Junio C Hamano
2011-02-19 11:11             ` Jonathan Nieder
2011-02-19 23:05               ` Sverre Rabbelier
2011-02-19 23:15                 ` The git_remote_helpers package (Re: [RFC/PATCH 0/3] Thinning the git toplevel directory) Jonathan Nieder
2011-02-22 15:56               ` [RFC/PATCH 0/3] Thinning the git toplevel directory Jeff King
2011-02-22 19:30                 ` Junio C Hamano
2011-02-22 19:32                   ` Sverre Rabbelier
2011-02-23  4:51                   ` Jeff King
2011-02-23  8:29                     ` Jonathan Nieder
2011-02-23  8:43                       ` Jeff King
2011-02-23  9:56                         ` Recursive make and variations on the theme Jonathan Nieder
2011-02-23 16:42                     ` [RFC/PATCH 0/3] Thinning the git toplevel directory Junio C Hamano
2011-02-23 17:18                       ` Nicolas Pitre
2011-02-23 23:09                         ` Drew Northup
2011-02-24  0:14                           ` Nicolas Pitre
2011-02-24 17:10                             ` Drew Northup
2011-02-24 18:04                               ` Nicolas Pitre
2011-02-24 19:08                                 ` Jeff King
2011-02-24 19:46                                   ` Drew Northup
2011-02-19  0:10           ` Piotr Krukowiecki
2011-02-19  0:31             ` Junio C Hamano
2011-02-19  0:50               ` Jonathan Nieder
2011-02-19  9:27                 ` Piotr Krukowiecki
2011-02-19  9:24               ` Piotr Krukowiecki
2011-02-19  9:41                 ` Advertising the prebuilt htmldocs and manpages Jonathan Nieder
2011-02-20  6:52                   ` Junio C Hamano
2011-02-20  9:40                     ` Jonathan Nieder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110218123306.GA1428@elie \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=nico@fluxnic.net \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).