FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 123, nombre de questions : 920, dernière mise à jour : 8 novembre 2019  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

Commentez


SommaireGestion de projetGestionnaire de sourcesCVS (5)
précédent sommaire suivant
 

Sur certaines arborescences projet, les opérations de checkout peuvent être fastidieuses par exemple si l'on souhaite récupérer quelques sous-répertoires parmi d'autres.
La création d'alias de module règle ce problème.

Configuration :
Pour modifier le fichier de configuration concerné (fichier modules de CVSROOT) voir : Defining the module

Contenu du fichier module de CVSROOT :

Code : Sélectionner tout
1
2
3
4
5
6
7
#Nom des chemins permettant d'extraire uniquement le sous-répertoire source dans un répertoire cible : 
components Projects/components 
Designers Projects/Designers 
TConnectVersion Projects/TConnectVersion 
THabilitation Projects/THabilitation 
common Projects/common 
MonAppli Projects/appli
Code : Sélectionner tout
1
2
#Union des modules spécifiques à l'application MonAppli 
&components &Designers &TConnectVersion &THabilitation &common &MonAppli
Utilisation
Checkout en ligne de commande :
Code : Sélectionner tout
"C:\Program Files\TortoiseCVS\cvs" checkout -d MonRépertoire MonAppli
Cette commande crée, dans le répertoire courant, un sous-répertoire nommé 'MonRépertoire' contenant tous les sous-répertoires nécessaires à 'MonAppli' sous Delphi.
Plus d'info :
Code : Sélectionner tout
"C:\Program Files\TortoiseCVS\cvs" -H checkout
Dans TortoiseCVS, le menu "CVS->Crée un module" effectue un checkout sur la dernière version.
Le menu "CVS Emprunter" permet de spécifier la branche à partir de laquelle effectuer le checkout.
Dans ces 2 menus, construisez la liste des modules disponibles via le menu "Dresser la liste", avant de sélectionner le nom de module : 'MonAppli'

Mis à jour le 24 janvier 2014 Laurent Dardenne

L'objectif
Un système de gestion de version permet d'une manière centralisé et en mode multiutilisateurs :

  1. le partage de fichiers source d'un projet,
  2. de gérer et tracer les modifications (qui a fait quoi et quand),
  3. d'avoir un historique du code source,
  4. de gérer plusieurs version d'un projet ce qui permet de figer une version mise en production (v1.0),
  5. de travailler sur une nouvelle version v2.0 en parallèle de la v1.0 (par exemple pour tester une solution technique ou une évolution fonctionnelle),


Une méthodologie doit être mise en place au sein de l'équipe de développement pour s'assurer d'un usage cohérent et efficace de ce type d'outil.
Par exemple le suivi des modifications nécessite de renseigner correctement la description du travail ou des corrections effectuées, indiquer "Fichier modifié" n'est d'aucune utilité.
De travailler à plusieurs sur les mêmes fichiers sources impose une certaine coordination, etc.

Les fonctions de base
Elles permettent :
  1. d'extraire en local une version de travail,
  2. d'ajouter et supprimer des fichiers dans le référentiel,
  3. de comparer des fichiers sur un numéro de version ou sur une date,


Son principe
Une fois le serveur installé, configuré et le projet inséré dans le référentiel :
Le développeur doit faire une copie du projet sur son poste.

À partir de là, le développeur peut modifier, ajouter ou supprimer des lignes de code ou des fichiers.

Une fois le travail à réaliser effectué, il doit mettre à jour le référentiel. L'opération consiste à valider ses modifications sur le serveur, celles-ci pouvant être acceptées ou refusées.

Le travail en équipe peut amener ce type de refus, il signale le fait qu'un second développeur a modifié un fichier pendant que le premier développeur effectuait ses changements. Pour éviter d'écraser les modifications précédentes on doit fusionner les deux fichiers. Cette fusion pouvant être automatique ou manuelle selon l'importance des modifications effectuées.

Mis à jour le 25 janvier 2014 Laurent Dardenne

Si la substitution de mot clé est déjà configuré sur le serveur CVS, il est possible d'ajouter des informations issues du serveur dans le fichier source.
Parmi les mots clés, $Log$ permet d'insérer l'historique des modifications effectuées sur le fichier source en cours d'édition.

