How-To : Configuration de Visual Studio et CVS  parla société Magnitude (http://www.magnit.com)

’utilisation de CVS dans Visual Studio.NET est non seulement possible, mais quelque fois préférable à Visual SourceSafe. En attendant une version des workspaces de gotdotnet intégrée à VS.NET, CVS est une alternative solide, open-source et largement répandue. Son utilisation nécessite tout de même une bonne compréhension de la philosophie générale de l'outil. Pour cela, n'hésitez pas à consulter le site http://www.computas.com/pub/wincvs-howto/, avec notamment le site officiel de CVS et WinCVS. Nous espérons que ce mini How-to vous permettra de prendre en main rapidement CVS sur .NET.

Préparation du poste client 

Installation de CVS

Nous ne traiterons pas ici l’installation d’un serveur CVS, déjà largement documentée, mais seulement de la partie cliente sous VS.NET. Pour notre part, nous avons installé notre serveursur plate-forme Linux, pour des raisons de stabilité, de support et de disponibilité des dernières versions.Rien ne vous empêche d'installer la version sur Windows avec NTCvs. 

Installation de WinCVS

Le client windows de CVS est WinCVS : WinCVS est téléchargeable depuis http://www.wincvs.org.

Intégration àVisual Studio

Il est nécessaire au préalable d'installer la DLL qui vous permettrad'interroger le serveur à l'aide du protocole SCC. Pour cela Installez Iglooqui est téléchargeable depuis http://www.jalindi.com/igloo/.

Intégration d'un projet .NET dans CVS    

VisualStudio dispose d'une interface graphique très conviviale pour l'interfaçageavec la gestion de configuration. La copie d'écran suivante vous illustrele principe général.

Pour intégrer un projet à CVS, il suffit de choisir « Add solution to source control » depuis son menu contextuel. En pratique, nous procédons de la façon suivante, en utilisant WinCVS plutôt que VS.NET…
Nous avons constaté qu’il est beaucoup plus simple d’utiliser CVS lorsque tous les postestravaillant sur un même projet utilisent les mêmes répertoires physiques. Ainsi, tousles développeurs ont dispose d'un répertoire de travail C:\CVS dans lequel l’arborescence reproduit l’arborescence présente sur le serveur CVS.


Pour les projets Web, tous nos postes développeurs ont leur répertoire de base IIS dans C:\Inetpub\wwwroot. Le développement ASP.NET avec contrôle de source est largement simplifié si chacun travaille en local,en utilisant son propre serveur Web.
Si vous n'avez pas la possibilité d'installer IIS sur les postes clients, ilvous suffit de faire appel à partage réseau sur un serveur de développementdans lequel seront placés l'ensemble des répertoires de travail et racinesASP.NET. 

Etant donné la difficulté d’intégrer les ajouts et déplacements de composants une fois le projet sous contrôle de source, nous recommandons de créer si possible la structure du projet avant de l’intégrer au référentiel CVS.
Avant intégration dans CVS, le répertoire d’un projet (ici, un projet Web) vu sous WinCVS aura l’aspect suivant :

Choisir « Import module » dans le menu contextuel, puis sélectionner le chemin du répertoire du projet. Ignorer les fichiers dll et pdb :

Choisir le chemin du projet sur le serveur CVS. Nous utilisons le nom de la solution, un slash, et le nom du projet :

Dans l’onglet général, saisir les coordonnées du serveur CVS.Et oui, tout cela ne s’invente pas (sauf en passant quelques heures à tâtonner, mais vous avez de la chance, on l’a fait pourvous ;-) ) :

Le paramètre d’authentification doit être pserver, le chemin est celui de CVS sur le serveur, host address est l’adresse de votre serveur CVS (dans l’exemple, c’est une adresse de notre réseau interne), user name est le login à utiliser pour la connexion sur le serveur CVS, et CVSROOT doit être de la forme [login]@[Adresse serveur] :[chemin de la racine CVS], comme ci-dessus.
Vous devriez obtenir une réponse de la forme suivante :

Filtering 'C:\Inetpub\wwwroot\Test\SdvTools'...
Filtering 'C:\Inetpub\wwwroot\Test\SdvTools\bin'...
Filtering 'C:\Inetpub\wwwroot\Test\SdvTools\Web References'...
Filtering 'C:\Inetpub\wwwroot\Test\SdvTools\Web References\net.webservicex.www'...
cvs import -I ! -I CVS -I *.pdb -I *.dll -m "Composants Web SDV" SDV/SdvToolsMagnitude Beta1 (in directory C:\Inetpub\wwwroot\Test\SdvTools)

I SDV/SdvTools/bin/SdvTools.dll
I SDV/SdvTools/bin/SdvTools.pdb

N SDV/SdvTools/AssemblyInfo.cs
N SDV/SdvTools/Convert.ascx
N SDV/SdvTools/Convert.ascx.cs
N SDV/SdvTools/Convert.ascx.resx
N SDV/SdvTools/countrycur.xml
N SDV/SdvTools/default.aspx
N SDV/SdvTools/default.aspx.cs
N SDV/SdvTools/default.aspx.resx
N SDV/SdvTools/Global.asax
N SDV/SdvTools/Global.asax.cs
N SDV/SdvTools/Global.asax.resx
N SDV/SdvTools/SdvTools.csproj
N SDV/SdvTools/SdvTools.csproj.webinfo
N SDV/SdvTools/SdvTools.vsdisco
N SDV/SdvTools/Web.config

cvs server: Importing /usr/share/cvs/SDV/SdvTools/Web References
cvs server: Importing /usr/share/cvs/SDV/SdvTools/Web References/net.webservicex.www

N SDV/SdvTools/Web References/net.webservicex.www/CurrencyConvertor.disco
N SDV/SdvTools/Web References/net.webservicex.www/CurrencyConvertor.wsdl
N SDV/SdvTools/Web References/net.webservicex.www/Reference.cs
N SDV/SdvTools/Web References/net.webservicex.www/Reference.map
 

No conflicts created by this import 
*****CVS exited normally with code 0*****

On peut vérifier que l’opération s’est bien déroulée en consultant l’interface Web de CVS:

   

Nous voilà prêts à déployer le projet sur les autres postes de développeurs.

Récupération des projets existants

        Installation de CVS
  1. Créer les répertoires de base devant recevoir la solution.

  2. Ouvrir Visual Studio.net

  3. Créer une nouvelle solution vide : file>new>blank solution

  4. Nom du répertoire : le répertoire créé ci-dessus

  5. Enregistrer la solution vide.

        Intégration des projets

La démarche sera différente selon qu’il s’agit d’un projet Web ou non. Avant d’effectuer ces opérations sur le poste qui a servi à créer le projet, il est nécessaire de vider le répertoire correspondant (nous le mettons de côté, au cas où, plutôt que de l’effacer…)

Projet Non Web

Cliquer sur file>Source Control>add project from source controltoto

-Compléter cvsroot avec une expression de la forme : pserver:[login]@[Adresse serveur]:[Chemin], par exemple ‘:pserver:cvs@192.168.1.122:/usr/share/cvs’
-Cliquer sur check, entrer le mot de passe.
-Créer sous le dossier de la solution le dossier du projet, avec le même nom que celui employé lors de la création du projet sous CVS.
-Dans cvsmodule, saisir le chemin CVS du projet (le même que celui choisi lors de la création).
-Dans localpath, saisir le chemin physique du projet (par exemple C:\CVS\[NomSolution]\[NomProjet]).
-Cliquer sur Connect
-Cliquer sur OverWrite
-Enregistrer la solution
-Fermer Visual Studio.net

Projet Web

Ouvrir WinCVS
Dans l’onglet général de Admin>Preferences, 
- Authentication : pserver
- Path : /usr/share/cvs
- Host : 192.168.1.122
- User : cvs
Dans admin>login, entrer le mot de passe
Dans create cliquer sur checkout module

Saisir les informations demandées afin d’établir le mapping entre le chemin local et le chemin sur le serveur CVS (attention à la casse) :

-Module name : Le chemin du projet sur le serveur CVS
-Cocher override
-Entrer dans « checkout as » le chemin où le projet doit se trouver à partir de c:\inetpub afin de reproduire la même arborescence que sur le poste qui a servi à-Créer le projet, sous le même chemin.
-Faire modify>commit si nécessaire (ou possible)
-Sortir de CVS
-Ouvrir Visual Studio.net
-Ajouter le projet : add existing project from web

Taper http://localhost/MaSolution (à adapter selon votre cas particulier) puishttp://localhost/MaSolution/MonProjet.csproj (à adapter également).

Utilisation depuis Visual Studio .NET

       

A partir de ce moment, toute modification d’un fichier fera l’objet d’une proposition de « checkout » de la part de CVS.

Les fichiers extraits de CVS (en cours de modification) parun tiers sont précédés d’une coche rouge, alors que les fichiers non sortis sont précédés d’un cadenas.
Les développeurs doivent régulièrement « remonter » leurs modifications vers le serveur CVS (typiquement en fin de journée) en utilisant l’outil « pending checkins » de VS.NET :

Inversement, les développeurs doivent régulièrement actualiser leurs solutions (bouton de droite, « get latest version » sur la solution dans l’explorateur de solution), typiquement tous les matins.

Règles d'utilisation

Les créations, les effacements et les déplacements doivent être signalés à tous et répercutées manuellement par tous.
Dans le cas d’une suppression, le simple rafraîchissement doit suffire, puisque le fichier projetsera aussitôt actualisé. Le fichier ne disparaît pas physiquement, mais ne fait plus partie du projet.
Dans le cas d’une création ou d’un déplacement, il est nécessaire en plusde l’actualisation de procéder à la mise à jour du répertoire directement depuis WinCVS. 

Voilà, vous savez tout, amusez vous bien et surtoutn'hésitez pas à nous part de vos commentaires.

DotNetGuru remercie Bertrand Le Roy de lasociété Magnitude (www.magnit.com) pour cedocument

A propos de Magnitude : 
"Totalement dédiée aux technologies Internet depuis sa créationen 1995, MAGNITUDE a su réunir autour d'un noyau d'ingénieurs etd'universitaires de haut niveau, une équipe pluridisciplinaire de consultants,journalistes et Web designers, spécialisés dans la conception, la réalisationet l'hébergement de sites Web et Intranet à forte valeur ajoutéetechnique."

N'hésitez pas à enrichir cet article et à en faire partager lacommunauté.

DotNetGuru - Décembre 2002 

 

Pour en savoir plus ...      

Le site officiel de CVS : www.cvshome.org