Bonjour à tous !

Premier post... Je me présente vite fait. 33ans, dev php.. (Du vite fait)

Déjà bravo à Grafikart... Propre net et précis.

Voici donc ma question...
J'utilise GIT de manière basique... Je crée donc des projets single mais j'aimerais aller plus loin...

J'utilise Vagrant pour me créer des environnements - le tout en bash car les provision chef me semblent pas aussi précises que via des bons vieux scripts - Ca concerne ma question (j'ai un dépôt vagrant en dev si ca interesse du monde : https://github.com/Imaginaerum/vagrant-ubuntu ou bien sur packagist: https://packagist.org/packages/imaginaerum/vagrant-ubuntu - Ca me permettra également de le debugger... En gros il instale un LAMP, du nodejs, npm, des nodes modules utiles pour faire du grunt, du compass et quelques fioritures ici et là... On peu installer un magento ou un symfony egalement (cake,wp, et toute la clique en cours)... - La doc est pas trés fournie pour le moment, mais les connaisseurs sauront s'en sortir ;))

Je reviens donc à ma question:

Je voudrais donc créer des projets qui utilisent des dépendances (git, etc)

Je voudrais créer un projet GITé qui soit un dépôt et qu'il utilise des dépendances...

Par l'exemple ca donne ca:
Je crée un projet pour la société X qui tourne sur CakePHP...
Je veux donc pourvoir utiliser CakePHP avec composer, mais aussi utiliser mon dépôt Vagrant (qui est sur github) pour créer mon environnement...

Sauf que j'ai pas envie de faire un copier/coller des fichiers de mon dépôt Vagrant... Ni inclure ces fichiers dans mon dépot de projet client (commit)...
J'ai développé des super modules qui sont également sous git... Et j'aimerais les inclure dans mon projet... Sauf que pareil, j'ai pas envie de faire des copier/coller, ni les commiter dans mon projet client...

Avec Composer on peut gérer les dependances, mais admettons que j'ai des fichiers qui se positionnent dans plusieurs répertoires ici et là et a plusieurs niveaux... Créer un script postinstall pour composer qui fasse cette tache pour dispatcher est une solution... Mais ca parait lourds... Avec git, je peux pas deplacer les fichiers...

Bref... Comment puis gérer des dépendances qui sachent quels fichiers appartient à qui ? Ceci pour éviter de faire du copier/coller et rester cohérents dans le workflow du projet...
A mon avis impossible...
Ou alors j'ai pas la bonne méthode...

J'espère que ma question est claire ^^

Merci d'avance...

2 réponses


Ce que tu veux faire ressemble a des "submodules"
C'est un outils de git qui te permet d'utiliser d'autres dépot git dans ton dépot git :) jte laisse google ça :)

Merci pour la réponse, je connais l'aspect des submodules (voir des subtrees), mais c'est pas toujours adapté... Et je débute sous git, donc même avec un sourcetree, utiliser les submodules reste un peu obscure...

Imaginons l'arbo suivante:
Racine
| Dossier 1
|
Dossier 2
|___Sous dossier 1

Si je crée un dépôt seul, tout va bien...

Mais imaginons que ce dossier soit un framework et qu'un plugin soit dispatché dans le dossier 1 et le sous dossier 1 (exemple de magento qui utilise différtents dossier de l'arbo)...

Je vois pas comment les submodules peuvent gérer ça :(