View
661
Download
2
Category
Preview:
Citation preview
La magie derrière les
Système de Contrôle de
Sources Distrubuées
(DVCS)
Une expérience avec Mercurial
• L’évolution des contrôleurs de source
• Contrôleurs de source actuels
• Contrôleurs de sources distribuées
• Les essentiels à savoir
– Avec demo
• Atelier pratique
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
3
Aucun
Contrôle Gestion des source par
backup
File base Batch file
Visual Source Safe
Centralisés Team Foundation Server
Subversion
CVS
Distribués GIT
Mercurial
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
4
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
5
Get
Check-out
Check-in
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
6
Pull
Push
Update
Commit
• Download TortoiseHg
– Environnement graphique intégré
– Facile d’utilisation
– Contient le mode ligne de commande
• Download VisualHg
– Intégration avec Visual Studio
– Donne le statut des fichiers
– Permet un accès aux commandes de Hg
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
7
• Création d’un repository
– Hg init
• La structure d’un repository
– Répertoire « .hg »
– Fichier « .hgignore »
– Fichier « .hgtags »
• Configuration
– Fichier « mercurial.ini »
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
8
• Création d’un repository à partir d’un autre
– Copie tous les fichiers du repository source
– Copie aussi tout l’historique!
• Différentes sources possibles
– File
– ssh
– http/https
• Hébergement gratuit sur Bitbucket.org
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
9
• Opération atomique pour ajouter les changements dans le repository local
• Uniquement le delta est conservé
• Changeset • # HG changeset patch
# User Eric De Carufel # Date 1350143940 14400 # Node ID 9777f801bcafa390c95c83a6e04f6b59797883a7 # Parent ce8fb4a3f4c03a8795f0d876658cc5d9357033c7 Fix page about diff -r ce8fb4a3f4c0 -r 9777f801bcaf AltNet/AltNet/Views/Home/About.cshtml --- a/AltNet/AltNet/Views/Home/About.cshtml Sat Oct 13 11:29:29 2012 -0400 +++ b/AltNet/AltNet/Views/Home/About.cshtml Sat Oct 13 11:59:00 2012 -0400 @@ -4,5 +4,5 @@ <h2>About</h2> <p> - Put content here. + Site Alt.NET </p>
• Création de branche
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
10
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
11
Main
Bug fix
Release
Dev.
Short feature
Long feature
V0.1 V0.2 V1.0 V1.1
Bug fix Bug fix Bug fix
Start V1.0
• Récupère les changements du repository
central vers le repository local
• ATTENTION: faire un commit avant pour ne
pas perdre de changements
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
12
• Applique les changements d’une autre
branche avec la nôtre
• Résolution de conflits
– Si les changements ne sont pas conflictuels,
Mercurial les fusionne automatiquement
– Sinon, il faut résoudre les conflits
• Se termine par un commit
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
13
• Change le point de référence actuel dans
l’historique
– Permet de naviguer d’un changeset à l’autre
– Permet de changer de branche
• Dans certains cas il est possible de faire un
update avec des changements non
commited
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
14
• Publication des changements dans le
repository central
• Le push se fait toujours sur le tip
• Mercurial protège le tip
• Une fois le push fait il n’est plus possible de
revenir en arrière sauf par un rollback
• Avant un push on peut toujours annuler
notre commit local
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
15
• Scénario
– On doit mettre en place un
environnement de travail partagé
• Étapes
– Création site initiale (master, devs)
– Maxime ajoute le Contact Us
– Eric ajoute le Wiki
– Merge
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
16
• Une patch est un changeset dans un fichier
• On peut créer une patch pour plusieurs
changeset mais il y aura un fichier de patch par changeset
• Une patch est utile pour passer une
modification d’une branche à l’autre sans
faire de merge complet
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
17
• Scénario
– Une modification a été faite sur une
autre branche et elle doit être aussi
appliqué sur la branche principale
• Étapes
– Eric -> branche Wiki
– Max -> Fix About, export patch
– Eric -> importe patch
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
18
• Génère un nouveau changeset qui contient
l’inverse des changesets à annuler
• Se termine par un commit
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
19
• Scénario – Parmi plusieurs changements il faut revenir
en arrière sur l’un d’eux mais ce n’est pas le dernier.
• Étapes – Maxime crée deux (deux commit)
modification dans la page Home
– Maxime push les modifications
– Eric pull les modifications
– Eric rollback la première modification
– Maxime pull le résulat final
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
20
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
21
• Installation de Mercurial
– TortoirseHg
– VisualHg (optionnel)
• mercurial.ini [auth]
bitbucket.prefix = bitbucket.org
bitbucket.username = decarufe
bitbucket.password = ******
bitbucket.schemes = http https
• Clone https://bitbucket.org/decarufe/mercurialdemo
La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)
22
• Questions?
• Rappelez-vous – La valse à 4 temps : Commit – Pull – Merge – Push
– Avoir une bonne stratégie de branchage
– Ne pas avoir peur du mot “Distribué”
• Lien utiles – http://mercurial.selenic.com/
– http://tortoisehg.bitbucket.org/
– http://visualhg.codeplex.com/
– http://hginit.com/
• Eric De Carufel – eric@decarufel.net
– http://blog.decarufel.net
– http://pyxis-tech.com
23 La magie derrière les Système de Contrôle de Sources
Distribuées (DVCS)
Recommended