subpatch: fearless multi-repository management - stay relaxed!

Welcome to the website of subpatch. The tool that does multi-repository management right. Don't worry, stay relaxed!

Currently this project is just an idea. No code yet. But the general concept is already proven and works!

The subpatch project will provide two things:

  • A command line tool called subpatch to manage subprojects in a source control repository, e.g. in a git repository. The github repository is subpatch.
  • Documentation, explanations and opinions about multi repo setups and management. This is this website.

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.

subpatch usecases

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 (=linear patchstack) of a third party dependency

subpatch's concept

subpatch will be a subprojects management tool based on the following ideas:

  • It's based on the idea of git add and git read-tree. The files of subprojects are added as normal files to the superproject. In most cases this will be just a git repository.
  • 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.

subpatch main difference

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 multi git repository management and try to combine them into a big superproject.