Welcome to the website of subpatch. The tool that does multi repository management right. Don't worry, stay relaxed!
If you are currently using git-submodules or repo and you are frustrated, subpatch will be mostly your solution! If you are interested, email me.
If you want to try out the subpatch tool really quickly, follow the instructions:
# First go into the toplevel directory of your project that is using git, ...
$ git status
# then download the subpatch python script, ...
$ wget https://subpatch.net/downloads/latest/subpatch
$ chmod +x ./subpatch
# and finally add a subproject to your (super)project!
$ ./subpatch add https://github.com/google/googletest external/googletest -r v1.15.2
$ git commit -m "adding googletest"
If you are interested in finding out more, please see the text below and the website. It contains explanations, tutorials and references about subpatch.
subpatch is interesting for you if you want to do the following tasks:
- assemble a monorepo from multiple repositories
- integrate third party dependencies into your project as source files
- maintain a local fork (with a linear patchstack) of an upstream project
subpatch is a multi-repository management tool based on the following ideas:
- It's based on
git add
. The files of subprojects are added as normal files to the superproject. - Subprojects are in most cases just other git repositories.
- The metadata of a subproject is saved in a git-config styled configuration file.
- Modifications of the subproject are possible and subpatch helps to maintain a linear patch stack of the modifications.
- Importing new versions of the subproject is possible and subpatch helps to rebase the local modifications.
When you use subpatch the subprojects are not git repository itself. The files of the subprojects are added as files to the superproject. You will only have to deal with a single git repository.
This is in contrast to other tools, e.g.
These tools manage multiple git repositories at once. Based on a manifest file multiple git repositories are cloned from different upstream sources into your local checkout.
The page Comparison to other tools describes the differences in more detail.
On the subpatch website you find more information, e.g. explanations, tutorials and references. New subpatch releases are announced on the release notes pages, including the release notes and changelog.
The source code of the program and the website can be found in the git repository github.com/lengfeld/subpatch. I have licensed the source code of subpatch as GPL-2.0-only, It's the same license that is also used for the Linux kernel or git itself.
For now there is no dedicated support forum/chat/… . You can either email me or open on issue on github.