33 votes

Structure de dossiers pour de nombreux projets dans un référentiel SVN?

Je viens de créer un Google Code dépôt SVN pour le stockage de mes projets d'école et les devoirs à faire, et afin de faciliter le transfert entre l'école et la maison.

Ses répertoires par défaut, il crée sont:

https://simucal-projects.googlecode.com/svn/trunk/
https://simucal-projects.googlecode.com/svn/tags/
https://simucal-projects.googlecode.com/svn/branches/

Je n'ai jamais utilisé un référentiel pour plus d'un projet, mais après la lecture de: Un dépôt svn ou plusieurs? J'ai décidé d'avoir un référentiel unique pour l'ensemble de mes aléatoire des projets d'école.

Dois-je simplement reproduire la structure du dossier ci-dessus, mais, pour chaque projet?

https://simucal-projects.googlecode.com/svn/projectA/trunk/
https://simucal-projects.googlecode.com/svn/projectA/tags/
https://simucal-projects.googlecode.com/svn/projectA/branches/

https://simucal-projects.googlecode.com/svn/projectB/trunk/
https://simucal-projects.googlecode.com/svn/projectB/tags/
https://simucal-projects.googlecode.com/svn/projectB/branches/

Est-ce que vous multi-projets-en-un-repo-on faire?

48voto

Trumpi Points 4190

Vous avez deux options pour cela. Celui que vous avez déjà mentionné, et qui est d'avoir un tronc pour chaque projet (option 1):

https://simucal-projects.googlecode.com/svn/projectA/trunk/
https://simucal-projects.googlecode.com/svn/projectA/tags/
https://simucal-projects.googlecode.com/svn/projectA/branches/

https://simucal-projects.googlecode.com/svn/projectB/trunk/
https://simucal-projects.googlecode.com/svn/projectB/tags/
https://simucal-projects.googlecode.com/svn/projectB/branches/

L'Option 2 serait d'avoir un tronc de chaque projet étant un sous-dossier dans le coffre:

https://simucal-projects.googlecode.com/svn/trunk/projectA/
https://simucal-projects.googlecode.com/svn/tags/projectA/
https://simucal-projects.googlecode.com/svn/branches/projectA/

https://simucal-projects.googlecode.com/svn/trunk/projectB/
https://simucal-projects.googlecode.com/svn/tags/projectB/
https://simucal-projects.googlecode.com/svn/branches/projectB/

L'avantage de l'option 1, c'est que vous pouvez la branche et de l'étiquette de chaque projet de façon indépendante. Ce qui est souhaitable si vous avez besoin pour déployer chaque projet séparément.

L'Option 2 est souhaitable, si tous les projets sont déployés. C'est parce que vous avez seulement à toucher le référentiel une fois lors du déploiement.

Puisque vous utilisez Subversion pour les projets d'école, vous devez vous demander si vous aurez jamais besoin de balise de votre travail. Vous pouvez également vous demander si jamais vous avez besoin de créer des branches (probablement que vous vous voulez si vous voulez expérimenter un peu). Vous aurez aussi besoin de vous demander si vous êtes heureux de direction de l'ENSEMBLE de votre travail comme un ensemble, si vous préférez la souplesse de la ramification de chaque projet de façon indépendante.

La règle de base que j'ai toujours suivre: tronc ensemble ce que nous déployons ensemble.

(En passant, vous pouvez avoir beaucoup de trunks dans le même référentiel - ce qui est presque équivalent à un tronc d'arbre dans plusieurs référentiels, sauf que chaque référentiel maintient sa propre révision compteur et vous ne pouvez pas fusionner entre les dépôts.)

9voto

Quintin Robinson Points 41988

C'est ce que j'utilise pour mon contrôle de source à domicile.

Où je n'ai qu'un seul référentiel principal.

Référentiel / Projet1 / Tronc
Référentiel / Projet1 / Balises
Référentiel / Projet1 / Branches

Référentiel / Projet2 / Tronc
Référentiel / Projet2 / Balises
Référentiel / Projet2 / Branches

J'aime cette structure, c'est très facile de référencer des projets et de maintenir l'intégrité.

6voto

Milen A. Radev Points 20462

Un exemple concret: le référentiel des projets Apache.

2voto

Energiequant Points 790

Il n'y a pas de réponse claire à cette question car cela dépend de ce qui convient à vos projets de meilleur.

  1. Je voudrais utiliser /projectA/trunk mise en page s'il y avait soit un lourds en cours de développement par projet et tout ce qui doit être séparé des autres car il n'y a pas beaucoup de lien entre elle (composants/projets autonomes). Cependant, vous pouvez également utiliser un dépôt SVN par projet. Rappelez-vous, vous ne serez pas en mesure de vérifier tous les projets utilisant svn co http://..../svn/ parce que cela permettrait aussi de récupérer toutes les balises et les branches de tous les projets, non seulement le tronc.
  2. /trunk/projectA serait certainement mieux, si vos projets/composants appartiennent bien ensemble et vous avez besoin de la balise et de la direction générale de la même révision (comme une bibliothèque appartenant très étroitement à l'objectif principal du projet). Vous pouvez également utiliser svn co http://.../svn/trunk/ pour obtenir tous les projets sur leur dernier tronc de révision, si vous le souhaitez.

À partir d'une maintenabilité du point de vue j'aurais presque toujours préférer la deuxième façon; mais si vos projets deviennent de plus et peut prolonger, il serait préférable d'utiliser des référentiels par projet.

Outre que: Veuillez vérifier si vous avez vraiment besoin de Google Code services pour vos devoirs, car son but est de soutenir les systèmes d'exploitation. Vous pouvez toujours utiliser SVN localement ou même à travers SSH, donc vous pouvez aussi mettre vos dépôts sur une clé USB ou d'un ordinateur qui peut être accédé à distance; vous n'avez pas vraiment besoin d'hébergement pour cela. Il pourrait également y avoir des problèmes de confidentialité.

2voto

Pawel Krakowiak Points 3494

Si vous insistez pour n'avoir qu'un seul référentiel (je suis moi-même dans le camp NE PAS FAIRE) et que vous effectuez des branchements, je pense que ce que vous proposez est bon. Mais encore une fois, je considère qu'un référentiel SVN est égal à un projet.

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