From: "Michael \"Ray\" Rehbein" <mrrehbein@gmail.com>
To: git@vger.kernel.org
Subject: Suggestions on how to reorganize and split up a monolithic repository?
Date: Wed, 4 Aug 2010 14:08:23 -0500 [thread overview]
Message-ID: <AANLkTikFrj6tyHfmZ8k-gmR+gAFyEGv+X+0x849eEaEP@mail.gmail.com> (raw)
Currently we have everything in one repository for our website, and
are looking into splitting it up. The scale of one repository looks
like it will be getting out of hand down the road.
General layout at the moment:
repos.git/Site1
repos.git/Site2
repos.git/Library/Ours
repos.git/Library/3rdParty1
repos.git/Library/3rdParty2
repos.git/UnitTests/Ours
repos.git/UnitTests/3rdParty1
repos.git/UnitTests/3rdParty2
Goals in splitting it up:
- Allow each site to have a collection of libraries that are known to
be working for it. Sometimes an update to shared library to fix site1
will break site2.
- Allow a site to have only the needed libraries, to avoid bloating
the site, and help in identifying unused code.
One plan we started to go with was:
Site1.git/
Site1.git/Library/Ours - submodule link to OurLib.git/Library/Ours
Site1.git/Library/3rdParty1 - submodule link to
3rdParty1Lib.git/Library/3rdParty1
OurLib.git/Library/Ours
OurLib.git/UnitTests/Ours
OurLib.git/Library/3rdParty1 - submodule link to
3rdParty1Lib.git/Library/3rdParty1
3rdParty1Lib.git/Library/3rdParty1
3rdParty1Lib.git/UnitTests/3rdParty1
But found out that git submodule doesn't actually allow mapping a
section of a git repository, so changed it to:
Site1.git/
Site1.git/Library/Ours - symlink to submodule/OurLib/Library/Ours
Site1.git/Library/3rdParty1 - symlink to
submodule/3rdParty1Lib/Library/3rdParty1
Site1.git/submodule/OurLib - submodule OurLib.git
Site1.git/submodule/3rdParty1Lib - submodule 3rdParty1Lib.git
OurLib.git/Library/Ours
OurLib.git/UnitTests/Ours
OurLib.git/Library/3rdParty1 - symlink to
submodule/3rdParty1Lib/Library/3rdParty1
OurLib.git/submodule/3rdParty1Lib - submodule 3rdParty1Lib.git
3rdParty1Lib.git/Library/3rdParty1
3rdParty1Lib.git/UnitTests/3rdParty1
The 3rd Party Lib is not all 3rd party anymore, as we have tweaked it
to fit better in our setup. Additionally, the 3rd party library
didn't come with unit tests. One of the unit tests we wrote for our
use of the 3rd party ended up with a use of our library. Putting a
submodule of OurLib into 3rdParty1Lib would create recursive
submodules, which is not something we want.
Is there a better way to organize this?
reply other threads:[~2010-08-04 19:08 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=AANLkTikFrj6tyHfmZ8k-gmR+gAFyEGv+X+0x849eEaEP@mail.gmail.com \
--to=mrrehbein@gmail.com \
--cc=git@vger.kernel.org \
/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).