22
La magie derrière les Système de Contrôle de Sources Distrubuées (DVCS) Une expérience avec Mercurial

Dvcs mercurial - pyxis - eric de carufel

Embed Size (px)

Citation preview

Page 1: Dvcs   mercurial - pyxis - eric de carufel

La magie derrière les

Système de Contrôle de

Sources Distrubuées

(DVCS)

Une expérience avec Mercurial

Page 2: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 3: Dvcs   mercurial - pyxis - eric de carufel

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

Page 4: Dvcs   mercurial - pyxis - eric de carufel

La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)

5

Get

Check-out

Check-in

Page 5: Dvcs   mercurial - pyxis - eric de carufel

La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)

6

Pull

Push

Update

Commit

Page 6: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 7: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 8: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 9: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 10: Dvcs   mercurial - pyxis - eric de carufel

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

Page 11: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 12: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 13: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 14: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 15: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 16: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 17: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 18: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 19: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 20: Dvcs   mercurial - pyxis - eric de carufel

La magie derrière les Système de Contrôle de Sources Distribuées (DVCS)

21

Page 21: Dvcs   mercurial - pyxis - eric de carufel

• 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

Page 22: Dvcs   mercurial - pyxis - eric de carufel

• 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 – [email protected]

– http://blog.decarufel.net

– http://pyxis-tech.com

23 La magie derrière les Système de Contrôle de Sources

Distribuées (DVCS)