1. La magie derrière les
Système de Contrôle de
Sources Distrubuées
(DVCS)
Une expérience avec Mercurial
2. •
•
•
•
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
6. • 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
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
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
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
11. • 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
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
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
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
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
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
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
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
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
20. La magie derrière les Système de Contrôle de Sources
Distribuées (DVCS)
21
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
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
La magie derrière les Système de Contrôle de Sources
Distribuées (DVCS)
23