URL: https://linuxfr.org/news/mercurial-2-1-les-phases Title: Mercurial 2.1 : Les phases Authors: ecyrbe claudex, B16F4RV4RD1N, Bruno Michel, Benoît Sibaud, NeoX et baud123 Date: 2012年02月18日T07:07:49+01:00 License: CC By-SA Tags: mercurial Score: 39 [[Mercurial]], un puissant logiciel de gestion de versions écrit en [[Python]], sort en version 2.1 après 3 mois de développement. Pour rappel, Mercurial est un logiciel de gestion de version décentralisé, à savoir qu'il permet de travailler en équipe sans avoir besoin d'un serveur centralisé. Tous les développeurs pouvant se synchroniser entre eux, via deux méthodes : * [pull](http://mercurial.selenic.com/wiki/Pull) : réception des modifications d'un dépôt distant. * [push](http://mercurial.selenic.com/wiki/Push) : envoi des modifications vers un dépôt distant. Cette souplesse permet de hiérarchiser le développement d'un projet de mille et une façons. Cette souplesse possède un revers, quand l'on doit se synchroniser avec un dépôt distant on a souvent des conflits. Pour les résoudre, les développeurs font appel à deux méthodes : * [merge](http://mercurial.selenic.com/wiki/Merge) : fusion des modifications de deux branches en une seule, les conflits sont résolus par divers outils manuels ou automatiques. * [rebase](http://mercurial.selenic.com/wiki/RebaseExtension), [mq](http://mercurial.selenic.com/wiki/MqExtension), [histedit](http://mercurial.selenic.com/wiki/HisteditExtension) : modification de l'historique des modifications afin de le linéariser ou de le simplifier. Dans le second cas, modifier son historique peut s'avérer bien plus désastreux que le problème initial ou l'on avait qu'un simple conflit. [[Git]], le principal concurrent de Mercurial qui possède des fonctionnalités et des performances sensiblement identiques, est particulièrement sensible à des erreurs de **rebase**, car cette fonctionnalité est activé par défaut. Pour éviter les erreurs de modifications d'historiques, Mercurial 2.1 introduit une nouvelle fonctionnalité : [les phases](http://mercurial.selenic.com/wiki/Phases). ---- [Site officiel](http://mercurial.selenic.com/) [ChangeLog](http://mercurial.selenic.com/wiki/WhatsNew) [Documentation](http://hgbook.red-bean.com/read/) [Documentation pratique](http://www.selenic.com/mercurial/hg.1.html) [Les phases](http://mercurial.selenic.com/wiki/Phases) [Article : introduction aux phases](http://www.logilab.org/blogentry/88203) ---- Les phases sont un moyen de marquer automatiquement une suite de modifications comme étant : * **publiques** : par défaut dès que l'on fait un push/pull, les modifications envoyées/reçues deviennent publiques. Les modifications publiques ne peuvent pas voir leur historique modifié sans utiliser explicitement la nouvelle commande [phase](http://mercurial.selenic.com/wiki/Phases) ; * **des brouillons** : tant que les modifications que l'on a créées localement n'ont pas été envoyées via un push, elle gardent le statut de brouillon, leur permettant de voir leur historique modifié ; * **secrètes** : dès que l'on utilise l'extension mq, les modifications que l'on fait avec sont marquées comme secrètes, et ne peuvent pas être envoyées via un push vers un autre dépôt. Prévenant ainsi des erreurs basiques. Les phases permettent donc de se souvenir de ce qui a été publié et d'éviter de modifier l'historique associé. Cependant, si l'on souhaite forcer la modification d'une publication, cela est toujours possible en forçant des changements de phases, afin de pouvoir modifier l'historique. Ainsi par défaut, Mercurial vous empêchera désormais de faire des bêtises quand vous souhaitez modifier l'historique de vos modifications. Ce nouveau concept arrivera-t-il bientôt dans [[Git]] ?

AltStyle によって変換されたページ (->オリジナル) /