-
submodule ou subtree
Bonjour à tous !
J'ai un projet contenant divers dépendances ( Qt, Zlib, Libpng,... Etc ).
Je souhaite pouvoir récupérer le code source des différents projet. Jusque la j'ai 2 choix selon moi, submodule ou subtree ( je penche plus pour subtree apres plusieurs recherche dessus ).
Maintenant je cherche à savoir comment je peux modifier un subtree ( par exemple Libpng ), sans modifier le dépôt original mais pouvoir obtenir les maj du dépôt ?
En gros je cherche a garder mes modifications dans mon dépôts et pouvoir obtenir les maj quand même.
Je debute sur git.
Je vous remercie,
-
Tes dépendances sont des projets à part entière, ils n'ont rien à faire dans le repo de ton projet.
C'est à ton outil de gestion de packages (maven sur java, bower ou npm pour javascript, etc ...) de te télécharger les livrables de ces dépendances.
J'ai peut être mal compris ton besoin.
-
Bonjour Marco,
Je suis en C++ donc pas de Maven ou autre :)
Pour git j'ai trouver la solution à mon problème dans les submodules et les subtrees :)
J'avais les soucis suivants:
1 - Pouvoir utiliser le git d'un projet public (libpng, zlib,...)
2 - Pouvoir le custom ( Dépot privé ) et pouvoir obtenir les updates du upstream quand même ( subtree dans le dépot privé ). Le dépôt privé contient d'autres choses que l'upstream concernant ce "module"
3 - Pouvoir assurer le projet global de travailler toujours avec une version stable des modules ( branch "stable" ) et également dans le projet global les submodules avec comme URL le dépôt privé sur la branche "stable".
Ainsi je peux
1 - Isoler le développement des modules utilisant des librairies externes et contrôler leurs mise à jours ( 0 régression autorisée ) exemple limiter libpng à la version libpng16 et être sur que même si le dépôt officiel régresse, le dépôt privé n'aura pas ces régressions
2 - Modulariser le projet global
3 - Controler la version des modules même avec des dépôts publics
4 - "git clone URLProjetGlobal --recursive" me permets d'obtenir les branches stables de tous les modules nécessaires à une version stable