git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
	Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
	git@vger.kernel.org, Nicolas Pitre <nico@fluxnic.net>,
	Sverre Rabbelier <srabbelier@gmail.com>
Subject: Re: [RFC/PATCH 0/3] Thinning the git toplevel directory
Date: Tue, 22 Feb 2011 23:51:43 -0500	[thread overview]
Message-ID: <20110223045143.GA11846@sigill.intra.peff.net> (raw)
In-Reply-To: <7v4o7vdfz2.fsf@alter.siamese.dyndns.org>

On Tue, Feb 22, 2011 at 11:30:41AM -0800, Junio C Hamano wrote:

> > It is one less thing to need to do when writing new code, and one less
> > thing to have silly textual conflicts on. It probably doesn't matter
> > that much, though; we don't actually add new files or commands all that
> > often.
> 
> Yeah, you would need to add an entry to the builtin command list yourself
> anyway, until we also autogenerate it, which I doubt will ever happen nor
> is necessarily a good idea.

You also have to add the declaration to builtin.h. It is kind of a
hassle to have to add it in three places (Makefile, command list, and
declaration) in addition to the actual code. But again, it's not like we
do this that often.

> > Speaking of Makefiles, one downside to all of this directory
> > segmentation is that you can't run "make" from the subdirectories.
> 
> I had an impression that "make -C lib/" would be one of the goals, iow,
> when we split the directory structure, the next step would be to split the
> top-level Makefile so that each directory is covered by its own Makefile,
> just like Documentation/ is already usable that way.

Ugh. I am not thrilled at the prospect of more recursive make. As it is
now, we have already dealt with bugs from the little bit of recursion
there is (e.g., propagating information between Makefiles) and weird
heisenbugs (I still occasionally get build failures on recursing into
the perl subdir during a parallel make). And then of course it's easy to
misuse; running "make" in t/ is not necessarily testing the latest
version. In my experience recursive make always comes with this sort of
flakiness.

Right now the actual C build process is entirely in the top-level
Makefile. I really like that I can trust it to handle dependencies
correctly, because it means I can bisect without resorting to "make
clean" for each step.

-Peff

  parent reply	other threads:[~2011-02-23  4:52 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
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 [this message]
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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20110223045143.GA11846@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=nico@fluxnic.net \
    --cc=pclouds@gmail.com \
    --cc=srabbelier@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).