I. Présentation

I-A. Perforce SCM

Perforce est un outil de gestion de configuration logicielle construit autour d'une architecture client/serveur. Les utilisateurs peuvent accéder au serveur de Perforce à travers une gamme de logiciel client. Un tel outil doit être utilisé dans le processus de développement de logiciels, Perforce est là pour répondre aux attentes des développeurs.

Schéma du système Perforce

I-B. Gestion de configuration

La gestion de configuration (tout court) est un terme utilisé non seulement en informatique mais dans les autres domaines à savoir en aéronautique, en automobile, en construction navale, en armement, etc. En informatique surtout en développement de logiciels, elle est employée de manière à stocker et tracer les différentes versions ou révisions de toute information destinée à être utilisée par un système (matériel, logiciel, document, donnée unitaire, etc.). Il existe de nombreux logiciels de gestion de configuration commerciaux, payants ou gratuits; Perforce est payant mais personnellement, je trouve qu'il vaut bien son prix.

Pourquoi la gestion d'une configuration logicielle est-elle si vitale? Il est indispensable d'utiliser un SCM si on travaille à plusieurs sur un même projet, on peut facilement fusionner les modifications et gérer les différentes versions d'un projet. Par exemple, un logiciel de gestion de versions va agir sur une arborescence de fichiers afin de conserver toutes les versions des fichiers, ainsi que les différences entre les fichiers. Ainsi, les développeurs qui travaillent autour d'un logiciel peuvent suivre toute évolution du code source. La gestion de versions n'est alors qu'une partie de Perforce!

II. Détails de Perforce

II-A. Plates-formes

Perforce peut fonctionner sur de nombreux types de systèmes d'exploitation:

  • Microsoft Windows ;
  • Linux ;
  • Sun Solaris ;
  • Mac OS X ;
  • FreeBSD x86 ;
  • etc .

II-B. Serveur Perforce

Synoptique serveur Perforce Comme dit auparavant, Perforce travaille autour d'une architecture client/serveur basée sur le protocole TCP/IP. L'application serveur sera hébergée sur un hôte central et les clients peuvent se trouver n'importe où, que ce soit dans un réseau local ou dans les coins réculés du globe par voie Internet. Pour le serveur, aucun matériel spécial n'est exigé, autre que le stockage pour dépôt et les fichiers de la base de données. La clé de sa performance reste fermement sur trois piliers. Une base de données relationnelle avec soin accordée assure des temps de la réponse rapides. Son protocole réseau efficace minimise les temps d'attente. Le modèle de gestion de configuration logicielle avancé Perforce est géré par la base de données. Tous les utilisateurs ont accès au même modèle, où qu'ils se trouvent et quelle que soit la plate-forme client installée.

II-C. Client Perforce

On parlera ici de P4V ou "Perforce Visual Client", le logiciel client à interface graphique de Perforce qui fonctionne sur diverses plates-formes, cette interface est la même sur tous les systèmes d'exploitation supportés.

