[reSIProcate] replacing contrib folder with git submodules

Daniel Pocock daniel at pocock.pro
Sun Mar 29 10:12:22 CDT 2020



Hi all,

Git offers a feature called submodules that allows us to pull other
repositories into our own.  You can think of them like pointers or symlinks.

It is an alternative to keeping full copies of things in the contrib/
folder and releasing a contrib tarball.

It is not completely identical though:

- if the upstream projects release tarballs based only on their Git
tags, the contents of a submodule are identical

- if the upstream projects use 'make dist' or a similar mechanism to
create tarballs, their release tool puts extra things in their tarball
that are /not/ in their tag.  In this case, a snapshot of their tarball
in the contrib/ folder remains the better solution.  Example: our tags
contain resiprocate.spec.in and our release tarballs contain an extra
file, resiprocate.spec, generated from the .in file.

Using submodules reduces the size of the repository

It is valid with any Git service, not only Github

Regards,

Daniel



More information about the resiprocate-devel mailing list