A.2.2. Creating a superproject

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.

Important

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.

Note

See the git-submodule manpage for more information.