Git development
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Michael Montalbo <mmontalbo@gmail.com>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Patrick Steinhardt" <ps@pks.im>,
	"SZEDER Gábor" <szeder.dev@gmail.com>,
	git@vger.kernel.org,
	"brian m. carlson" <sandals@crustytoothpaste.net>,
	"Elijah Newren" <newren@gmail.com>,
	"Derrick Stolee" <stolee@gmail.com>,
	"Phillip Wood" <phillip.wood@dunelm.org.uk>
Subject: Re: [PATCH RFC v3 2/2] Move libgit.a sources into separate "lib/" directory
Date: Mon, 17 Aug 2026 13:58:27 -0700	[thread overview]
Message-ID: <xmqq7blo4g7g.fsf@gitster.g> (raw)
In-Reply-To: <CAC2QwmKs-TV2f=2BhBNQGtVA4vzciN-Vkh95RkGcVKe=6zwwRQ@mail.gmail.com> (Michael Montalbo's message of "Thu, 13 Aug 2026 12:04:52 -0700")

Michael Montalbo <mmontalbo@gmail.com> writes:

> Pointing forward, merging today's root .c files by that measure until
> cohesion drops below the carved band proposes these groups, with no
> hand-picked list [1]:
>
>   6.9  connect.c fetch-pack.c remote-curl.c send-pack.c transport.c
>        upload-pack.c
>   6.8  diff-lib.c entry.c read-cache.c unpack-trees.c
>   6.6  commit.c log-tree.c ref-filter.c revision.c sequencer.c
>   6.3  diff.c diffcore-rename.c merge-ort.c
>   6.0  delta-islands.c pack-bitmap-write.c pack-bitmap.c

We need to be careful about situations where a source file has to
include a header file only because a definition of one thing it uses
happens to be included in an otherwise out-of-place header file, and
moving such an out-of-place definition to a different header file
may affect mechanical groupings.  But with that caveat out of the
way, it is good when mechanical groupings match intuition.

And the earliest one in the list above actually does.  They form the
"transport" group.

The other groups in the list may not be so clear-cut, but this is an
interesting thought experiment that yielded a good, concrete result.
And as I said, we do not need to wait until we fully classify the
remainder.  When a conceptually clean group is identified, just as
when we created 'builtin/', 'refs/', or 'odb/', we can carve out a
new directory for it, and we will have moved one step closer to a
better place.

One tangential question is whether we can separate bisect and
revision machinery in such a way that bisect stands on its own,
without stronger ties to the revision machinery than other users,
such as 'rev-list' and 'log'.  "git rev-list --bisect" was a
historical accident that happened only because, back when "git
bisect" was a shell script, there was no good place to put the
logic, not because it was the best place for it.

Thanks.

  parent reply	other threads:[~2026-08-17 20:58 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-16 13:24 [PATCH RFC 0/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-04-16 13:24 ` [PATCH RFC 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-04-16 13:24 ` [PATCH RFC 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-04-17 17:08   ` Elijah Newren
2026-04-17 19:18   ` brian m. carlson
2026-04-17 21:18     ` Junio C Hamano
2026-04-17 21:51       ` brian m. carlson
2026-04-20  6:41         ` Patrick Steinhardt
2026-04-19 14:11 ` [PATCH RFC 0/2] " Phillip Wood
2026-04-20  6:41   ` Patrick Steinhardt
2026-04-20 12:03 ` Derrick Stolee
2026-04-21  5:55   ` Patrick Steinhardt
2026-04-21 14:13     ` Derrick Stolee
2026-04-22  6:39       ` Patrick Steinhardt
2026-06-22 10:38 ` [PATCH RFC v2 " Patrick Steinhardt
2026-06-22 10:38   ` [PATCH RFC v2 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-06-22 10:38   ` [PATCH RFC v2 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-06-22 13:08     ` Junio C Hamano
2026-06-24 10:32       ` Patrick Steinhardt
2026-06-24 11:23       ` Oswald Buddenhagen
2026-06-26 16:01     ` Johannes Schindelin
2026-06-26 18:50       ` Junio C Hamano
2026-07-01  6:54       ` Patrick Steinhardt
2026-06-27  6:40     ` SZEDER Gábor
2026-07-01  6:55       ` Patrick Steinhardt
2026-07-01 13:26         ` Phillip Wood
2026-07-01 14:45           ` Junio C Hamano
2026-07-02  5:21             ` Patrick Steinhardt
2026-07-06  4:29               ` Kaartic Sivaraam
2026-07-01  6:59 ` [PATCH RFC v3 0/2] " Patrick Steinhardt
2026-07-01  6:59   ` [PATCH RFC v3 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-07-01  6:59   ` [PATCH RFC v3 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-07-13  5:52     ` SZEDER Gábor
2026-07-20 14:24       ` Johannes Schindelin
2026-07-20 22:14         ` Junio C Hamano
2026-08-11 12:16           ` Patrick Steinhardt
2026-08-11 16:33             ` Junio C Hamano
2026-08-11 17:05               ` Patrick Steinhardt
2026-08-13  9:34                 ` Johannes Schindelin
2026-08-13 14:27                   ` Junio C Hamano
2026-08-13 19:04                     ` Michael Montalbo
2026-08-14  5:01                       ` Michael Montalbo
2026-08-17 20:58                       ` Junio C Hamano [this message]
2026-07-20 21:53     ` brian m. carlson
2026-07-20 22:43       ` Junio C Hamano
2026-07-20 23:40         ` Taylor Blau
2026-08-11 12:15           ` Patrick Steinhardt
2026-07-13  5:50 ` [PATCH RFC v4 0/2] " Patrick Steinhardt
2026-07-13  5:50   ` [PATCH RFC v4 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-07-13  5:50   ` [PATCH RFC v4 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt

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=xmqq7blo4g7g.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=mmontalbo@gmail.com \
    --cc=newren@gmail.com \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=ps@pks.im \
    --cc=sandals@crustytoothpaste.net \
    --cc=stolee@gmail.com \
    --cc=szeder.dev@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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox