2009-06-16 6 views
0

Dire que j'ai une disposition de repositry comme ce qui suit:Manipulation des références de projet lors de l'utilisation de contrôle de version avec plusieurs projets

|Root 
    |->CommonLib 
    |->ProjectA.PartA 
     |->trunk 
      |->lib 
      |->src 
      //etc 
    |->ProjectA.PartB 
     |->trunk 
      |->lib 
      |->src 
    //About four more projects. 

Maintenant, je les diviser comme ça pour que je puisse travailler sur chaque section différente et les branche si J'ai besoin de.

ProjectA.PartA utilise ProjectA.PartB comme référence. Avant de le structurer comme cela, j'avais tous les jonctions de projet dans un dossier src et je tirais simplement ce dossier, puis j'ajoutais les projets à une solution et j'ajoutais simplement des références de projet entre eux.

Cela a bien fonctionné alors qu'ils étaient tous dans le même dossier mais je pense que ce n'est probablement pas une bonne pratique et cela vous oblige à avoir la même structure de caisse de dossiers ou les dépendances se brisent. Mes pensées pour construire chaque projet et stocker les binaires dans le dossier CommonLib à la racine puis utilise svn: externals sur chaque projet pour retirer ses dépendances du dossier CommonLib dans son dossier lib et ajouter une référence que plutôt que le projet lui-même.

Est-ce que la solution ci-dessus serait meilleure que d'ajouter des références de projet?

Quelle est la pratique courante lorsqu'on a des références de projet internes?

Si elles font toutes partie du même «objectif», est-ce que je devrais juste configurer des externals sur tous les dossiers de projet pour tirer vers le bas les dépendances en tant que source?

Merci.

+0

Juste pour être sûr, partA et partB font partie du même projet, ou est-ce que partB est susceptible d'être partagé avec d'autres projets? –

+0

Oui à peu près, l'un est le DAL et l'autre est le contrôleur et les autres sont des choses comme l'interface utilisateur et d'autres couches. –

Répondre

2

Les copies SVN sont bon marché et les fusions SVN sont faciles. Je voudrais donc simplement m'en tenir à une solution racine et faire en sorte que les projets se réfèrent mutuellement. Branche le tout si tu en as besoin, puis réintègre.

1

Habituellement, je référence le projet de chaque solution en utilisant des externes plutôt que la bibliothèque elle-même. Dans ce cas, il est très important d'avoir des tests unitaires dans chaque projet pour les tests de régression.

Il est également bon (et probablement plus sûr) de stocker les binaires et de les référencer avec des externes. Si c'était le cas, je marquerais chaque version du binaire de dépendance et je ferais référence à cela. Si je voulais mettre à niveau, je changerais l'externe pour utiliser la nouvelle étiquette - ceci te permet de mettre à jour plus sûrement une bibliothèque. Je viens de me rendre compte que vous étiez en train de diviser en deux parties d'un même projet - ma réponse ci-dessus concerne les bibliothèques partagées entre plusieurs projets. Je les garderais dans la même malle que Wyatt a dit

Questions connexes