Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 30-09-2008 09:34:30

toto  
Membre Geek
Lieu: Nice
Date d'inscription: 21-05-2007
Messages: 23
Pépites: 111
Banque: 0

[RESOLU] Différences entre contenu de la PBL et objets de la PBL

Bonjour,

le titre n'est pas très explicite, mais j'ai un sacré gros problème, que je vais essayer de résumer.

Il y a quelques années, j'ai récupéré un projet PB avec une 100aine de PBL et environ 15000 objets (datawindows, windows, user_objects, etc).
J'ai donc installé le tout sur un serveur (PBL + objets .sru, .srd, etc) et sur chacun des postes des développeurs, j'ai fait pointer le SCC PBNative vers ce serveur.
Tout allait bien jusque là : on livrait une version de l'application tous les 4 mois : les compilations se faisant à partir des PBL de mon poste (une fois tous les objets modifiés/créés remontés par tous les développeurs).

Mais là, depuis une semaine, j'ai voulu installer SVN pour gérer plus facilement nos sources en configuration, et là, je suis tombé sur un os.
Les sources que j'ai remonté sur le serveur SVN (tous les fichiers .sru, .srd, y compris le .pbl) ne sont pas les derniers à jour : ils datent de 2006 !

Et c'est là que je ne comprend plus rien : pourquoi il y a une différence entre le contenu de la PBL et les objets de la PBL.
Je m'explique : quand j'ouvre le Library Painter, que je me positionne sur un répertoire contenant la PBL et les objets .sru, .srd, ..., si je consulte le contenu via le bloc note d'un user_object, il est à jour des dernières modifications. Si je me positionne sur la PBL et que je consulte le même user_object, il est à une version datant de 2006.... Ce qui veut dire que les objets individuels PB (.sru, .srd, etc) sont plus à jour que la PBL !!!

Est-ce que l'un d'entre vous aurait une idée de ce qui se passe ?
Et comment je pourrai faire pour que les PBLs contiennent les objets réellement up to date ?
J'ai bien essaye de faire des imports sur les PBL à partir des objets .sru, .srd, ... mais le processe se mord la queue car il y a des interdépendances entre les objets.

Merci d'avance pour vos réponses,
Bernard

Dernière modification par toto (30-09-2008 15:49:06)

Hors ligne

 

#2 30-09-2008 10:21:51

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

toto a écrit:

Bonjour,

le titre n'est pas très explicite, mais j'ai un sacré gros problème, que je vais essayer de résumer.

Il y a quelques années, j'ai récupéré un projet PB avec une 100aine de PBL et environ 15000 objets (datawindows, windows, user_objects, etc).
J'ai donc installé le tout sur un serveur (PBL + objets .sru, .srd, etc) et sur chacun des postes des développeurs, j'ai fait pointer le SCC PBNative vers ce serveur.
Tout allait bien jusque là : on livrait une version de l'application tous les 4 mois : les compilations se faisant à partir des PBL de mon poste (une fois tous les objets modifiés/créés remontés par tous les développeurs).

Mais là, depuis une semaine, j'ai voulu installer SVN pour gérer plus facilement nos sources en configuration, et là, je suis tombé sur un os.
Les sources que j'ai remonté sur le serveur SVN (tous les fichiers .sru, .srd, y compris le .pbl) ne sont pas les derniers à jour : ils datent de 2006 !

Et c'est là que je ne comprend plus rien : pourquoi il y a une différence entre le contenu de la PBL et les objets de la PBL.
Je m'explique : quand j'ouvre le Library Painter, que je me positionne sur un répertoire contenant la PBL et les objets .sru, .srd, ..., si je consulte le contenu via le bloc note d'un user_object, il est à jour des dernières modifications. Si je me positionne sur la PBL et que je consulte le même user_object, il est à une version datant de 2006.... Ce qui veut dire que les objets individuels PB (.sru, .srd, etc) sont plus à jour que la PBL !!!

Est-ce que l'un d'entre vous aurait une idée de ce qui se passe ?
Et comment je pourrai faire pour que les PBLs contiennent les objets réellement up to date ?
J'ai bien essaye de faire des imports sur les PBL à partir des objets .sru, .srd, ... mais le processe se mord la queue car il y a des interdépendances entre les objets.

Merci d'avance pour vos réponses,
Bernard

Je crois que les PBL au niveau du source control ne sont pas mis à jour d'ailleurs il n'est pas utile de les mettre sur le serveur.

