Disponible pour les systèmes d'exploitation Microsoft Windows, Mac OS X, et sur la plupart des systèmes d'exploitation du type Unix, Mercurial est écrit principalement en Python. Il a été créé pour s'utiliser via des lignes de commandes. Toutes les commandes commencent par « hg », en référence au symbole chimique du mercure. Ses principales caractéristiques sont, entre autres :
Comme Git et Monotone, Mercurial utilise une fonction de hachage SHA-1 pour identifier ses versions.
Mercurial utilise un protocole réseau basé sur HTTP.
Source : Wikipedia
Un compte Bitbucket sera nécessaire pour vous connecter au site. https://bitbucket.org/
Ce compte hébergera vos développements et vous pourrez par la suite les soumettre à L'OGSteam.
Contrairement à SVN, il ne sera pas nécessaire d'être membre de l'OGSteam pour proposer des modifications.
Vos propositions seront par la suite analysée et intégrées/liées par les développeurs de l'OGSteam dans la branche de développement principale.
Téléchargement : Site de Sourcetree
L'installation se fait comme une application classique Windows ou Linux.
Il faut pour cela aller sur votre compte utilisateur : Exemple : https://bitbucket.org/darknoon29
Récupérer l’adresse du dépôt qui sera nécessaire à Tortoise Hg:
Conservons ce lien le temps d'introduire l'interface de Tortoise Hg
Lancement de la console Tortoise Hg :
Tout comme Tortoise SVN, tortoise Hg peut être lancé à partir du menu contextuel du répertoire windows.
Si on lance donc le Hg WorkBench, on obtient la fenêtre suivante. (Identique sous Windows et Linux)
Cette interface est composée de plusieurs parties :
Cette barre d'outil contient toutes les actions à réaliser sur le dépôt
Dans l'ordre :
Au contraire de SVN les modifications se font en local et ne sont envoyés au serveur qu'à la fin de votre travail.
Cela a 2 avantages :
Une fois le travail terminé il faudra cependant envoyer son travail vers bitbucket avec la commande Push.
Pour commiter, il suffit de sélectionner le répertoire de travail avec un bouton droit et de faire Hg Commit. (Même principe qu'avec SVN)
Dans l'idéal il ne faudrait jamais travailler sur la branche default. Ceci afin de faciliter le travail multi utilisateur et de pouvoir accepter les modifications extérieures sans perturber son travail.
La spécificité du dépôt Bitbucket est que chaque dépôt est assigné à une branche. Donc en fonction de la branche qui est sélectionnée, vous verrez un code source différent.
Une fois que la branche sera dans un état de développement assez avancé, vous pouvez reporter les modifications sur la branche principale (“default”). Il vous restera ensuite le choix de clore définitivement la branche ou de continuer à travailler dessus.
La branche peut être créé pour beaucoup de raisons :
La création d'une branche se fait au premier commit. Vous aurez donc déjà effectué quelques modifications avant de voir la fenêtre suivante :
Modification du Nom de la Branche :
Commit sur la nouvelle Branche (Il faudra alors valider la création de la nouvelle Branche)
Avec l'outil HG WorkBench, nous voyons maintenant :
Notre branche de travail (La plus à gauche dans l'outil) est donc FixBug_2.
Nous allons maintenant voir comment revenir sur la branche principale.
Sélectionnez le répertoire de votre dépôt et sélectionnez l'outil de mise à jour de dépôt:
Sélectionnez la branche sur laquelle vous souhaitez mettre à jour votre dépôt (Attention à bien tout commiter sur la branche avant)
Une fois le changement de Branche effectué nous pouvons visuliser dans workbench que nous sommes bien revenu à la branche principale.
Quant à notre branche, on la voit partie sur une autre vie
Si l'on veut par la suite fusionner le travail effectué sur une branche, il faut sélectionner la révision et ouvrir son menu contextuel pour lancer le processus :
Il reste à suivre les différentes étapes de la boite de dialogue pour obtenir le résultat suivant :
Notre branche est désormais intégrée à la branche principale.
Pour ajouter une étiquette à une version (Tag),
Il faut sélectionner la révision et lui attribuer un petit nom :
Menu contextuel de la révision :
Choix du nom de la version :
La version est bien là !!
Le Push permet d'envoyer ses modifications vers le dépôt BitBucket.
Dans certains cas (Multiple utilisateurs sur le dépot) il faudra se synchroniser avec le serveur avec un Pull.
Des merges seront peut être à réaliser dans ce cas.
Pour les outils de Merge, nous pouvons utiliser KDiff (Gratuit) ou BeyondCompare (Payant ~ 30E)
Travailler avec Mercurial est bien différent de SVN mais apporte beaucoup de libertés.
Il n'est par exemple plus utile de demander des droits pour modifier du source. Ce type de méthode est beaucoup plus appropriée à un projet communautaire.
Dans ce cas, il vous faudra travailler avec l'auteur du Mod qui s'occupera de valider le contenu de vos développements. Le Mod sera hébergé dans l'espace personnel de l'auteur.
Vous pouvez retrouver l'auteur du mod que vous souhaitez modifier à cet endroit : Liste des Outils OGSteam
Pour avancer,
Dans ce cas, l'OGSteam vous laisse travailler sur votre dépôt.
Cependant pour intégrer votre mod à l'outil de mise à jour automatique de l'OGSteam, il vous faudra contacter l'OGSteam pour que l'un de ses administrateur crée un lien entre votre mod et le site de l'OGSteam.
Lorsque ce lien sera créé, toutes les versions que vous publierez seront disponible pour vos utilisateurs.
Un excellent tutoriel est disponible sur le site de Bibucket à ce sujet mais en anglais: https://confluence.atlassian.com/display/BITBUCKET/Fork+a+Repo,+Compare+Code,+and+Create+a+Pull+Request