Comparison to other tools
Subpatch is not the first tool that tries to solve the multi repository problem. Other tools are
This page will compare these tools with subpatch.
Technical comparison
The following table compares the architecture of the tools
subpatch | repo | git submodule | west | kas | subtree | |
---|---|---|---|---|---|---|
config format | git-cfg | xml | git-cfg | yaml | yaml | none |
superproject | any(1) | none | git | git | git | git |
subprojects | any(1) | git | git | git | git | git |
language | python | python | C | python | python | shell |
Explanations of the rows:
- config format: The format of the config file that is used to track the information about the subprojects. For repo and west the file is called the manifest file.
- superproject: The type of cvs that is the top level repository and also (often) tracks the configuration of subprojects. (2)
- subprojects: The type of cvs that is support as a subproject. For all other tools, except subpatch, only other git repositories are supported.
- language: The main programming language that the tool is written in.
Legend:
git-cfg
stands for the git config format used in.git/config
,~/.gitconfig
and.gitmodules
.- (1): subpatch does not support all other cvs as super- and subprojects for now. Still work in progress.
- (2): The repo tool is special here. It tracks the subprojects in a manifest file in a separate git repository, the so called manifest repository. But this repository is not part of the directory hierarchy when the project is checked out. It does not sit at the top level of the superproject.
Other multi repository management tools
Apart from the above already mentioned tools there exits a long list of other attempts to solve the multi repository problem. The following list should list all the other tools I have found so far:
If you know additional tools, please post a pull request or email me.