Table des matières
Gestion avec BitBucket (Mercurial)
Mercurial
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 :
- sa rapidité et sa capacité à gérer les gros projets ;
- son utilisation sans nécessiter un serveur ;
- son fonctionnement complètement distribué ;
- sa robustesse dans la gestion des fichiers ASCII et binaires ;
- sa gestion avancée des branches et des fusions ;
- son interface web intégrée.
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
Bitbucket
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.
Sourcetree
Télécharger l'outil
Téléchargement : Site de Sourcetree
L'installation se fait comme une application classique Windows ou Linux.
Récupération d'un dépôt
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 :
- Sur la Gauche vous avez tous les dépôt de travail de votre environnement
- Sur la droite partie haute, vous avez la vide du dépot sélectionné : Commits et “Push”
- En bas à droite on y trouve la liste des modifications du commit sélectionné avec le Diff de chaque fichier.
Barre d'outils
Cette barre d'outil contient toutes les actions à réaliser sur le dépôt
Dans l'ordre :
- Vérification des modifications sur le dépôt
- Récupération du dépôt le plus à jour (Pull)
- Détecter les nouveautés qui seront envoyé vers le dépôt
- Envoi des derniers commits vers le dépot (Push)
Modifications en local
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 :
- Il est maintenant possible de travailler sans être connecté à internet.
- Il est plus facile de découper son implémentation et de travailler en étapes : aucun risque de perturber le travail des autres utilisateurs.
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)
Utilisation de Branches
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 correction d'un Bug
- Une évolution simple
- Un essai de développement ou d'amélioration
Création d'une Branche
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élection d'une Branche
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
Fusion d'une Branche sur le trunk
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.
Création de la version (Tag)
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à !!
Push ! (Pousser ses modifications au serveur)
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 Tortise Hg et Bitbucket
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.
Si vous souhaiter apporter des modifications à un Mod
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,
- Il vous faudra récupérer sur son compte une copie du dépôt principal via la commande “Fork”. (Clone étant réservé aux utilisateurs ayant accès en écriture au dépôt)
- Ensuite il est possible d'effectuer toute les manipulations possible sur son dépôt sans perturber le dépôt principal et comparer régulièrement les différences par rapport au dépôt principal. (Compare)
- Une fois que l'on est heureux avec son travail on fait une demande de réintégration: Pull Request
- Le développeur de la branche principale du mod a alors le choix de prendre ou pas les modifications.
Si vous souhaiter développer un nouveau Mod
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