IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI Delphi Discussion :

SVN et travail sur 2 versions très différentes


Sujet :

EDI Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable R&D
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut SVN et travail sur 2 versions très différentes
    Bonjour,
    aujourd'hui nous avons un (gros) projet Delphi (version A) et nous utilisons Tortoise SVN.
    Nous avons dans un Dossier DX11A toutes les sources des composants et toutes les sources du projet (chacun dans un sous dossier dédié).
    Nous allons travailler sur une Version B (dan un dossier DX11B) de ce projet avec d'énormes changements dans le code (pas loin de 95%), mais durant l'étape de la refonte de ce projet, il sera nécessaire pendant quelques années d'assurer la maintenance de la version A.
    Autrement dit nous avons besoin d'avoir à disposition les sources de la version A et la version B (aussi bien composants que projets) pour dans un cas pouvoir maintenir l'ancienne version (tout en la poussant sur SVN) et de pouvoir travailler sur la nouvelle version (et aussi la pousser sur SVN).
    Que me conseillez-vous comme méthode la plus simple pour pouvoir switcher très facilement (et se mettre à jour des modifs sur SVN) ?
    Reste aussi la problématique de la recompilation des package des composants maisons si il y a eu des modifications dans le sous dossiers composants.
    Cordialement

    Armindo

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Bonjour,

    Je ne connais pas SVN mais je suis sûre qu'on peut créer des branches comme dans git. Ça doit faire partie de la solution.

    Quant à la compilation c'est quelque chose que votre chaîne CI/CD pourrait prendre en charge. Si vous n'en avez pas, étudiez l'opportunité de la mettre en place.

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    la question qui se pose est sur l'historique

    si 95% du code change, on peut se dire qu'on peut repartir sur un nouveau dépôt...mais dans ce cas l'historique des modifs commencera à la création du second dépôt et ça c'est parfois embêtant.

    j'ai un client qui bascule sur un nouveau dépôt à chaque version majeure...et bien quand tu trouves une régression qui remonte à quelques versions en arrière, ça t'oblige a consulter plusieurs dépôts pour retrouver ce qui a été changé.

    donc tu peux utiliser une branche ou un nouveau dépôt selon ton cas d'usage.

    Personnellement j'utilise Git, comme chaque dépôt contient l'historique complet, il suffit de copier/coller le répertoire (avec son répertoire .git) pour avoir une copie complète du dépôt
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    Bonjour, j'ai actuellement ce cas de figure chez un de mes clients avec SVN.
    Environ 5 800 000 lignes de code - Delphi Seattle

    1) J'ai développé quelques outils pour ce faire et retrouver le tronc commun aux deux versions (j'utilise aussi Formatter.exe pour mettre en conformité les sources)
    2) Je déporte les bpl sur une unité a part
    3) J'utilise des vhd que je monte en fonction de la version choisie
    4) Je modifie la clé de registre pour switcher d'une version à une autre avec des versions différentes de composant (bpl)
    5) J'ai automatisé le process pour passer d'une config à une autre
    6) Pour certain composants comme DevExpress j'ai modifié le process standard d'installation
    7) Pour les compilations en ligne, j'utilise maintenant MSBuild
    8) Et plus ...
    Si besoin je peux détailler certaines opérations

  5. #5
    Membre confirmé
    Homme Profil pro
    Responsable R&D
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut
    Bonjour,
    Merci à tous pour vos réponses utiles.
    Du coup elles m'amènent à une question concernant les composants (et plus particulièrement les BPL).
    Si je "switche" sur un autre dossier de composants (celui de DX11A par exemple) qui potentiellement n'ont pas le même nombre de composants ni les mêmes propriétés, il suffit que Delphi charge au démarrage la bonne BPL ou il faut quand même passer par une compilation/réinstallation de ces packages.
    On peut imaginer que je crée dans DX11Aet dans DX11B un sous Dossier BPL et qu'au démarrage Delphi charge la BPL correspondante.
    Merci

  6. #6
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 539
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par ads42 Voir le message
    Bonjour,
    Merci à tous pour vos réponses utiles.
    Du coup elles m'amènent à une question concernant les composants (et plus particulièrement les BPL).
    Si je "switche" sur un autre dossier de composants (celui de DX11A par exemple) qui potentiellement n'ont pas le même nombre de composants ni les mêmes propriétés, il suffit que Delphi charge au démarrage la bonne BPL ou il faut quand même passer par une compilation/réinstallation de ces packages.
    On peut imaginer que je crée dans DX11Aet dans DX11B un sous Dossier BPL et qu'au démarrage Delphi charge la BPL correspondante.
    Merci
    Par exemple avec Delphi Seattle la config est enregistrée en registry dans [HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0
    Il faut supprimer la branche et réinjecter celle que tu as sauvegardé au préalable.
    En résumé tu pars d'une config. initiale que tu sauvegardes Cinit.Reg, Tu recompiles les BPL de ta version 1 vers une unité L:\BPL L: est le vhd de ta version 1, Tu exportes ta clé ...Embarcadero\BDS\17.0 vers CF1.reg. Suppression de la clé ...Embarcadero\BDS\17.0 vers CF1.reg et réinjection de la clé Cinit.Reg
    Changer de vhd pour monter la seconde version et aisni de suite.
    Un autre moyen plus simple, si tu as la possibilité de le faire, avoir deux versions de Delphi .

  7. #7
    Membre confirmé
    Homme Profil pro
    Responsable R&D
    Inscrit en
    Novembre 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 64
    Par défaut
    Par exemple avec Delphi Seattle la config est enregistrée en registry dans [HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0
    Il faut supprimer la branche et réinjecter celle que tu as sauvegardé au préalable.
    En résumé tu pars d'une config. initiale que tu sauvegardes Cinit.Reg, Tu recompiles les BPL de ta version 1 vers une unité L:\BPL L: est le vhd de ta version 1, Tu exportes ta clé ...Embarcadero\BDS\17.0 vers CF1.reg. Suppression de la clé ...Embarcadero\BDS\17.0 vers CF1.reg et réinjection de la clé Cinit.Reg
    Changer de vhd pour monter la seconde version et aisni de suite.
    Un autre moyen plus simple, si tu as la possibilité de le faire, avoir deux versions de Delphi .
    Merci Alweber pour ces astuces.

  8. #8
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    ah je n'avais pas pensé à la question des BPL...

    dans ce cas, il serait peut-être intéressant d'utiliser deux machines virtuelles, une pour chaque projet.

    cela présente l'avantage d'avoir les deux environnements disponibles à tout moment (surtout que le vieux projet bougera sans doute moins) et de faire évoluer Delphi sur le projet B sans toucher au projet A.

    je fais cela par client; chaque client a une machine dédiée avec son Delphi, ses composants, ce qui me permet de migrer certains projets sur la dernière version de Delphi sans toucher aux autres...et de temps à autre je migre le projet sur une nouvelle VM pour avoir un environnement propre, et si j'ai un problème de migration je peux toujours bosser sur la précédente VM.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/06/2012, 20h21
  2. Travailler sur deux classeurs différents
    Par Tyler Durden dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/07/2008, 09h42
  3. Travailler sur 2 branches SVN en même temps
    Par marinew dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 24/04/2008, 17h52
  4. [BO 5.1.6] [BO6.5.1] Travailler avec deux versions BO sur le même poste
    Par l_ourse dans le forum Administration-Migration
    Réponses: 7
    Dernier message: 05/03/2008, 10h35
  5. Réponses: 21
    Dernier message: 14/04/2006, 08h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo