Third-party tools
Tools outside Git that also keep a library in a monorepo folder, or move
changes between a monorepo and other repositories. Each comparison takes
the same example as Git's own tools until it hits
the tool's pain points, then shows how git-splice handles them. A page
that runs the tool prints its version.
git-subrepo | Josh | splitsh-lite | Export tools | git-splice | |
|---|---|---|---|---|---|
| Library in the monorepo | files, one commit per pull | files, with copies of the library's whole history | files | files | files, one commit per pull |
| Changes back to the library | every push also commits to the monorepo, and a squash merge or rebase strands that commit | a push sends the monorepo's commits as they are | none: a faster git subtree split that publishes read-only repositories | a separate workflow: a pull request is imported, and closed rather than merged | push rebuilds the commits since the last sync |
| Built around | one upstream branch for every monorepo branch | git bisect and git blame into the library, any slice of the monorepo as a repository | publishing folders of a monorepo | one repository as the source of truth | changing a library in the monorepo and sending the changes back |