Vous aurez besoin d'un référentiel pour chacune des pièces. (chaque projet et un ou plusieurs pour les parties partagées).
Pour inclure ces parties partagées, deux possibilités s'offrent à vous.
D'abord le facile, vous créez une gemme (privée) pour les parties partagées, ce qui signifie que vous n'avez rien besoin de lier quoi que ce soit, ajoutez simplement gem [gemname] à votre Gemfile. Lorsque vous mettez à jour la gemme, tous les projets utilisent le code modifié. Lorsque vous souhaitez inclure le code externe dans votre projet, vous avez besoin d'un peu d'organisation. Vous créez une carte racine dans laquelle vous clonez le référentiel partagé et le référentiel de projet. Ensuite, vous créez un lien symbolique (relatif) vers le dossier de code partagé. Vous pouvez simplement ajouter ce lien symbolique à votre dépôt git et le valider. Vous devez mettre à jour et valider les deux référentiels séparément.
Un exemple de la seconde méthode:
- projectfolder
--- shared code
--- project code
----- lib
------- shared (link to shared code)
Le lien vers le code partagé est créé par la commande de ln "Code ../../../shared" partagée
Ofcourse, cela ne fonctionne que sur les systèmes supportant les liens symboliques (mac et * nix)