Mercurial
Les données du serveur de jeu Ryzom Core sont hébergées sur Bitbucket, qui utilise le système de gestion des dépôts Mercurial. Nous utilisons actuellement le système git, via une instance locale Gitlab. Si vous ne connaissez pas du tout les concepts (push, pull, clone), allez voir la page comment récupérer les données.
Un tutoriel sur l'utilisation de Mercurial est disponible ici, en français : https://www.mercurial-scm.org/wiki/FrenchTutorial.
Un tutoriel que je trouve également très bien fait, en une page l'essentiel est dit : http://blog.pilotsystems.net/2009/05/tutorial-francais-mercurial-hg
Un guide sur les Branches dans Mercurial, en anglais : A Guide to Branching in Mercurial.
Le mieux est de lire l'un de ces tutoriels pour commencer. Mais si vous souhaitez aller directement à l'essentiel, le chapitre suivant vous aide à vos premières manipulations avec Mercurial.
C'est très résumé ! Pour plus d'explications, les tutoriels listés sont parfaits.
Les commandes de base
Après l'installation de Mercurial, modifiez le fichier dans ~/.hgrc
pour indiquer votre éditeur de texte favori, l'éditeur pour comparer lors d'un merge, ainsi que votre identifiant lors des commit :
username=Votre Pseudo <nom.email@domain.com> editor=nano merge=meld
Nano et Meld ne sont que des suggestions ; assurez-vous aussi d'avoir les deux logiciels en question installés !
On commence par cloner un dépôt distant sur son propre ordi.
Cloner un dépôt chez soi :
hg clone http://depots.khaganat.net/scm/hg/Fabrique
On peut cloner dans un second dossier la copie du premier, afin de garder pour comparer la version “serveur” et la version en cours de travail. Cela permet de pouvoir fusionner les différences de façon plus confortable aussi.
Cloner chez soi une branche “pour bidouiller” (afin de revenir plus facilement en arrière au besoin) :
hg clone Fabrique FabriquePerso
Ensuite, dans ce dossier FabriquePerso, on fait tout ce qu'on veut : modifier des fichiers, en créer… Si on ajoute des dossiers, il faut dire à mercurial qu'ils existent, en les listant.
Lister les dossiers nouvellement créés :
hg addremove
Lister les changements :
hg status
OU
hg st
Annuler un changement :
hg revert nomdufichier
Prendre en compte les changements (committer). Cela ouvre un éditeur de texte, dans lequel on indique ce qu'on a changé. Attention ça ne marche que sur son propre dépôt ; c'est nécessaire de le faire avant de “pusher” sur le dépôt original :
hg commit
OU
hg ci
Envoyer les changements sur le dépôt original (push). Le nom d'utilisateur et mot de passe sera demandé :
cd ../FabriquePerso hg push ../Fabrique hg up
Fusionner des changements (deux dépôts avec des fichiers divergents). Attention à faire ça dans le bon sens ! En cas de conflit, comparer les deux fichiers.
hg merge
En cas de confit de merge, une fois résolu :
hg resolve -m nomdufichier
Mettre à jour depuis un dépôt distant (récupérer ce que les autres ont changé)
cd ../Fabrique hg pull -u http://depots.khaganat.net/scm/hg/Fabrique hg up
Il existe ensuite plusieurs méthodes pour synchroniser ses fichiers avec le repository maître du projet, parmi elles on distingue TortoiseHg, un outil graphique disponible sous Windows et GNU/Linux (et bientôt Mac).
Installation de Tortoise Hg
Il existe dans les dépôts de binaires Debian : tortoisehg et/ou tortoisehg-nautilus (dépendent de Mercurial).
Sinon on trouve des explications sur la page de download du projet.
Git
Git est un autre système de gestion de version. Il est utilisé pour Khaganat actuellement, le connaitre peut donc s'avérer utile.