Mise en
œuvre CVSNT 2.5/PushOk 2.1.2.5/Powerbuilder 11.2
PH.
BUCAILLE (philippe@bucaille.info)
Ce document rapide explique la mise en œuvre du gestionnaire de sources CVSNT avec Powerbuilder.
Ce document suppose que vous avez déjà le gestionnaire de sources installé CVSNT (http://www.march-hare.com/cvspro/) et fonctionnel sur un serveur.
Sur le poste client Powerbuilder, vous devez avoir installé le plug-in PushOK (CVS SCC plug-in, http://www.pushok.com/)
Sommaire
1. Définition du
gestionnaire de source dans le « workspace « Powerbuilder
2. Ajout du projet au
workspace
3. Mettre le projet sous
source control
4. Etape préalable à la
modification d’un objet
5. Réintégration des
modifications de l’objet
6. Gestion de la
concurrence d’accès
7. Récupération d’une
copie de travail sur un nouveau poste.
Vous commencez par créer un nouvel espace de travail dans powerbuilder. Vous accédez ensuite aux propriétés de cet espace en effectuant un clic droit de souris sur l’espace et en sélectionnant le menu « Properties « :
Dans les propriétés de l’espace de travail « workspace », il faut cliquer sur l’onglet « Source control « et choisir dans la liste déroulante le type de système de contrôle du source « Source Control System » : PushOk CVSSCC NT :
Il faut éventuellement définir le répertoire de travail local du poste « Local Root Directory ». Ensuite, il faut définir les paramètres de connexion au serveur de sources en cliquant sur le bouton « connect » :
Il faut commencer par définir l’emplacement racine de votre serveur CVS. Puis, il faut créer un nouveau module sur votre de serveur de sources qui va définir l’emplacement ou seront stockées les futurs sources (Tester la connexion avec le bouton login, définition du mot de passe).
Pour cela, vous tapez le nom de votre module dans le champ « CVS MODULE » (ex : Tutorial) et vous appuyez sur le bouton « Create ». A l’issue, il devrait s’afficher : « Module successfully created ».
Vous pouvez maintenant fermer la fenêtre de connection au serveur de sources en appuyant sur le bouton « Ok », puis de même pour la fenêtre de propriétés du « workspace «
Maintenant, vous ajouter votre projet « target » à mettre sous source contrôle à votre espace de travail « Workspace » :
Si tout va bien, chaque objet de votre projet doit présenter un petit icône plus vert devant son nom.
Pour cela, il suffit d’effectuer un clic droit de souris sur le projet « target » et de cliquer sur le menu : Add to Source Control…
La fenêtre suivante devrait s’afficher :
Il suffit de cliquer sur le bouton OK pour poursuivre, la fenêtre suivante devrait s’afficher avec l’ensemble des objets du projet de sélectionner à mettre sous source contrôle.
Une nouvelle fois, il suffit de poursuivre en validant le bouton « OK ». A l’issue, le projet devrait être sous source contrôle :
Le petit point vert devant chaque nom d’objet signifie maintenant que chaque objet est sous source contrôle.
Pour modifier un objet, il suffit de faire un clic droit contextuel sur l’objet et de sélectionner l’entrée « Check Out …« du menu :
A l’issue, l’objet doit présenter devant son nom une petite coche signifiant que l’on peut maintenant travailler dessus :
Pour réintégrer les modifications sur un objet, il suffit de faire un clic droit contextuel sur l’objet et de sélectionner l’entrée « Check In …« du menu, la fenêtre suivante devrait s’ouvrir :
Taper un commentaire sur votre modification, puis appuyer sur le bouton Ok de la fenêtre. Votre objet sera à l’issue réactualisé sur le serveur de gestionnaire de sources (vous devriez voir son numéro de version incrémenté) :
Contrairement à d’autres gestionnaires de sources (PVCS, Perforce), CVS par défaut permet la modification simultanée d’un fichier sous source control (« unreserved checkout ») et propose une fusion du source au moment de la réintégration du code.
Pour Powerbuilder, ce mode n’est pas forcément le mieux adapté due à l’agencement du code source. Mais il est possible de changer le mode de fonctionnement de CVS pour passer en mode d’édition non-concurrentielle.
Pour cela, il suffit de cliquer sur le bouton « advanced » des propriétés du workspace dans l’onglet « source control »
Ensuite, il suffit de cocher les options pour le « groupbox Misc » :
Check server for file
status
Determine « Need update or out of
sync » status
Determine “Checkout by someone else” status
Dans le “groupbox Concurrent edit” :
Reserved checkout mode (explicitly restrict
checkout of edited file)
A la suite de cela, un poste est informé qu’un objet est en cours de modification sur un autre poste par le changement de l’icône de statut (croix rouge) devant l’objet Powerbuilder et interdit son édition :
De même, un objet qui n’est pas dans sa dernière version sur le poste par rapport au gestionnaire de sources est signalé par un icône de statut (flèche circulaire) :
Important : vous noterez qu’il n’a jamais été question d’aucune manière de PBL, il n’ y a aucune notion de PBL mise sous source contrôle. Par contre, vous noterez que dans votre répertoire local il est généré automatiquement un fichier avec l’extension PBG portant le même non que la PBL. Ce fichier contient le descriptif du contenu de votre PBL et il est automatiquement mis à jour sur le serveur gestionnaire de sources.
C’est ce fichier qui permet de reconstruire le projet sur un nouveau poste.
Il suffit de récupérer la dernière version du source sur le poste local à partir d’un batch en ligne de commande suivante :
SET BUILD=D:\Program\Tutorial
cvs -d
:pserver:philippe:password@svrweb/Sources/CVS export -d %BUILD% -D 20501231 Tutorial
A l’issue, vous devez donc avoir un répertoire qui contient en ensemble de fichiers textes avec des extensions .srw, .srd, … et .pbg mais pas de pbl. Votre répertoire local doit aussi contenir le fichier de votre projet « target » (extension .pbt) qui est lui aussi également sous source contrôle.
Pour reconstruire, vos librairies (PBL), il suffit de créer le fichier texte contenant le script orca suivant (ex : tutorial.orca) :
(Plus d’info ORCA :
Powerbuilder User’s Guide -> Appendixes -> Appendix B The OrcaScript
Language)
start session
scc set connect
property localprojpath "D:\Program\Tutorial"
scc set connect
property logfile "Tutorial.log"
scc set connect
property logappend false
scc connect offline
scc set target
".\tutorial.pbt" importonly outofdate
scc refresh target
full
scc close
end session
Ensuite, il suffit d’exécuter votre script orca en ligne de commande pour reconstruire totalement vos librairies :
orcascr110.exe tutorial.orca
Note : ORCA peut se connecter au serveur de sources pour extraire la dernière version du projet sans passer par le batch précédent d’extraction (cvs ….). J’ai abandonné cette méthode car elle présente l’inconvénient d’être particulièrement lente