P4V permet de connecter votre ordinateur au serveur Perforce et de déplacer vos fichiers et vos dossiers entre les dépôts et votre espace de travail (répertoire de travail se situant sur l'ordinateur client utilisant P4V).

Synoptique client-serveur

II-D. Autres composants

Le serveur Perforce constitue le composant principal et vital de ce système car c'est en fait lui qui est vraiment payant. Comme client, il suffit d'utiliser Perforce Visual Client qui est téléchargeable gratuitement sur le site de Perforce.

Les autres composants de Perforce sont : P4Web, P4Win et Perforce Defect Tracking Gateway (P4DTG). Prenons P4Web, il s'agit du client web de Perforce. Ce dernier fournit un accès aux dépôts de Perforce c'est à dire à l'historique des versions de fichiers, les fichiers ajoutés et les fichiers supprimés dans un espace de travail à partir d'un navigateur web. De plus, on peut utiliser un flux RSS pour être alerté des dernières mises à jour.

Il existe également un plugin Perforce pour l'environnement EclipseAnnonce sur les forums, ce qui est particulièrement utile pour les entreprises qui développement avec plusieurs langages de programmation. Commentez

III. Démarrer pour la première fois avec Perforce

Il s'agit de vous montrer l'installation et le lancement de Perforce. Ici, le test se fait sur une plate-forme Windows (2000, XP, Server 2003) mais le lancement se ressemble aussi sur les autres plates-formes. Il faut remarquer que Perforce Software fournit une assistance à ses clients qui n'utilisent encore que la version d'évaluation.

L'installation se fait en lançant perforce.exe pour une plate-forme Windows. Choisissez l'option "Perforce Administrator Install (Typical)"

network
Entrer le nom de machine et le port à utiliser par le serveur
user
Entrer le nom d'utilisateur ou le créer
workspace
Choisir l'emplacement de l'espace de travail local
files
Chargement initial des fichiers

Ce serveur est un service Windows donc n'a pas d'interface visuelle. On peut le lancer à partir des Outils d'administration>Services (services.msc) , le nom du service correspondant est Perforce , on peut également lancer le serveur Perforce Proxy qui est utile pour un groupe de travail oeuvrant dans divers coins du globe.

Comme logiciel client, il faut se procurer de Perforce Visual Client (p4v) et l'installer. Lorsqu'on lance le client, on s'attend à une interface simple et agréable. N'oublions pas que Perforce a été conçu par des ingénieurs logiciels pour des ingénieurs logiciels. C'est pourquoi sa conception élégante, sa rapidité et sa technologie de pointe attirent ceux qui souhaitent utiliser un système gestion de configuration logicielle inégalé.

Image non disponible Image non disponible Il ne faut pas oublier de créer un utilisateur lorsque vous l'utilisez pour la première fois ; votre adresse mail sera aussi utile. Demandez à l'administrateur Perforce les informations sur l'adresse IP ou le nom du serveur. Par défaut, le port utilisé est le 1666 . Pour voir la liste des utilisateurs et des espaces de travail disponibles, cliquez sur Browse . Outre l'interface fenêtrée, le client Perforce peut être aussi utilisé en mode ligne de commande (p4).
Interface principale P4V Après avoir été authentifié à l'ouverture d'une connexion, on arrive à l'écran principal. Au premier abord, une boîte de message alerte la fin de la durée du ticket de l'utilisateur, cela dure 12 heures (11 heures 59) en général. Naviguer sur cette fenêtre s'avère facile. Le panneau Files in Folder permet de lister les fichiers contenus dans les dossiers que vous visionnez à gauche (onglet Depot ou Workspace) ; l'affichage peut se faire en listes, en détails, en icônes par le menu View > Show Files As . Les onglets du panneau droit "Files in Folder" permet par contre d'afficher les spécifications de Perforce comme les informations sur les fichiers. L'un des panneaux qui m'ont vraiment intéressés, est le panneau Log ou journal qui affiche les messages d'erreurs et de résultats mais surtout l'affichage des commandes p4 : un moyen d'apprendre Perforce en ligne de commande car les utilisateurs senior de ce logiciel sont le plus souvent des adeptes de la ligne de commande. Pour avoir plus d'informations sur l'utilisation de la ligne de commande, cliquez ici. Image non disponible Image non disponible

III-A. Configurer votre espace de travail

Pour définir un nouvel espace de travail, sélectionner le menu Connection > Workspace mais si vous voulez seulement changer les propriétés d'un espace de travail existant, sélectionner Connection > Edit Current Space

III-B. Dépôt

C'est un répertoire où sont archivés les fichiers des différents projets, ainsi que les informations relatives à chaque version. Il est souvent appelé « repository » dans les autres logiciels de gestion de configuration.

III-C. Ajouter des fichiers ou des dossiers dans le dépôt

Il se peut qu'avant d'avoir utilisé un système de gestion de configuration logicielle, vous avez travaillé dans un espace de travail (un ensemble de fichiers et de dossiers contenant votre projet) pour développer un projet informatique. Il faut alors migrer ce dernier vers le dépôt pour suivre son évolution et faciliter sa modification.

Il suffit d'aller dans le panneau droit onglet Workspace , naviguer vers le dossier ou le fichier à copier vers le dépôt, choisir Mark for add dans le menu contextuel obtenu par le clic droit.

III-D. Visionner les fichiers dans le dépôt

Dans le panneau droit onglet Depot , parcourir vers le fichier ou le dossier que vous voulez visionner.

Pour consulter les versions récentes ou les anciennes versions, il suffit de sélectionner respectivement Get Latest Revision ou Get Revision sur le menu contextuel obtenu dans l'onglet Depot.

Dépôt !

III-E. Un checkout des fichiers dans le dépôt

Il s'agit d'obtenir une copie locale da la dernière version d'un fichier du dépôt.

Choisir le fichier dans l'onglet de dépôt.

Cliquer Check out dans le menu contextuel. Après le checkout, le fichier est affecté d'une marque de coche rouge indiquant qu'il a été « checked out », c'est-à-dire que le fichier dans le dépôt a été effectivement copié.

On peut alors tracer l'historique des changements par le menu View > Pending Changelists  par l'icône en triangle rouge sur la barre d'outils ; le panneau droit sera alors attribué à cet affichage. On peut aussi cliquer tout simplement sur l'onglet Pending dans le panneau droit.

Une fois que les fichiers du dépôt sont copiés dans votre espace de travail après le checkout, on peut y travailler et éventuellement les modifier. Ici, j'ai travaillé en local pour travailler sur le développement d'un petit programme de démineur.

III-F. Comparer les fichiers « checked out » et vos fichiers

Cela se fait par l'outil P4Merge qui est livré avec Perforce Visual Client (P4V).

Image non disponible Image non disponible

III-G. Visionner la révision d'un fichier dans un diagramme

Perforce est un outil puissant surtout en matière d'interface graphique car il permet de faire abstraction totale aux lignes de commande. Ainsi, on peut voir en détails l'historique de révision de fichier dans un diagramme comme l'image qui suit :

Image non disponible Image non disponible

III-H. Corollaire

Le client visuel Perforce fournit une multitude de fonctions intéressantes qui ne sont pas disponibles en mode lignes de commande, cela le différencie des autres SCM plus connus à cause de leur gratuité à savoir CVS, Subversion, etc. Le menu contextuel sur l'explorateur du dépôt et de l'espace de travail permet d'exécuter les fonctions de base d'un SCM comme le checkout, l'update, le commit, etc. :

Menu contextuel

Il ne me reste qu'à vous inviter à le tester. Si vous avez utilisé jusqu'à aujourd'hui les SCM payants comme Visual SourceSafe de Microsoft ou StarTeam de Borland, essayez Perforce car il est disponible en version gratuite d'évaluation. Faites vous-mêmes la comparaison, j'aimerais vous préciser que Perforce Software Inc. est une équipe d'ingénieurs travaillant uniquement pour le développement de ce système de gestion de configuration, d'où la grande qualité du produit.

IV. Rapport qualité/prix

Perforce est payant mais ce n'est pas son inconvénient car il offre beaucoup plus de possibilités que les autres solutions de gestion de configuration existantes. Les utilisateurs apprécient avant tout la rapidité et le faible prix de Perforce.

Il est à remarquer que dès la page d'accueil du site web de ce produit, on voit au slogan suivant :

Perforce The Fast Software Configuration Management

(Perforce, le système de gestion de configuration logicielle rapide)

Et ce n'est pas du bluff !!

De plus, on peut télécharger gratuitement tous les logiciels Perforce sauf le serveur Perforce. Il faut souscrire une licence pour le serveur pour accepter plus d'utilisateurs et un nombre illimité de postes clients. Pour en savoir plus sur la licence d'utilisation de Perforce, aller à l'adresse FAQ sur la licence.

Perforce est actuellement commercialisé à seulement 800$ par utilisateur. Le coût comprend l'assistance et les mises à jour. En fait, il y a donc un service avant et après vente, du rarement vu en informatique.

V. Conclusion

En guise de conclusion, je pense que Perforce est un outil indispensable pour les professionnels du développement logiciel. En effet, tout développement de logiciel requiert des outils de gestion de configuration logicielle (GCL) pour gérer les modifications apportées. Non seulement ce logiciel vous permettra de gagner beaucoup de temps, mais il vous permet surtout de travailler méthodiquement afin d'être plus productif.

Un point noir regrettable est qu'il est en version anglaise, le site web correspondant l'est aussi, seules quelques pages sont écrites en d'autres langues comme le français, l'allemand, le japonais... Il ne devrait pas y avoir beaucoup de soucis car tout de même il est très facile d'utilisation.

Rappelons que la version du serveur en cours est le 2008.2 ainsi que pour le client Perforce, toutes deux disponibles en téléchargement pour évaluer Perforce gratuitement et sans obligation, apportant des améliorations aux outils clients tels que le Client Windows Perforce, le Client Web Perforce, le Plug-in Perforce pour Windows Explorer et le Plug-in FTP Perforce. (Voir les release notes)

De nombreuses grandes sociétés utilisent actuellement le système GCL Perforce (en anglais Perforce SCM, System Configuration Management) allant d'une petite entreprise à la multinationale citons Barra, Electronic Arts, National Instruments, Symantec, etc.

VI. A propos de Perforce

Perforce Software Inc. a été créé en 1995 dans l'unique but de développer et de commercialiser le système rapide de gestion de configuration logicielle Perforce. L'équipe de Perforce Software consacre alors tous leurs efforts dans le développement et la maintenance de ce produit dans le but de satisfaire les clients qui sont en général des éditeurs de logiciels mais aussi finance - banque - assurance, secteur pharmaceutique. En effet, Tout développement de logiciel requiert des outils de gestion de configuration logicielle pour gérer les modifications apportées lorsque vous développez vos logiciels.

Perforce Software Inc. est basée à Alameda en Californie, cette société vend cet outil dans le monde entier : Internet reste l'outil de prédilection de Perforce Software pour la vente et la distribution de ses produits, il assure aussi le service d'assistance à la clientèle par Internet. Elle possède des filiales dans d'autres pays comme le Royaume Uni, l'Allemagne, la France, l'Inde et le Japon.