La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Subversion.

Présentations similaires


Présentation au sujet: "Subversion."— Transcription de la présentation:

1 Subversion

2 Subversion : Pour Quoi Faire ?
Problèmes de la gestion du code dans un projet Durée de vie du projet peut être longue : besoin de gérer l’historique Changement d’architecture Changement des personnes impliquées dans le développement Travail en parallèle sur plusieurs versions Maintenance d’une ancienne version en // avec la version courante Test de nouvelles fonctionnalités sans impacter la version courante Pouvoir propager facilement des changements d’une version à l’autre Plusieurs personnes impliquées en même temps dans le développement Travailler simultanément sur le même code Détecter et (aider à) résoudre les conflits Membre de la famille des Version Control System (VCS) CVS est 1 des plus anciens et des plus connus (open source) Subversion (SVN) en reprend les principaux concepts en les modernisant Texte et binaire, language neutral, pas de gestion de configuration

3 Le Modèle CVS/SVN repository Working area Working area A B Check-out
Repository central Base de données contenant l’ensemble des versions (révisions) Unique pour 1 projet Copies locales, dans des working area Pas de « locking » : plusieurs utilisateurs peuvent modifier 1 copie différente du même fichier commit Working area B Working area A Synchronisation entre working area et repository Atomique (SVN) Détection/Résolution des conflits

4 SVN : Référencer un Repository
On désigne un repository par son URL Exemple : On appelle branche tout répertoire dans le repository Correspond à un répertoire dans l’espace de travail 1 niveau supplémentaire dans l’URL Exemples : Grand choix de clients SVN Command line : svn Nom des commandes généralement identique à CVS Client Web : WebSVN Consultation du repository uniquement

5 Principales Opérations…
check-out : crée une copie locale du (1 branche) du repository svn co URL Ex : svn co Projets Info : permet de savoir la branche associée au répertoire local svn info add : ajoute 1/des fichiers au repository lors de la prochaine synchronisation svn add fichier/répertoire Nécessaire pour tout fichier/répertoire créé depuis le check-out Si répertoire, traite tous les fichiers et répertoires contenus status : permet de connaître l’état du répertoire de travail svn status [-u] 1 ligne par fichier modifié par rapport au repository -u force la vérification par rapport au repository et non à la copie locale commit : enregistre les modifications locales dans le repository svn ci –m « message » Crée une nouvelle révision du repository contenant toutes les modifications Demande un username/password si nécessaire (ens2006, non changeable) Possible uniquement si l’espace de travail à jour par rapport au repository R WA WA WA WA R WA

6 … Principales Opérations
update : intégre les changements du repository dans la copie locale svn update [-r révision] Ajout des nouveaux fichiers (A) ou mise à jour des autres (U) Préserve les modifications locales en faisant un merge (G) Signale les conflits : modification locale en conflit avec une modification du repository (C) En cas de conflit, création de plusieurs versions du fichier Empêche les commits resolved : indique que le conflit a été résolu svn resolved fichier Supprime les versions temporaires créées revert : revient à la version du repository svn revert fichier/répertoire Restaure la version du dernier update. Les modifications sont perdues resolved implicite en cas de conflit sur le fichier/répertoire log : liste les messages associés à chaque révision d’un fichier/répertoire svn log [fichier/répertoire] [-v] [--stop-on-copy] Ne liste que les révisions qui concernent la branche (fichier) courante Inclut les opérations de copie entre branches, sauf si --stop-on-copy Faire svn update pour voir les révisions des derniers commits R WA WA WA R

7 Opérations sur les Fichiers
SVN garde la trace de tous les fichiers renommés, copiés, détruits, … Permet de conserver l’historique même si le fichier est renommé Indique la révision du fichier dont est issu un nouveau fichier (copy/mv) Gère la création/suppression/renommage des répertoires Aucune opération sur les fichiers implicite pour SVN Doit notifier SVN des changements svn status indique les inconsistances (!) Pour simplifier, SVN permet d’appeler les commandes cp, mv, mkdir… svn cp, svn mv, svn rm, svn mkdir Possible de faire oublier un fichier détruit à SVN svn rm --force fichier

8 Fonctionnalités Avancées
diff : visualiser les différences entre 2 versions d’un (groupe de) fichier Avec l’espace de travail : svn diff [-r révision] fichier/répertoire Entre 2 révisions du repository : svn diff [-r r1:r2] fichier/répertoire Plus facile avec un interface Web (WebSVN, Trac…) WebSVN au LAL : merge : revenir à une révision antérieure du repository svn merge –r HEAD:révision fichier/répertoire Ne modifie pas le repository mais seulement la copie locale (faire un commit pour valider le retour à la révision antérieure) update permet de restaurer une version antérieure dans l’espace de travail mais cause un conflit lors du commit commit exige que l’espace de travail soit à jour par rapport à la dernière révison D’autre formes plus complexes pour appliquer une modification se trouvant ailleurs dans le repository R WA

9 Pour en Savoir Plus… Documentation SVN en ligne L’aide en ligne
L’aide en ligne svn help [command]


Télécharger ppt "Subversion."

Présentations similaires


Annonces Google