SGS (Système de gestion des sources) Flashcards
Définition d’un SGS
Système ayant pour but d’enregistrer, de stocker et
d’historiser les versions de différents fichiers
Avantages des SGS
Travail d’équipe
Traçabilité
Preuves (Droits d’auteur, RS&DE)
Que signifie RS&DE?
Recherche Scientifique et Développement Expérimental
Désavantages des SGS
Travail d’équipe (personnel non-technique)
Différents types de fichiers (Larges, non-comparable)
Un dépot (repo) peut être ___ ou ____
Un dépot (repo) peut être LOCAL ou sur un serveur DISTANT
Qu’est-ce que la racine d’un dépot?
Point ancestrale de tout le projet
Qu’est-ce que le trunk (Tronc) ou master (maitresse)
Branche parent du dépot
Terme francais de commit
soumission
Qu’est qu’une révision (changeset)?
Regroupement de modifications fait entre 2 versions du dépôt.
Considéré comme un ensemble atomique.
Est souvent associé à un identifiant unique (GUID)
Qu’est-ce qu’une mise à jour (update)?
L’action d’obtenir, du dépôt, les modifications d’une certaine version spécifique
On change la version courante locale
Qu’est-ce qu’un système centralisé (svn)
Le système contient toutes les métadonnées de l’historique du projet
Toutes les données sont conservées en un seul endroit
Avantages d’un système centralisé?
Gestion simple
Utilisation simple
Un seul endroit pour faire des copies de sauvegarde
The One True Source
Désavantages d’un système centralisé?
Dépends du réseau
Abus du réseau
Une mauvaise gestion est très problématique
Point unique
Terminologie dans les systèmes centralisés?
Check in
Check out
Services pour systèmes centralisés?
Visual Studio (AzureDevOps)
GitHub (SVN)
Perforce
Outils pour systèmes centralisés?
SVN pour VS
TortoiseSVN
SmartSVN
Définition d’un système décentralisé
Approche pair-à-pair du système de contrôle de versions
Chaque utilisateur possède son propre dépôt et communique avec les dépôts des collaborateurs
Quelle approche propose GitHub et GitLab?
Approche hybride
Avantages du système décentralisé?
Indépendant du réseau
Création de points de retour sans taxer le serveur
Pas de point unique de défaillance
Désavantages du système décentralisé?
Très compliqué pour du personnel non technique
Très facile à oublier de pousser les changements
Conflits pouvant être difficiles à gérer
Différents types de fichiers peuvent être problématiques (Binaires)
Quelles sont les deux techniques de gestion des conflits?
2-Way merge
3-Way merge
En quoi consiste le 2-Way merge?
Comparer deux fichiers
Visualiser les changements et sélectionner les changements désirés
Quand utliser le 2-Way merge?
Pour les conflits triviaux
En quoi consiste le 3-Way merge?
La fusion des différences entre les changements locaux et les changements sur le dépôt pour produire une nouvelle version d’un fichier après avoir fait une
comparaison entre le fichier original.
Quels sont les deux modèles de travail?
Développement du tronc (Trunk-Based Development)
Développement de banches (Branch-Based Development)
En quoi consiste le “développement du tronc” ?
Toujours développer dans le tronc du dépôt
Mettre à jour régulièrement les copies locales
Élimine beaucoup de « merges »
Quelles sont les enjeux du “développement du tronc” ?
Une défaillance affecte toute la production
Besoin d’une communication intensive pour coordonner les changements
Refactorisation est problématique (affecte tous les
membres de l’équipe)
Facilité de faire des Hot-Fix
En quoi consiste le “développement de branches” ?
Utilisation massive de branches (Chaque développeur, chaque fonctionnalité)
Quelles sont les enjeux du “développement de branches” ?
Environnement indépendant et contrôlé
Permets de travailler facilement en parallèle
Merge hell
Facile de se perdre dans les nombreuses branches