2010-09-02 7 views
2

Nous avons deux projets essentiellement, chacun de ces deux principaux projets ont sous-projets dont ils sont constitués. Ce que nous avons en SVN est actuellement 1 repo comme ceci:SVN: Créer un nouveau repo pour chaque projet ou mettre tous les projets dans le coffre?

/SVN-REPO1/MainProj1/ 
    -trunk 
    -branches 
    -tags 

Dois-je créer un tout nouveau dépôt tout à fait et il suffit de mettre MainProj2 à l'intérieur de son propre? Ou dois-je mettre MainProj2 à l'intérieur de SVNREPO1?

Répondre

2

Je pense que cela dépend de la relation entre MainProj1 et MainProj2. Si elles sont très liées, utilisez le même repo.

Création d'un repo différent pour chaque projet est à portée de main pour l'histoire de suivi, la fusion et la ramification de façon indépendante. Vous pouvez toujours le faire si les deux projets sont dans le même référentiel, mais les avoir sur des repos différents rend la chose plus simple.

Pensez à la maintenabilité aussi. La maintenance de ce référentiel, avec deux projets principaux avec des sous-projets, pourrait devenir plus complexe au fur et à mesure de la croissance des projets.

À moins les deux projets ont été très liés les uns aux autres, je pencherais pour des dépôts séparés.

3

De toute façon fonctionne, mais je trouve que lorsque l'on travaille au sein d'une équipe de développement des entreprises, il est plus facile d'utiliser la deuxième approche (mettre MainProj2 l'intérieur SVNREPO1). Je dis cela parce qu'il est plus facile de dire aux nouveaux employés où les choses se passent et que tout le monde doit se rendre à un seul endroit pour obtenir la source. Le seul inconvénient est peut-être que votre repo pourrait devenir très grand et votre téléchargement initial pourrait prendre un certain temps. Rien ne dit que vous devez télécharger le tout en une seule fois, mais si vous ne le faites pas, vous pourriez aussi avoir des repos séparés.

/SVN-REPO1 
    /MainProj1/ 
     /trunk 
     /branches 
     /tags 
    /MainProj2/ 
     /trunk 
     /branches 
     /tags 
+0

Un autre inconvénient de cette approche est que si vous décidez que vous voulez avoir prises en pension séparés, ou si un client vous souhaite vider son projet de la mise en pension afin qu'ils puissent importer dans leur propre prise en pension, etc., vous peut être dans une très longue nuit en attente de l'exécution de la commande svn dump, puis en filtrant leurs validations à partir du fichier journal résultant. En fonction de la taille de votre dépôt global à ce moment-là, vous pourriez parler des heures ou des jours. Voir http://serverfault.com/questions/309464/how-can-i-estimate-the-final-size-and-processing-time-necessary-to-dump-my-entir pour plus d'informations. –

1

Vous devez maintenant que si vous utilisez le même référentiel, le numéro de révision augmentera pour tous les projets. Cela rend plus difficile de savoir rapidement s'il y a de nouveaux commits dans votre projet en suivant juste le dernier numéro de révision.

Si vous donnez des droits d'accès à votre référentiel unique, vous devez vous assurer que vous limitez par sous-dossier (chaque projet) ceci est sujette aux erreurs.

C'est pourquoi je crée un référentiel par projet. Pour les liens entre les projets, il est facile de configurer des externes qui vont montrer la relation.

De plus petites unités bien interconnectées sont souvent plus faciles à gérer. Si vous avez un bon logiciel de gestion de projet, la création des référentiels et la gestion des droits d'accès est facile. Vérifiez Svn Access Manager ou Indefero, ils le font bien.

Questions connexes