2. Qu'est-ce que SVN ?
• un VCS (Version Control System) : un logiciel de
contrôle de versions.
• écrit en C
• Développé par Apache Software Fondation
• Première version à été créée en 2000
• Dernière version été sortie en avril 2019
3. Caractéristiques de SVN
• SVN est un VCS centralisés :
caractérisés par un dépôt central privilégié géré par un
serveur
• Un système optimiste :
- autorise plus d’une personne à modifier un même fichier
en même temps.
- Fusionnent tout simplement les modifications
4.
5. Un système utilisant Subversion est à diviser en deux parties
distinctes:
-le dépôt (ou repository):
Le dépôt est le côté serveur d'un système utilisant
Subversion, c'est "l'archive" dans laquelle seront envoyées
les modifications faites à l'arborescence.
- la copie locale:
Copie locale est une copie de l'état du dépôt à un moment
précis, située sur l'ordinateur d'un des utilisateurs.
6. $ svnadmin create PATH/depot
Créer un dépôt
Un dépôt est toujours appelé par son adresse sous forme
d'URL, cela peut être :
• file:///chemin/vers/le/dépôt
• https://server.web.com/dépôt
• svn://server.svn.com/dépôt
7. $ svn checkout PATH/depot localcopy
Checked out revision 0.
Créer la copie locale
On affiche après le contenu de localcopy:
En utilisant la commande : checkout ou co
$ ls localcopy
.
.
//tout le contenu de dépôt
.svn
8. $ svn update localcopy
A newfile.txt
Updated to revision 1.
Update
Cette commande apporte les modifications à partir du dépôt à
votre localcopy
9. commit
commit compare les modifications que vous avez faites sur
votre copie locale avec l'état du dépôt puis envoie le
différentiel
$ svn add localcopy/fichier2.txt
$ svn commit –m ‘Expliquez pourquoi vous modifiez le fichier’
A localcopy/fichier2.txt
Adding localcopy/fichier2.txt
Transmitting file data .
Commited resivion 2.
11. List
Pour afficher le contenu du dépôt sans créer une localcopy
$ svn list
Elle affiche les informations suivante:
• Numéro de la révision du dernier commit
• Nom du user du dernier commit
• Size
• Date et heure du dernier commit
20. Echo 'goodbye everybody';
Echo $_GET['username'];
Echo 'hello everybody';
Echo $_GET['username'];
Les conflits
SVN
• Les conflits SVN se produisent généralement lorsque
deux développeurs modifient le même fichier dans la
même ligne.
DEV 1
DEV 2
21. Les conflits
SVN
• Nous pouvons éditer les fichiers jusqu'à ce que
tous les conflits soient résolus, puis faire un
nouveau merge.
Commit
Commit
Failed
Merge
Merge failed
Resolution
manuelle des
problemes
Conflits
resolus
24. SVN vs GIT
Savez-vous GIT déjà?
• Logiciel de gestion de versions le plus populaire
• Ecrit par Linus Torvaldes en 2005
• Fonction principale:
le suivi des changements sur le code source durant le
développement d’une application
• Supporte le «branching»
25. SVN vs GIT
Quel est la différence alors?
différence majeure:
• Logiciel de gestion de versions le plus populaire
Répertoire
SVN
Copie travail 1
Copie travail 2
Copie travail 3
Répertoire
GIT
Répertoire
GIT
Répertoire
GIT
26. SVN vs GIT
Quel est la différence alors?
différence majeure:
Les VCS (Version Control System) centralisés :
• dépôt privilégié géré par un serveur.
• synchronisations des évolutions avec le dépôt central,
• le serveur détectant les conflits
Les VCS décentralisés :
• n’imposent pas techniquement de dépôt de référence.
• le développeur travaille avec son dépôt qu’il synchronise avec
ceux des autres et selon le modèle de développement, avec un
dépôt de référence.
27. SVN vs GIT
Quel est la différence alors?
Autre différences :
Git:
• Accès au Journal de modifications des données du dépôt
Accès aux copies de travails
• possibilité de travaillé sur les copies
• nécessaire que pour les synchronisations (push,pull…)
SVN:
• le journal de modifications n’est complet que sur le dépôt.
• il est nécessaire d’être connecté pour tout accès(enregistrer
des changements…),
28. SVN vs GIT
Quel est la différence alors?
Récaplitulatif:
SVN GIT
Versionning Centralisé Décentralisé
Dépot Un dépôt central dans
lequel les copies de
travail sont créées
Des copies de dépôt,
présentes localement,
dans lesquelles il est
possible de travailler
Droit d’accès Basé sur le chemin Pour le répertoire
complet
Suivu des modifications Enregistre des données Enregistre des données
Journal des modifications Complet seulement dans le
dépôt. Les copies de
travail ne contiennent
que la version la plus
récente.
Le dépôt et les copies de
travail contiennent
l’historique complet.
Connectivité au réseaux Pour tous les accès Nécessaire seulement pour
réaliser une
synchronisation
Notes de l'éditeur
SVN est un VCS (Version Control System) : un logiciel de contrôle de versions. écrit en C et Développé par Apache Software Fondation, Première version à été créée en 2000, et la Dernière version été sortie en avril 2019.
En langage clair, il s'agit d'un logiciel qui enregistre tous les états d'une arborescence au fil du temps (par arborescence, j'entends à la fois la structure des dossiers, mais également leur contenu).
C'est de là que vient le terme de "version" : le logiciel surveille les différentes versions d'un répertoire.
SVN est principalement utilisé dans le cadre du développement de logiciels.
Car comme vous le savez, Le développement d'un logiciel est composé de multiples modifications de fichiers au fil du temps;
SVN permet d'enregistrer tous ces changements pour, par exemple, pouvoir avoir une trace explicite et exhaustive de tous les changements faits au code source, ou pouvoir revenir au code tel qu'il était auparavant.
SVN est un VCS (Version Control System) centralisés :
il est caractérisé par un dépôt privilégié géré par un serveur. Chaque développeur travaille sur sa copie et synchronise ses évolutions avec le dépôt central, le serveur central est capable de détecter les conflits.
Un système optimiste :
Subversion autorise plus d’une personne à modifier un même fichier en même temps. Ce système suppose que les conflits de modifications sont rares. Si deux utilisateurs du dépôt modifient des parties non-communes d’un fichier, les outils optimistes fusionnent tout simplement les modifications. Inversement, dans le cas de modifications conflictuelles, le conflit doit être résolu manuellement. À l’opposé des systèmes optimistes, il existe le modèle de réservation de fichiers. Ce principe accorde l’exclusivité de modification à une unique personne. C’est la philosophie adoptée, par exemple, sous Microsoft Visual Source Safe.
Une fois Subversion installé et en état de marche, la première étape est de créer un dépôt, on va sur un terminal ou une invite de commande et tapez :
Noter bien que svnadmin marche juste sur un chemin local mais pas les urls
Lorsqu'un utilisateur lance une update de sa copie locale, Subversion va comparer cette dernière avec le contenu du dépôt et si celui-ci est à une révision supérieure que celle de la copie locale,
SVN va télécharger le différentiel entre les deux
Si par exemple un autre utilisateur ajoute ou supprime des fichiers dans le dépôt , votre localcopy n’aura pas ces fichiers par défaut , dans on doit a chaque fois lancer la commande update pour avoir les derniere modification .
commit compare les modifications que vous avez faites sur votre copie locale avec l'état du dépôt, puis envoie le différentiel du changeset à celui-ci, créant par la même occasion une nouvelle révision.
L’option –m pour expliquer les modification apporter
Maintenant les fichiers sont dans une sorte de file d'attente où vont tous les fichiers "modifiés" en attendant le commit.
Rappelez-vous qu'aucune modification n'est appliquée tant que le commit n'est pas lancé.
GIT est le logiciel de gestion de versions le plus populaire, écrit par Linus Torvaldes en 2005. il a pour fonction principale le suivi des changements sur le code source durant le développement d’une application . il supporte le « branching »
Ici vous allez me poser la question, mais c’est quoi la difference alors?
Biensur il y a plusieurs différences,c’est pour cela qu’on a consacré toute une partie pour montrer la différence.
D’abord la grosse différence entre Git et SVN tient essentiellement en un seul point : SVN fonctionne en mode centralisé et nécessite un serveur pour fonctionner, quand Git est décentralisé et considère chaque dépôt comme l’égal d’un autre.
Les VCS (Version Control System) centralisés : ils sont caractérisés par un dépôt privilégié géré par un serveur. Chaque développeur travaille sur une copie et synchronise ses évolutions avec le dépôt central, le serveur détectant les conflits. SVN fonctionne sur ce principe.
Les VCS décentralisés : contrairement au VCS centralisé, il n’impose pas techniquement de dépôt de référence. Chaque développeur travaille avec son dépôt qu’il synchronise avec ceux des autres et selon le modèle de développement, avec un dépôt de référence. Git fonctionne de façon décentralisée.
On peut accéder au Journal de modifications des données de git du dépôt et des copies de travails avec la possibilité d’en travaillé. En SVN, en revanche, le journal de modifications n’est complet que sur le dépôt.
Connectivité au réseaux:
en SVN, il est nécessaire d’être connecté pour tout
accès(enregistrer des changements…),
en GIT, nécessaire que pour les synchronisations (push,pull…)