A.2.2. Creating a superproject
A superproject is really just a normal git repository for tracking the states of other repositories.
# Create a new git repository mkdir release cd release git init
Once the repository has been created submodules can be added.
# Add the submodule git submodule add [url] [path/in/superproject/to/be/created]
At this point a new file will have been added called .gitmodules
. This is the submodule configuration file. Another "file" that is created is a pseudofile that corresponds to the path created when the submodule was added. Both of these should be committed.
The url used when adding the submodule can be relative. This is often more desirable than hard coding the path to a specific repository. The main reason is that the content referenced by a particular release repository should actually exist in the Repo Appliance. This is a best practice that allows Repo Appliance state to be backed up with the guarantee that a project's state can be rebuilt and the machines involved can be provisioned. See the git-submodule manpage for more information.
See the git-submodule manpage for more information.