====== Mercurial ====== The Ryzom Core Game Server data is hosted on [[http://bitbucket.org/ryzom/ryzomcore|Bitbucket]], which uses the Mercurial repository. We currently use the [[git|git]] system via a local Gitlab instance. If you do not know the concepts(push, pull, clone), go to page [[en:principe_de_developpement_sur_khaganat |how to retrieve data]]. {{https://khaganat.net/wikhan/_media/fr:tuto_mercurial1.png |Website of Bitbucket}} A tutorial on using Mercurial is available here, in French: [[https://www.mercurial-scm.org/wiki/FrenchTutorial]]. A well done tutorial, in one page that essentially said it all: [[http://blog.pilotsystems.net/2009/05/tutorial-francais-mercurial-hg]] A guide on the Branches in Mercurial, in English: [[http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/|A Guide to Branching in Mercurial]]. The best is to start reading one of these tutorials. But if you want to go straight to the basics, the next chapter will help you get started with Mercurial. OBS: The following are very summary!! For more explanations, read the tutorials. ===== The basic commands ===== After installing Mercurial, edit the file ''~/.hgrc'' to indicate your favorite text editor, the editor to compare at a merge, and your login at commit: username=Your username editor=nano merge=meld // [[http://www.nano-editor.org/|Nano]] and [[http://meldmerge.org/|Meld]] are only suggestions... Make also sure that you have the these two software's installed! // We start by cloning a remote repository to our own computer. Cloning a repository to home folder: hg clone http://depots.khaganat.net/scm/hg/Fabrique // // You can clone the first one to an second folder, in order to keep/compare the "server" version and versions in the course of work. This makes it possible to merge the differences more comfortably. Cloning a branch "to tweak"(in order to return more easily if necessary): Hg clone FabriquePerso Then, in the folder: //FabriquePerso//, we can do everything we want, like: editing files, create etc... But if we add folders, we must tell mercurials about there existence by listing them. List newly created folders: hg addremove List changes: hg status OR hg st Cancel Change: hg revert file name Move into account changes(committer). This opens a text editor, in which you indicate you're changes. **Warning:** It only works on it's own deposit!! It is therefore necessary to do this __before__ "pushing" to the original repository: hg commit OR hg and Send changes to the original repository(push). The username and password will be requested: cd ../FabriquePerso hg push ../Fabrique hg up Merge changes(two repositories with divergent files). Be careful so you do this in the __right direction__! In case of conflict, compare the two files. hg merge In case of merge conflict, and to resolve: hg resolve -m file name Update from remote repository(retrieve what others have changed). cd ../Fabrique hg pull -u http://depots.khaganat.net/scm/hg/Fabrique hg up There are also several methods to synchronize it's files with the master repository of the project, among which is distinguished as [[wpfr> wiki/TortoiseHg|TortoiseHg]], a graphical tool available in Windows and GNU/Linux(and soon Mac). ===== Installation of Tortoise Hg ===== It already exist in Debian binaries: //tortoisehg// and/or tortoisehg-nautilus//(depends on //Mercurial//). \\ Otherwise you can find explanations on the [[http://tortoisehg.bitbucket.org/download/index.html]] project download page]. // ===== Git ===== Git is another version management system. It is used for Khaganat currently, knowing it can therefore prove useful. [[en:git|See full article]]. <-- Does not exist!! {{tag>Data Ryzom_Core Tools}}