From: Philip Oakley <philipoakley@iee.email>
To: "brian m. carlson" <sandals@crustytoothpaste.net>, git@vger.kernel.org
Cc: Jeff King <peff@peff.net>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Derrick Stolee <dstolee@microsoft.com>
Subject: Re: [PATCH 1/4] gitfaq: add advice on monorepos
Date: Wed, 20 Oct 2021 15:11:09 +0100 [thread overview]
Message-ID: <557fe5b8-36b4-a760-d2dd-02137746a37b@iee.email> (raw)
In-Reply-To: <20211020010624.675562-2-sandals@crustytoothpaste.net>
On 20/10/2021 02:06, brian m. carlson wrote:
> Many projects around the world have chosen monorepos, and active
> development on Git is ongoing to support them better. However, as
> projects using monorepos grow, they often find various performance
> and scalability problems that are unpleasant to deal with.
>
> Add a FAQ entry to note that while Git is attempting improvements in
> this area, it is not uncommon to see performance problems that
> necessitate the use of partial or shallow clone, sparse checkout, or the
> like, and that if users wish to avoid these problems, avoiding a
> monorepo may be best.
>
> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
> ---
> Documentation/gitfaq.txt | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/gitfaq.txt b/Documentation/gitfaq.txt
> index 8c1f2d5675..946691c153 100644
> --- a/Documentation/gitfaq.txt
> +++ b/Documentation/gitfaq.txt
> @@ -241,6 +241,32 @@ How do I know if I want to do a fetch or a pull?::
> ignore the upstream changes. A pull consists of a fetch followed
> immediately by either a merge or rebase. See linkgit:git-pull[1].
>
> +Design
> +------
> +
> +[[monorepos]]
> +Should we use a monorepo or many individual repos?::
> + This is a decision that is typically made based on an organization's needs and
> + desires for their projects. Git has several features, such as shallow clone,
> + partial clone, and sparse checkout to make working with large repositories
> + easier, and there is active development on making the monorepo experience
> + better.
> ++
> +However, at a certain size, the performance of a monorepo will likely become
> +unacceptable _unless_ you use these features. If you choose to start with a
> +monorepo and continue to grow, you may end up unhappy with the performance
> +characteristics at a point where making a change is difficult. The performance
> +of using many smaller repositories will almost always be much better and will
> +generally not necessitate the use of these more advanced features. If you are
> +concerned about future performance of your repository and related tools, you may
> +wish to avoid a monorepo.
> ++
> +Ultimately, you should make a decision fully informed about the potential
> +benefits and downsides, including the capabilities, performance, and future
> +requirements for your repository and related tools, including your hosting
> +platform, build tools, and other programs you typically use as part of your
> +workflow.
> +
Does this need some comparison, or link, with sub-module methods and
issues? Such as the nested sub-module problem, the distinction between
active sub-modules and quiescent sub-modules (e.g. libraries Vx.y.z)?
As an aside, I don't think we provide any background to the Git
philosophy that frames some of these issues.
--
Philip
next prev parent reply other threads:[~2021-10-20 14:11 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-20 1:06 [PATCH 0/4] Additional FAQ entries brian m. carlson
2021-10-20 1:06 ` [PATCH 1/4] gitfaq: add advice on monorepos brian m. carlson
2021-10-20 4:45 ` Bagas Sanjaya
2021-10-20 10:54 ` Ævar Arnfjörð Bjarmason
2021-10-20 21:19 ` brian m. carlson
2021-10-20 11:55 ` Johannes Schindelin
2021-10-20 14:11 ` Philip Oakley [this message]
2021-10-20 22:22 ` brian m. carlson
2021-10-25 10:44 ` Philip Oakley
2021-10-20 1:06 ` [PATCH 2/4] gitfaq: add documentation on proxies brian m. carlson
2021-10-20 11:57 ` Johannes Schindelin
2021-10-20 22:17 ` brian m. carlson
2021-10-20 14:48 ` Junio C Hamano
2021-10-20 22:19 ` brian m. carlson
2021-10-20 1:06 ` [PATCH 3/4] gitfaq: give advice on using eol attribute in gitattributes brian m. carlson
2021-10-20 1:21 ` Eric Sunshine
2021-10-20 1:27 ` brian m. carlson
2021-10-20 12:02 ` Johannes Schindelin
2021-10-20 22:25 ` brian m. carlson
2021-10-21 12:02 ` Johannes Schindelin
2021-10-20 1:06 ` [PATCH 4/4] doc: add a FAQ entry about syncing working trees brian m. carlson
2021-10-20 4:58 ` Bagas Sanjaya
2021-10-20 14:05 ` Philip Oakley
2021-10-20 23:35 ` Ævar Arnfjörð Bjarmason
2021-10-21 0:03 ` brian m. carlson
2021-10-21 0:33 ` Ævar Arnfjörð Bjarmason
2021-10-20 1:06 ` [PATCH 4/4] gitfaq: add " brian m. carlson
2021-10-20 1:38 ` Eric Sunshine
2021-10-20 21:36 ` brian m. carlson
2021-10-20 12:09 ` Johannes Schindelin
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=557fe5b8-36b4-a760-d2dd-02137746a37b@iee.email \
--to=philipoakley@iee.email \
--cc=Johannes.Schindelin@gmx.de \
--cc=dstolee@microsoft.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=sandals@crustytoothpaste.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).