Hors ligne

 

#3 30-09-2008 11:22:03

toto  
Membre Geek
Lieu: Nice
Date d'inscription: 21-05-2007
Messages: 23
Pépites: 111
Banque: 0

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

Il n'est effectivement - à priori - pas utile de mettre les PBLs sur le serveur (car les gestions de diff/merge seront inopérantes), mais mon problème c'est que quand on travaille dans PB, c'est bien au niveau de la PBL et non pas au niveau des fichiers .sru ou autres, et là, dans mon cas, les PBLs ne reflètent pas du tout la réalité.
Et je ne sais pas comment m'y prendre pour que chaque PBL contienne exactement les objets et les scripts up to date.

Hors ligne

 

#4 30-09-2008 11:25:15

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,100

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

Tes PBL sur les postes client sont à jour non ?

Hors ligne

 

#5 30-09-2008 11:33:45

FMolinas  
Membre Geek
Lieu: Lyon
Date d'inscription: 12-06-2007
Messages: 87
Pépites: 97
Banque: 6,435,474,948,567

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

Il serait intéressant que tu nous décrives un peu comment tu as couplé PB et Subversion. Ce n'est pas trivial, vu que les sources PB sont les "libraries" et qu'a priori svn contrôle les exports texte de tes objets.

Hors ligne

 

#6 30-09-2008 12:00:22

toto  
Membre Geek
Lieu: Nice
Date d'inscription: 21-05-2007
Messages: 23
Pépites: 111
Banque: 0

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

He bien non, plus maintenant. Du moins, plus depuis que j'ai essayé de déclarer Subversion.
J'avais mis tous les objets PB .sru, .srd, etc sur mon poste (copie locale) et j'avais Uploadé tout ça sur le serveur Subversion.
Mais je me suis rendu compte après coup, que ce qui avait été uploadé sur Subversion n'était pas la dernière version : des objets manquaient ou ne reflétaient pas les mises à jour depuis 2 ans.

Il y a quand même un mystère (au moins pour moi).
Sur mon poste, ou bien sur l'ancien serveur, quand je regarde le contenu des PBLs, c'est des sources 2006.
Sur l'ancien serveur, quand je regarde les objets .sru, .srd, etc, ce sont les versions up to date.

Du coup, j'ai remis le SCC PBNative entre mon poste et cet ancien serveur et je fait un Get Latest Version. Et là, il me ramène tous les objets créés sur les 2 ans avec toutes les modifications apportées durant cette période !
Je ne comprend pas bien comment c'est possible si mon poste et le serveur sont en phase (mais avec 2 ans de retard).
Est-ce que ça veut dire que c'est le SCC PBNative qui fait les exports dans les fichiers .sru, .srd sur le serveur ? Et dans ce cas, quand on fait un Get Latest Version à partir de mon poste, il fait un import à partir de ces fichiers ?

En conclusion, je vais attendre la fin du Get Latest Version global (à partir de la target) et j'espère qu'à ce moment-là, les PBLs sur mon poste et les objets .sru, .srd, etc du serveur seront en phase. Dans ce cas, je pourrai déclarer sur le serveur Subversion tous les objets .sru, .srd à partir de la liste de mon ancien serveur et je pourrai travailler à partir de mon poste (via PB et bien évidement uniquement sur les PBLs).

Je reviendrai ici pour clore le sujet ou pour poser d'autres questions...

Hors ligne

 

#7 30-09-2008 12:09:23

toto  
Membre Geek
Lieu: Nice
Date d'inscription: 21-05-2007
Messages: 23
Pépites: 111
Banque: 0

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

FMolinas a écrit:

Il serait intéressant que tu nous décrives un peu comment tu as couplé PB et Subversion. Ce n'est pas trivial, vu que les sources PB sont les "libraries" et qu'a priori svn contrôle les exports texte de tes objets.

He bien, j'ai déclaré sur le serveur Subversion un dossier pour mon appli et j'ai ensuite fait un Commit global de tous les objets .sru, .srd, etc qui étaient sur mon poste. Mon problème est que ces fichiers n'étaient vraisemblablement pas du tout à jour.

