2017-09-28 1 views
0

Notre application est construite en architecture microservice, un service un repo. Nous explorons si nous devrions créer un monorepo, comme de nombreuses entreprises suivent cette pratique. Il y a beaucoup de discussions sur les avantages et les inconvénients de mono contre beaucoup. Si nous voulons trouver une alternative pour nous permettre d'avoir des inconvénients des deux options, devrions-nous utiliser des sous-modules git pour fournir une structure mono «à l'apparence»?monorepo VS. github submodules

Répondre

1

Oui, il y a beaucoup de discussions au sujet d'être sous-modules bien/mal, mais je tendance à penser que certains les utilisent mal. Tout comme frapper un clou avec un marteau et ne pas s'attendre à des inconvénients, juste parce qu'ils ont des noms similaires.

Quelques choses à prendre en compte lors de leur utilisation:

  • Ils sont entièrement isolés entre eux et entre le SuperProject. Il n'y aura pas d'histoire détaillée dans le SuperProject du commits dans le sous-module, seulement ceux qui mis à jour il.

  • Lorsque vous faites un commit sur un sous-module, vous avez besoin de le pousser, parce que votre pension dans un autre. Si vous ne le faites pas et que vous allez dans le superprojet pour mettre à jour le sous-module, vous obtiendrez une référence à un commit qui n'a pas été poussé. Et cela conduira à encore plus de problèmes et de confusion.

Ce sont des exemples de situations je trouve très souvent et les gens se plaignent, mais je ne considère pas ces derniers comme contre, juste des choses que nous devons être conscients de ce que nous pouvons décider si elle convient à notre projet ou pas.

utilisaient dans un projet qui a un autre intégré, plus comme un module. Ils sont tous deux développés séparément, et de temps en temps nous mettons à jour le module vers une nouvelle version, ou tout simplement le garder à un certain pour des raisons de compatibilité. Nous n'avons pas besoin de savoir qui travaille sur le module, ou ce qu'ils ont fait, nous voulons juste savoir quand ils ont sorti une nouvelle version/corrigé quelque chose.

Peut-être que quelqu'un avec plus d'expérience partageront, nous avons besoin que cela.

+0

Merci pour le partage. Oui, nous devons d'abord pousser à l'intérieur des sous-modules avant de passer au module parent pour pousser ... Une autre chose que je trouve est que l'EDI (webstorm) ne reconnaît pas et passe automatiquement à la caisse git checkout dans le terminal au niveau sous-module, ce qui pourrait être très trompeur ... – Hammer

+0

Pas de problème. En ce qui concerne l'EDI, si vous allez dans Paramètres/Contrôle de version, voyez-vous le chemin vers les deux repos, ou seulement le parent? Mon PhpStorm semble être conscient des deux. –

+0

mais quand vous ouvrez le terminal pour aller dans le sous-module pour faire un git checkout à une autre branche, puis revenez à l'IDE à nouveau, naviguez vers ce dossier sous-module, en bas à droite, voyez-vous la nouvelle extraction de branche? Pour mon cas, après avoir configuré le paramètre VC, je peux tout voir, mais avoir à basculer manuellement – Hammer