Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:recuperer_les_donnees [2016/01/05 16:42] zatalyzfr:recuperer_les_donnees [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Recupérer les données : Mercurial, Git ======+====== Récupérer les données : Mercurial, Git ======
  
-<WRAP center round tip 60%> +Pour partager les modifications de code et de graphismes, nous utilisons un système de gestion des dépôts.
-Page à reprendre / développer / adapter au vu du serveur de données en cours de déploiement --- //[[wiki:user:yannk|YannK]] 2015/07/26 22:54// +
-</WRAP>+
  
  
-Les données du serveur de jeu Ryzom Core sont hébergées sur [[http://bitbucket.org/ryzom/ryzomcore|Bitbucket]] mais nous avons mis en place notre [[http://depots.khaganat.net/scm/|propre serveur Mercurial]] pour la gestion de notre système propre.+Les données du serveur de jeu Ryzom Core sont hébergées sur [[http://bitbucket.org/ryzom/ryzomcore|Bitbucket (mercurial)]] mais nous avons mis en place notre [[https://git.khaganat.net/|propre serveur Gitlab]] pour la gestion des données de Khaganat.
  
 {{ tuto_mercurial1.png?direct&200 |Site Internet de Bitbucket}} {{ tuto_mercurial1.png?direct&200 |Site Internet de Bitbucket}}
 Elles sont régulièrement mises à jour par les participants au projet. C'est à partir de là que l'on peut récupérer tous les fichiers nécessaires à l'installation d'un serveur, à la création d'un jeu ou au déploiement d'un client. Pour l'heure, il n'existe pas de dépôt de tous les binaires que l'on peut compiler à partir de ces sources. Elles sont régulièrement mises à jour par les participants au projet. C'est à partir de là que l'on peut récupérer tous les fichiers nécessaires à l'installation d'un serveur, à la création d'un jeu ou au déploiement d'un client. Pour l'heure, il n'existe pas de dépôt de tous les binaires que l'on peut compiler à partir de ces sources.
  
-Nous allons donc voir dans un premier temps comment récupérer les fichiers, les synchroniser, voire proposer des modifications+<WRAP center round info 60%> 
 +Cette page sert à expliquer les concepts clés de la gestion de dépôts. Pour ce qui est de l'utilisation et de l'apprentissage des commandes de chacun des deux systèmes de gestion de versionvoyez les pages plus précises sur [[fr:mercurial|Mercurial]] et [[fr:git|Git]].
  
-===== Le vocabulaire et les concepts ===== +Si vous connaissez déjà tout çarendez-vous directement sur notre [[gitlab>/|serveur Gitlab]] ! Vous pouvez aussi lire [[fr:principe_de_développement_sur_khaganat]] pour savoir comment nous acceptons les contributions
-Avant de voir comment réaliser les différentes opérations, il semble important de préciser quelques notions de vocabulaire. Les termes anglais ont été conservés car il est très fréquent que cela soient ceux que vous rencontrerez sur IRC ou dans des tutoriels. +
- +
-L'endroit où les fichiers sont conservés sur Internet (le zone de Bitbucket qui accueille les fichiers Ryzom Core par exemple) s'appelle un //repository// (//dépôt// en anglais). En créant un compte sur Bitbucket, vous allez créer votre propre repository, qui contiendra votre version des données, celle avec laquelle vous allez synchroniser votre répertoire local (sur votre ordinateur). Le dépôt contient en outre un historique des modifications faites (dans le répertoire .hg). On présente chaque nouveau dépôt comme un //fork// (ang. //bifurcation//)de son dépôt initial, car il peut donner lieu à un projet distinct, selon les choix d'échange et de synchronisation qu'il choisit. +
- +
-==== Clone, pull, update & merge ==== +
-La première chose à faire pour travailler avec un repository de référence est de récupérer les données par un //clone// (ang. //clone// ) dans son propre repository. Si on l'a déjà fait voilà un moment et que l'on n'est pas certain d'avoir les dernières versions, il faut alors le vérifier et, le cas échéant, les récupérer, ce qui modifiera les données dans notre propre dépôt, on appelle cette opération un //pull// (ang. //tirer//). Une fois cela fait, on peut synchroniser les données que l'on a en local avec son dépôt : un //update// (ang. //mise à jour//). +
-\\ Si des fichiers ont été modifiés des deux côtés, le système refusera de faire cela et proposera plutôt un //Merge// (ang. //fusion//, "comparer" sur BB). A priori cela se fera également automatiquement, tant que ce sont des lignes différentes qui auront été modifiées au sein d'un même fichier. Dans le cas contraire, il vous sera proposé manuellement de faire un choix ou de choisir comment synthétiser les deux modifications en une. +
- +
-==== Commit & push ==== +
-Lorsque l'on a réalisé un certain nombre de modifications sur ses fichiers locaux, il faut les enregistrer sur son repository BitBucket. Pour cela, on fait un //commit// (ang. //envoi, livraison//), qui va copier en vérifiant si un merge ne serait pas préférable si il constate que des changements ont été fait également dans le repository (par le biais d'un pull récent par exemple). On indique généralement à cette occasion quels fichiers et lignes ont été modifiés, ou de très synthétiques commentaires. +
-\\ Une fois ses données dans son repository, on peut faire un //push// (ang. //pousser//, "demande d'ajout" sur BB) pour que ses modifications soient acceptées par le repository du projet initial. Dans la cas probable où des fichiers y auront été modifiés depuis votre dernier pull, il faudra sûrement faire un pull/merge pour que cela soit possible (et donc un update de vos fichiers locaux également). +
- +
-===== Mercurial ===== +
-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 : [[http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/|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.  +
- +
-<WRAP center round important 60%> +
-C'est très résumé ! Pour plus d'explications, les tutoriels listés sont parfaits.+
 </WRAP> </WRAP>
  
-==== Les commandes de base ==== 
  
-//On commence par cloner un dépôt distant sur son propre ordi.// +Nous allons donc voir dans un premier temps comment récupérer les fichiers, les synchroniser, voire proposer des modifications.
  
-Cloner un dépôt chez soi +===== Gestion de dépôt : vocabulaire et concepts ===== 
-  hg clone http://depots.khaganat.net/scm/hg/Fabrique+Avant de voir comment réaliser les différentes opérations, il semble important de préciser quelques notions de vocabulaireLes termes anglais ont été conservés car il est très fréquent que cela soient ceux que vous rencontrerez sur XMPP ou dans des tutoriels.
  
-//On peut cloner dans un second dossier la copie du premierafin de garder pour comparer la version "serveur" et la version en cours de travailCela permet de pouvoir fusionner les différences de façon plus confortable aussi.//+L'endroit où les fichiers sont conservés sur Internet (la zone de Bitbucket qui accueille les fichiers Ryzom Core par exemple) s'appelle un //repository// (//dépôt// en français). En créant un compte sur Bitbucket (ou Githubou Gitlab), vous allez créer votre propre repository, qui contiendra votre version des données, celle avec laquelle vous allez synchroniser votre répertoire local (sur votre ordinateur).
  
-Cloner chez soi une branche "pour bidouiller" (afin de revenir plus facilement en arrière au besoin+Le dépôt contient en outre un historique des modifications faites (dans le répertoire .hg pour mercurial, .git pour git). On présente chaque nouveau dépôt comme un //fork// (ang. //bifurcation//de son dépôt initial, car il peut donner lieu à un projet distinct, selon les choix d'échange et de synchronisation qu'il choisit.
-  hg clone Fabrique FabriquePerso+
  
-Ensuitedans ce dossier //FabriquePerso//on fait tout ce qu'on veut : modifier des fichiersen créer... Si on ajoute des dossiersil faut dire à mercurial qu'ils existent, en les listant.+==== Clonepull, update & merge ==== 
 +La première chose à faire pour travailler avec un repository de référence est de récupérer les données par un //clone// (ang. //clone// ) dans son propre repository. Si on l'a déjà fait voilà un moment et que l'on n'est pas certain d'avoir les dernières versionsil faut alors le vérifier et, le cas échéant, les récupérer, ce qui modifiera les données dans notre propre dépôt, on appelle cette opération un //pull// (ang//tirer//)Une fois cela faiton peut synchroniser les données que l'on a en local avec son dépôt : un //update// (ang. //mise à jour//).
  
-Lister les dossiers nouvellement créés : +\\ Si des fichiers ont été modifiés des deux côtés, le système refusera de faire cela et proposera plutôt un //Merge// (ang. //fusion//, "comparer"). A priori cela se fera également automatiquement, tant que ce sont des lignes différentes qui auront été modifiées au sein d'un même fichier. Dans le cas contraire, il vous sera proposé manuellement de faire un choix ou de choisir comment synthétiser les deux modifications en une.
-  hg addremove+
  
-Lister les changements : +==== Commit & push ==== 
-  hg status +Lorsque l'on a réalisé un certain nombre de modifications sur ses fichiers locaux, il faut les enregistrer sur son repository. Pour cela, on fait un //commit// (ang. //envoi, livraison//), qui va copier en vérifiant si un merge ne serait pas préférable, s'il constate que des changements ont été fait également dans le repository (par le biais d'un pull récent par exemple)On indique généralement à cette occasion quels fichiers et lignes ont été modifiésou de très synthétiques commentaires.
-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 +
- +
-==== Se créer son repository sur Bitbucket et y placer les données ==== +
-Il faut tout d'abord se créer un compte (gratuit) sur BitBucket pour pouvoir créer son propre repository. +
-\\ Toutes les indications sont données sur http://www.bitbucket.orgpour s'inscrire. +
-Une fois cela fait, on obtient un repository vide :{{ tuto_mercurial2.png?direct&200 |Page sans aucun  code}} +
-<WRAP important>Suite à veniren cours... </WRAP>+
  
-Il existe ensuite plusieurs méthodes pour synchroniser ses fichiers avec le repository maître du projet, parmi elles on distingue [[wpfr>wiki/TortoiseHg|TortoiseHg]], un outil graphique disponible sous Windows et GNU/Linux (et bientôt Mac).+Une fois ses données dans son repository, on peut faire un //push// (ang. //pousser//, "demande d'ajout"pour que ses modifications soient acceptées par le repository du projet initial. Dans la cas probable où des fichiers y auront été modifiés depuis votre dernier pullil faudra sûrement faire un pull/merge pour que cela soit possible (et donc un update de vos fichiers locaux également).
  
-==== Installation de Tortoise Hg ==== +==== Branch ==== 
-Il existe dans les dépôts de binaires Debian : //tortoisehg// et/ou //tortoisehg-nautilus// (dépendent de //Mercurial//). +Lorsqu'on réalise un travail particulier demandant plusieurs commits, pour ajouter une feature par exemple, on travaille sur une branche, parallèlement à la branche principale appelée //master//. Cette branche est ensuite fusionné sur //master//. 
-\\ Sinon on trouve des explications sur la [[http://tortoisehg.bitbucket.org/download/index.html|page de download du projet]].+
  
-===== Git ===== +Lorsque vous clonez un dépôt, vous ne voyez que ce qui est sur la branche que vous suivez (par défaut, master). Il faut passer une commande pour aller d'une branche à l'autre et voir les modifications.
-Git est un autre système de gestion de version. Il n'est pas utilisé pour Khaganat actuellement, mais le connaître peut s'avérer utile.+
  
-[[fr:git|Voir l'article complet]]. 
 {{tag>Données Ryzom_Core Outils}} {{tag>Données Ryzom_Core Outils}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/recuperer_les_donnees.1452008577.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact