38 votes

Dois-je stocker tous les projets dans un seul dépôt ou dans plusieurs ?

J'utilise actuellement TortoiseSVN pour gérer un certain nombre de projets que j'ai en cours en ce moment. Lorsque j'ai tout déplacé pour la première fois dans le contrôle de source, je n'étais pas vraiment sûr de la façon dont tout devait être disposé, j'ai donc fini par mettre chaque projet dans son propre référentiel.

Je me demandais si ce serait une bonne idée de les déplacer dans un seul grand dépôt et de les diviser en dossiers de projets ? Que font les autres ?

Pour l'instant, aucun d'entre eux ne partage un code commun, mais ils pourraient le faire à l'avenir. Serait-il plus facile de les gérer s'ils étaient tous ensemble ?

Gracias.

31voto

Steve Jessop Points 166970

Cela dépend dans une certaine mesure de ce que vous entendez par "projet".

J'ai un référentiel local général contenant des morceaux aléatoires de ce que j'écris (y compris mon site web, puisqu'il est petit). Un dépôt SVN local mono-utilisateur ne va pas souffrir de problèmes de performances notables avant que vous n'ayez passé beaucoup d'années à taper. À ce moment-là, SVN sera de toute façon plus rapide. Je n'ai donc pas encore regretté d'avoir tout regroupé dans un seul dépôt, même si certaines des choses qui s'y trouvent n'ont aucun rapport avec le fait que je les ai toutes écrites.

Si un "projet" signifie "un devoir de classe", ou "les scripts que j'utilise pour piloter mon TiVo", ou "mes progrès dans l'apprentissage d'une nouvelle langue", alors créer un dépôt par projet me semble un peu inutile. Mais encore une fois, cela ne coûte rien non plus. Donc je pense que je dirais de ne pas changer ce que vous faites. A moins que vous ne vouliez vraiment faire l'expérience de réorganiser les dépôts, auquel cas faire changez ce que vous faites :-)

Cependant, si par "projet" vous entendez un "vrai" projet logiciel, avec un accès public au dépôt, alors je pense que des dépôts séparés par projet sont ce qui a du sens : en partie parce que cela divise les choses proprement et que chaque projet évolue indépendamment, mais aussi parce que c'est ce que les gens s'attendent à voir.

Le partage de code entre des dépôts distincts est moins problématique que vous ne le pensez, puisque svn dispose de la fonctionnalité "svn:externals". Cela vous permet de faire pointer un répertoire de votre dépôt vers un répertoire d'un autre dépôt, et de vérifier ce contenu automatiquement en même temps que le vôtre. Voir, comme toujours, le livre SVN pour plus de détails.

8voto

Svet Points 1432

Je les stockerai dans le même dépôt. C'est un peu plus propre. De plus, pourquoi cela serait-il important pour l'intégration continue et autres - vous pouvez toujours extraire un dossier spécifique du référentiel.

Il est également plus facile à administrer - comptes vers un référentiel, journaux d'accès à un référentiel, etc.

6voto

andy Points 3302

Ma règle d'or est de regrouper les choses qui sont livrées ensemble. En d'autres termes, si vous livrez le projet X et le projet Y séparément, mettez-les dans des dépôts séparés.

Oui, cela signifie parfois que vous avez un énorme repo pour un projet qui contient un grand nombre de composants, mais les gens peuvent opérer sur des sous-arbres d'un repo et cela les oblige à penser au "projet entier" lorsqu'ils apportent des modifications au repo.

5voto

Steve Paulo Points 8263

Je garderais absolument chaque projet dans son propre dépôt, séparé de tous les autres. Cela donnera à chaque projet son propre historique de commits. Les retours en arrière sur un projet n'affecteront pas les autres projets.

4voto

paan Points 3075

Personnellement, je préfère que chaque projet ait son propre dépôt.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X