Ceci est une ancienne révision du document !
A destination des étudiants pour les TPs
Le scénario suivant est à utiliser sous Unix (Linux ou Mac OS X). Sous Windows, remplacer les commandes par leur équivalent via TortoiseHG
Créer un projet sur la forge:
Par la suite, on supposera que le projet a comme id p1234567-montp
. L'URL pour le navigateur est donc http://forge.univ-lyon1.fr/projects/p1234567-montp et l'URL pour mercurial est https://forge.univ-lyon1.fr/hg/p1234567-montp
Clôner le dépôt pour voir une copie de travail locale (à chaque fois, le login et le mot de passe sont ceux de l'intranet lyon 1):
hg clone https://forge.univ-lyon1.fr/hg/p1234567-montp
Si l'enseignant a fourni un code de base dans un projet de la forge, récupérer le contenu de ce projet (on suppose que l'URL du projet en question est https://forge.univ-lyon1.fr/hg/une-ue-un-tp) :
cd p1234567-montp # si ce n'est pas déjà fait hg pull https://forge.univ-lyon1.fr/hg/une-ue-un-tp # récupération en local du code hg update # se positionner sur la dernière version hg push # propagation du code vers votre projet sur la forge
Cette opération de récupération de contenu du projet n'est à faire qu'une fois par projet/tp.
Une fois le répertoire de travail mis en place, effectuer des modifications. Si de nouveaux fichiers source ont été ajoutés, il faut les déclarer via
hg add le/nom/du/fichier
<note important>Ne pas versionner les fichiers binaires (*.o, *.class, *.jar, exécutables, etc). D'une manière générale, ne pas versionner tout fichier qui serait supprimer par un clean (i.e. make clean
ou mvn clean
)</note>
Une fois les modifications satisfaisantes il faut les valider:
hg commit -m "Un message qui explique ce qu'on a fait"
<note tip>Si mercurial se plaint de ne pas connaître l'identité du développeur, ajouter le code suivant au fichier ~/.hgrc
1):
[ui] username = Mon nom <mon.e.mail@mon.domaine.fr>
Ajouter également le fingerprint comme expliqué dans la FAQ de la forge </note>
Il est possible de faire plusieurs cycle modifications/commit, mais pour le moment les modifications ne sont pas propagées vers la forge. Cette propagation se fait via:
hg push
.
<note tip>Il est prudent de précéder un hg push
par hg pull
de façon à être sûr d'avoir la dernière version du dépôt. La réconciliation des changements peut nécessiter des fusions (merge). Voir http://mercurial.selenic.com/guide/ (en anglais) pour des scénarios avec fusion.</note>