Par la suite, je pense mettre en place le processus suivant (si je me trompe, dites le moi tout de suite).
1. En local, le développeur fait un Update des objets qu'il pense modifier,
2. Dans PB, il travaille sur les objets "updatés",
3. Dans PB, une fois qu'il a fini son travail, il fait un Export en local des objets qu'il a modifié (la liste doit être la même qu'en 1.)
4. En local, il fait un Commit de ces mêmes objets et gère les conflits éventuels présentés par SVN.

Pour info, nous utilisons le client TortoiseSVN.

Je sais qu'il existe par ailleurs un plugin PushOK pour connecter PB à SVN, mais je ne vois pas trop à quoi il sert. Peut-être justement pour éviter toute cette toutouille entre PB et SVN à l'extérieur de PB... Mais d'un autre côté, je voulais m'extraire de la notion bloquante des check-out/check-in. Alors si dans la pratique ma méthode n'est réellement pas exploitable, je viendrai peut-être vers PushOK.

Hors ligne

 

#8 30-09-2008 14:49:38

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 745
Pépites: 1,028,837
Banque: 171,170,849,654

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

Bonjour,

J'ai utilisé successivement différent gestionnaire de sources : SourceSafe, PVCS, Perforce. J'ai abandonné PerForce car il entraîne une très grosse instabilité de Powerbuilder.

Aujourd'hui j'utilise le trio PushOk, Tortoise, CVS.

Pour essayer de faire court, Powerbuilder travaille uniquement avec les objets contenus dans les librairies.
Les gestionnaires de sources travaillent avec les objets contenus dans les librairies.

Donc lorsque tu fais un check-out  (ou get latest version) sur un objet sous source control dans Powerbuilder, l'objet (.sru, .srd, ...) est extrait du serveur de sources pour être copié dans le répertoire local ou se trouve la PBL, puis ensuite l'objet est importé au sein de la PBL.

Dans le sens inverse, lorsque tu fais un check in l'objet est exporté de la PBL dans le répertoire local pour ensuite être incorporé sur le serveur comme dernière version (la conservation ou non de l'objet exporté dans le répertoire local est dépendante de l'option : Delete Powerbuilder-genrated objets files dans les options du workspace).

Lorsque tu fais des check-in, check-out, tu verras que le gestionnaire de sources crée un fichier avec l'extension .pbg qui porte le même nom que la librairie. Ce fichier contient la description des objets contenus dans la PBL. Ce fichier est automatiquement mis à jour sur le serveur de sources à chaque check-in check-out d'objet.

Pour reconstruire totalement une application à partir du serveur de sources sur un nouveau poste par exemple, tu n'as qu'une seule solution : ORCA (Powerbuilder User's Guide => Appendixes => Appendix B The OrcaScript Language).

ORCA est capable à partir d'un script d'extraire l'ensemble des objets du serveur de source et de reconstruire la totalité de l'application. La target doit également être sous source control. Il utilise le contenu de la target pour recréer la liste des PBL du projet. Ensuite, il utilise le contenu des fichier PBG pour réimporter les objets dans les PBL en te permettant de t'affranchir de la fameuse dépendance entre les objets.

Attention, tortoise travaille au niveau de l'explorateur Windows. Pour maintenir des objets à jour, cela veut dire que tu dois exporter manuellement les objets de ta PBL sur le disque et te rendre dans l'explorateur windows pour mettre à jour l'objet sur le serveur de source (très lourd avec tous les risques d'erreur que cela comporte). L'avantage du plugin PushOk est son intégration complète dans Powerbuilder et de t'affranchir totalement des soucis d'importation et d'exportation des objets.

Hors ligne

 

#9 30-09-2008 15:48:35

toto  
Membre Geek
Lieu: Nice
Date d'inscription: 21-05-2007
Messages: 23
Pépites: 111
Banque: 0

Re: [RESOLU] Différences entre contenu de la PBL et objets de la PBL

buck a écrit:

Attention, tortoise travaille au niveau de l'explorateur Windows. Pour maintenir des objets à jour, cela veut dire que tu dois exporter manuellement les objets de ta PBL sur le disque et te rendre dans l'explorateur windows pour mettre à jour l'objet sur le serveur de source (très lourd avec tous les risques d'erreur que cela comporte). L'avantage du plugin PushOk est son intégration complète dans Powerbuilder et de t'affranchir totalement des soucis d'importation et d'exportation des objets.

C'est bien ce qu'il me semble et je vais donc probablement prendre l'option PushOK qui devrait me simplifier la tâche en ne passant pas par l'explorateur, comme je l'avais envisagé au départ. Effectivement très contraignant et source d'erreurs...

Merci pour les infos.
Bernard

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22