Pour les versions qui précédent Delphi 2005 (BDS), il est préférable de placer le mot à substituer en fin de source, sinon la lecture du début du fichier sera à la longue fastidieuse.

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
End. 
(* Historique des mises à jour 
  
$Log$ 
  
*) 
...
Donnera après le commit du fichier :
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
(* Historique des mises à jour 
  
$Log: Test_CVS_Substitution.pas,v $ 
  
Revision 1.3 2006/08/05 08:49:40 LDardenne 
Ajout de la propriété TAGcvs 
  
Revision 1.2 2006/08/05 08:46:21 LDardenne 
Ajout du bloc Region pour les commentaires. 
  
*)
Pour BDS l'ajout de la directive Delphi $REGION couplé au mot clé de cvs $Log$ évite ce probléme. La portée de la directive $REGION débute dans une unité à partir de la clause Interface.
Code delphi : Sélectionner tout
1
2
3
4
5
6
7
Interface 
{$REGION 'Historique des mises à jour'} 
  
$Log$ 
  
*) 
{$ENDREGION}
Notez que si vous commitez le fichier, alors qu'il est encore chargé dans l'EDI, une demande de relecture du fichier vous sera adressée car la substitution des mots clés est effectuée en local.

Si vous mettez en place cette subsitution, attention donc à ne pas utiliser dans votre code les mots clés de CVS.
Vous trouverez des informations complémentaires dans le lien ci-dessous.

Mis à jour le 24 janvier 2014 Laurent Dardenne

Dans le cas où l'on commite un fichier erroné, un nouveau commit avec une version corrigée annule cette erreur. Mais parfois, il est souhaitable de supprimer la dernière version d'un fichier dans le repository CVS.
Cette opération se déroule en deux étapes, une sur le repository et l'autre sur un fichier de configuration local.

Exemple pour supprimer la version 1.12 (la dernière version) du fichier f_Main.pas présent dans le répertoire C:\Projets\Application

  1. Ouvrez une console MS-DOS,
  2. Si la variable d'environnement CVSROOT n'est pas positionnée, déclarez-la par la commande suivante en modifiant la ligne avec votre nom de compte et le nom de votre serveur :
    Code : Sélectionner tout
    set cvsroot=:pserver:NomDeCompte@NomDeServeur:24010:/Projets/MonApplication
  3. Suppression de la version 1.12 (et dernière version) du fichier dans le repository, placez-vous dans le répertoire où se trouve le fichier :
    Code : Sélectionner tout
    cd C:\Projets\Application
  4. exécutez la commande CVS suivante ( cvs admin -o <numero_version> <nom_fichier_avec_extension> )
    Code : Sélectionner tout
    "C:\Program Files\TortoiseCVS\cvs" admin -o 1.12 f_Main.pas
  5. Enfin chargez dans un éditeur le fichier local C:\Projets\Application
    \CVS\Entries puis décrémentez le numéro de version du fichier en question.
    "/f_Main.pas/ 1.12 /Tue Aug 20 16:53:16 2006//"
    par
    "/f_Main.pas/ 1.11 /Tue Aug 20 16:53:16 2006//"

Et c'est tout.

Note :
Cet exemple utilise cvs.exe livré avec TortoiseCVS qui est compatible avec les commandes de cvs standard.

Mis à jour le 24 janvier 2014 Laurent Dardenne

Il existe un fichier de configuration nommé .cvsIgnore qui contient les noms de fichier à ne pas remonter sur le serveur lors d'un commit. Il est présent sur le serveur (fichiers d'administration) et sur les postes de travail (dans chaque répertoire de travail de CVS).
Il est possible de combiner différents niveaux d'exclusion, consultez la section lien pour plus de détails.

Par exemple la variable d'environnement CVSIGNORE ou le fichier sur le serveur ne semble pas pris en compte par TortoiseCVS. Dans ce cas, on doit donc modifier ce fichier dans chaque répertoire du projet.
Exemple de contenu du fichier .cvsignore pour Delphi 2006 (Win32 et .NET):

Code : Sélectionner tout
__history Outputs dcu *.~* *.dcu Copy of * *.dcuil *.bpl *.dll *.exe *.dcp *.identcache *.dsk *.local *.cfg *.ddp *.map *.pdb *.bak

Mis à jour le 24 janvier 2014 Laurent Dardenne

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2019 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.