Travaillant sur des ré-écritures complètes de projets et restructurant ces projet à partir de web-services, je me pose la question de comment structurer ces codes.
J'ai généralement créé un projet git/gitlab pour mémoriser le vieux code… donc branche master.
Pour l'un, j'ai créé une nouvelle branche (orphan)… je trouve que cette solution a l'avantage de rester dans le même projet,
notamment par rapport à la gestion du projet dans gitlab (issues, milestones…)… et d'éventuels répertoires conservés (j'ai en général un répertoire doc avec le schéma de la base…) ce qui peut être aussi un inconvénient (mélange des issues pour l'ancien et le nouveau projet même s'il est facile de les tagguer)
Pour l'autre, j'ai créé un nouveau projet distinct, ce qui a l'avantage de bien séparer le code mais multiplie les projets dans gitlab et répertoires dans mon "workspace"
Y a-t-il une (des) bonne(s) pratique(s) à ce sujet?
Je viens de trouver ce fil sur !SO : https://stackoverflow.com/questions/14679614/whats-the-best-practice-for-putting-multiple-projects-in-a-git-repository, la solution 3, mais comment faire après coups?
qui propose une solution (3) à partir d'un dépôt vide et une branche v2 (ancien code), une branche v3 (nouveau code)
Un con-frère propose
Gislain D
Par ailleurs, je recommanderai une autre solution qui est donnée dans une autre réponse après la solution 3, l'utilisation de sous-modules git (voir la commande git submodule), ça vous permet d'avoir un dépôt propre par projet (ce qui limite l'entropie de chaque dépôt), mais vous pouvez référencer un dépôt complet comme un sous-module d'un autre projet pour éviter de perdre le lien.
Merci pour cette réponse qui me convient bien, d'autant que pour les web-services qui vont être communs à plusieurs appli… les sous-modules, que j'avais vu mais que je n'avais jamais testé, répondent parfaitement.
Si ça intéresse certains, je viens de faire un test succinct :
https://gitlab.com/bcag2/test-sub-modules vide (juste le README) auquel j'ai ajouté avec un
git submodule add
le sous-module https://gitlab.com/bcag2/ods-php
qui apparait alors comme un répertoire un peu particulier, puisque c'est un lien vers l'autre dépôt
Reste à ce familiariser avec les https://git-scm.com/book/fr/v2/Utilitaires-Git-Sous-modules