Supposons que nous avons les éléments suivants structure du dépôt sur github:
company:project.git
\- company:submodule.git
Un développeur dans mon entreprise, les fourches de la société de projet, prise de son espace de travail ressemble à ceci:
developer:project.git
\- company:submodule.git
C'est très bien pour 90% des développeurs puisqu'ils ne changent pas le sous-module de la bibliothèque, ils ne fonctionnent que dans le projet. Maintenant, supposons qu'il y a une nouvelle fonctionnalité qui nécessite des améliorations dans le sous-module. Le développeur chargé de cette convertit son espace de travail, pour cela:
developer:project.git
\- developer:submodule.git
Y arriver n'est pas anodin puisqu'il doit remplacer un submdule avec un autre sous-module (git, l'original et la fourche de la sous-module sont deux choses différentes).
Si ce développeur travaille sur la bibliothèque pour un peu plus de temps, il commet cette structure à son maître de la branche, de sorte que son fork sur github utilise toujours la fourche sous-module.
Une fois qu'il est prêt avec le développement, il va créer une pull request. Le problème est que lors de la fusion de la demande d'extraction le principal référentiel ressemblera à ceci:
company:project.git
\- developer:submodule.git
Ceci est problématique car maintenant chaque développeur qui suit la direction de la société va se retrouver avec le développeur du sous-module.
Pour contourner ce problème, avant que le développeur fait une demande d'extraction, son maître de la branche devraient être retournés à la société:sous-module.git - ce qui est juste très maladroit, surtout depuis que localement il va toujours encore envie de travailler avec développeur:sous-module.git.
Nous avons essayé plusieurs flux de travail, et le problème ci-dessus est la seule où nous n'avons pas un bon flux de travail encore.