-
Notifications
You must be signed in to change notification settings - Fork 892
Monorepo vs. Multirepo
Steve Hollasch edited this page Aug 27, 2019
·
7 revisions
With multirepo, each book/project gets it's own repository. With monorepo, a single repository contains all content for all books and projects.
- Each book/project is independent of changes made to other books. If a piece of similar code is corrected in another book or project, you don't need to take the fix in a different book until you're ready to address it.
- Book URL: https://raytracing.github.io/InOneWeekend/
- Shared resources such as release tools, book CSS, Markdown scripts, project documents and so forth have a single source, and need not be copied+added+committed+pushed+PR'd to multiple locations.
- To get the entire suite, you only need to clone a single repo, or download a single package.
- The project gets a clear common version number.
- Getting the latest versions is accomplished with a single
git pull
, rather than having to go to multiple clones to pull from each. - Releases are easier, as they include all content, rather than needing to get a release per book. This includes the work of a detailed and useful CHANGELOG, as changes may impact multiple books.
- Issues that impact multiple books are much easier to address. Multirepo requires filing similar issues in each impacted repo.
- The entire project can have a single common wiki. This is a weak advantage, as we could also just direct each book to the a common wiki under the
raytracing.github.io
wiki. - Book URL: https://raytracing.github.io/InOneWeekend/ (if monorepo is
raytracing.github.io
, subdirInOneWeekend
) - Book URL: https://raytracing.github.io/RayTracing/InOneWeekend (if monorepo is
RayTracing
)