<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.arthion.fr/index.php?action=history&amp;feed=atom&amp;title=Utilisation_Mercurial</id>
	<title>Utilisation Mercurial - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.arthion.fr/index.php?action=history&amp;feed=atom&amp;title=Utilisation_Mercurial"/>
	<link rel="alternate" type="text/html" href="https://wiki.arthion.fr/index.php?title=Utilisation_Mercurial&amp;action=history"/>
	<updated>2026-04-30T15:40:54Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.arthion.fr/index.php?title=Utilisation_Mercurial&amp;diff=537&amp;oldid=prev</id>
		<title>Maelli : hg tip et hg rollback</title>
		<link rel="alternate" type="text/html" href="https://wiki.arthion.fr/index.php?title=Utilisation_Mercurial&amp;diff=537&amp;oldid=prev"/>
		<updated>2010-09-15T11:50:46Z</updated>

		<summary type="html">&lt;p&gt;hg tip et hg rollback&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Adresse du dépot de travail actuel: http://learningruby.hg.sourceforge.net/hgweb/learningruby/learningruby/ (pour la suite : remplacer username par le vrai nom d&amp;#039;utilisateur :))&amp;lt;br/&amp;gt;&lt;br /&gt;
adresse ssh du dépot : ssh://username@learningruby.hg.sourceforge.net/hgroot/learningruby/learningruby&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mercurial ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Sur windows, mieux que le cmd par défaut, on peut lancer powershell&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Initialisation d&amp;#039;un projet ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg init&amp;#039;&amp;#039;&amp;#039; : crée un dépot dans le dossier courant&lt;br /&gt;
&amp;#039;&amp;#039;ou bien &amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;hg clone adressedudépotdistant&amp;#039;&amp;#039;&amp;#039; : si le dépot existe déjà&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Utilisation courante ===&lt;br /&gt;
&amp;lt;poem&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg add&amp;#039;&amp;#039;&amp;#039; : ajoute les fichiers dans le dépot&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg commit &amp;#039;&amp;#039;&amp;#039; ou hg com : crée un commit, et demande de spécifier les changements faits dans le commit&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg com -m &amp;quot;descriptions des changements&amp;quot;&amp;#039;&amp;#039;&amp;#039; : moyen rapide de faire un commit sans ouvrir d&amp;#039;éditeur texte&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg com -A -m&amp;#039;&amp;#039;&amp;#039; : -A permet de faire un hg addremove automatiquement (ajoute et supprime les fichiers comme un grand&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg mv source dest&amp;#039;&amp;#039;&amp;#039; : déplace un fichier&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg cp source dest&amp;#039;&amp;#039;&amp;#039; : copie un fichier&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg tip&amp;#039;&amp;#039;&amp;#039; : affiche le dernier changeset&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg log&amp;#039;&amp;#039;&amp;#039; : affiche l&amp;#039;historique des changements&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg status&amp;#039;&amp;#039;&amp;#039; ou hg st : affiche les changements depuis le dernier commit (M : modifié, ! : disparu R : supprimé (confirmation de disparition) ? : inconnu (fichier qui n&amp;#039;a pas été ajouté au dépot) A : ajouté&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg diff [-r numrevision] nomdefichier&amp;#039;&amp;#039;&amp;#039; : affiche les changements apportés à un fichier depuis le dernier commit ou depuis une révision donnée&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg revert nomdefichier&amp;#039;&amp;#039;&amp;#039; : ramene un fichier à sa version précédente - mercurial ne supprime pas l&amp;#039;original, penser à le supprimer -&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg revert --all&amp;#039;&amp;#039;&amp;#039; : ramene tous les fichiers du dépot à leur état précédent&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg remove nomdefichier&amp;#039;&amp;#039;&amp;#039; : confirme à mercurial que le fichier a été supprimé et qu&amp;#039;il ne faut plus le suivre&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg cat [-r numrevision] nomdefichier &amp;#039;&amp;#039;&amp;#039; affiche le contenu d&amp;#039;un fichier à une révision donnée&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg update -r numrev&amp;#039;&amp;#039;&amp;#039; : ramene l&amp;#039;ensemble des fichier à une révision donnée (par défaut la derniere révision)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg tag Version-1.0&amp;#039;&amp;#039;&amp;#039; ajoute un tag au dépot (permet d&amp;#039;identifier les versions)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg rollback&amp;#039;&amp;#039;&amp;#039; : annule un seul commit qui n&amp;#039;a pas été push sans pour autant annuler les changements faits&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg parent&amp;#039;&amp;#039;&amp;#039; : affiche la révision du dossier courant (utile pour vérifier si on est bien sur la derniere)&lt;br /&gt;
&lt;br /&gt;
Exemple d&amp;#039;utilisation : &lt;br /&gt;
1. Faire quelques changements&lt;br /&gt;
2. Voir si ils marchent&lt;br /&gt;
3. Si ils marchent : commit&lt;br /&gt;
4. S&amp;#039;ils ne marchent pas : revert&lt;br /&gt;
&amp;lt;/poem&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Utilisation en équipe ===&lt;br /&gt;
&amp;lt;poem&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg clone adresse_du_dépot_distant&amp;#039;&amp;#039;&amp;#039; : crée un clone du dépot distant&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg push&amp;#039;&amp;#039;&amp;#039; : envoie les commits locaux sur le dépot distant &amp;#039;&amp;#039;&amp;#039;ne jamais faire de push -f&amp;#039;&amp;#039;&amp;#039; (si message d&amp;#039;erreur, d&amp;#039;autres ont travaillé sur le code depuis le dernier pull)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg pull &amp;#039;&amp;#039;&amp;#039; : récupère les derniers commits sur le serveur distant&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg pull -u &amp;#039;&amp;#039;&amp;#039; : combine un pull et un update en une ligne&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg outgoing&amp;#039;&amp;#039;&amp;#039; ou hg out : affiche la liste des changements qui seraient envoyé avec un push&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg incoming&amp;#039;&amp;#039;&amp;#039; : affiche les changements quit ont eu lieu depuis le dernier pull&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg merge&amp;#039;&amp;#039;&amp;#039; : combine deux sets de changements qui ont eu lieu en meme temps par deux personnes différentes (penser à commit après)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg up&amp;#039;&amp;#039;&amp;#039; : met à jour le repertoire de travail avec le dernier changeset du dépot&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg log -p &amp;#039;&amp;#039;&amp;#039; : affiche le changelog du dernier commit (utile pour voir ce qui a changé apres un pull)&lt;br /&gt;
&lt;br /&gt;
Exemple de travail en équipe : &lt;br /&gt;
1. Début de la journée, on récupère la derniere version sur laquelle tout le monde travaille : &lt;br /&gt;
* hg pull&lt;br /&gt;
* hg up&lt;br /&gt;
2. Faire quelques changements&lt;br /&gt;
3. Commit local&lt;br /&gt;
4. Répéter 2 et 3 jusqu&amp;#039;a avoir du code qu&amp;#039;on veut partager avec les autres&lt;br /&gt;
5. Quand on est pret a tout envoyer : &lt;br /&gt;
* hg pull pour récupérer les changements des autres&lt;br /&gt;
* hg merge pour les intégrer avec les miens&lt;br /&gt;
* tester pour voir si tout fonctionne&lt;br /&gt;
* hg commit (le merge)&lt;br /&gt;
* hg push&lt;br /&gt;
&amp;lt;/poem&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Utilisation avancée ===&lt;br /&gt;
&lt;br /&gt;
==== Code expérimental ====&lt;br /&gt;
On veut faire grosse expérience sur le code&amp;lt;br/&amp;gt;&lt;br /&gt;
Pour pouvoir continuer à commit, on va créer un dépot expérimental à partir du dépot local : &lt;br /&gt;
&lt;br /&gt;
hg clone dépot_local dépot_expérimental (penser à cd ..)&lt;br /&gt;
&lt;br /&gt;
Si l&amp;#039;expérience rate, on supprime le dossier expérimental&amp;lt;br/&amp;gt;&lt;br /&gt;
Si l&amp;#039;expérience a fonctionné, on peut ensuite faire un push vers le dépot local&amp;lt;br/&amp;gt;&lt;br /&gt;
Attention, sur le dépot local, pour voir les changeset apportés par la version expérimentale, il faut hg update&lt;br /&gt;
&lt;br /&gt;
==== Annuler un tres vieux changeset ====&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;hg backout -r revision -- merge&amp;#039;&amp;#039;&amp;#039; : annule un changeset ancien et applique les changements dans la version courante&lt;br /&gt;
&lt;br /&gt;
==== Corriger un bug apparu dans un commit donné ====&lt;br /&gt;
On pourrait le corriger dans la version courante, mais c&amp;#039;est plus clair de le corriger en revenant sur le changeset ou le bug est arrivé.&amp;lt;br/&amp;gt;&lt;br /&gt;
Imaginons que le bug est arrivé à dans la rev3&amp;lt;br/&amp;gt;&lt;br /&gt;
hg update 3&amp;lt;br/&amp;gt;&lt;br /&gt;
(fix the bug)&amp;lt;br/&amp;gt;&lt;br /&gt;
hg commit (la correction du bug)&amp;lt;br/&amp;gt;&lt;br /&gt;
hg merge&amp;lt;br/&amp;gt;&lt;br /&gt;
hg commit (le merge)&amp;lt;br/&amp;gt;&lt;br /&gt;
hg update tip (revenir à la version de travail)&lt;br /&gt;
&lt;br /&gt;
== Tortoise ==&lt;br /&gt;
Créer un dossier&lt;br /&gt;
clic droit, clone&lt;br /&gt;
source path : ssh://kamiben@learningruby.hg.sourceforge.net/hgroot/learningruby/learningruby&lt;br /&gt;
&lt;br /&gt;
Pour synchroniser &lt;br /&gt;
clic droit, tortoise, synchronise et dans la fenetre push&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Authentification sourceforge sans mot de passe par clé privé/publique sur windows ===&lt;br /&gt;
*Lancer le programme puttygen.exe&lt;br /&gt;
*Dans le menu key, choisir SSG2-DSA&lt;br /&gt;
*Cliquer sur generate&lt;br /&gt;
*Bouger la souris dans le carré pour créer quelques données aléatoires&lt;br /&gt;
*Entrer USERNAME@shell.sourceforge.net dans le commentaire de la clé&lt;br /&gt;
*Laisser le champ passphrase vide - il s&amp;#039;agit du mot de passe de la clé, mais il faudrait l&amp;#039;entrer a chaque fois, ce qui n&amp;#039;a aucun interet. Attention par contre, la clé ne sera pas tres sécurisée. Ne l&amp;#039;utiliser que sur sourceforge et la supprimer en cas de piratage de son pc.&lt;br /&gt;
*Cliquer sur save private key. faites aussi un save public key mais ne fermez pas la fenetre.&lt;br /&gt;
*Aller sur https://sourceforge.net/account/ssh et coller le contenu de la fenetre public key.&lt;br /&gt;
*Quittez puttygen&lt;br /&gt;
&lt;br /&gt;
Il faut attendre environ 5mn max avant que la clé soit prise en compte&lt;br /&gt;
&lt;br /&gt;
Pour dire à tortoise d&amp;#039;utiliser cette clé, il faut passer par l&amp;#039;application pageant.&amp;lt;br/&amp;gt;&lt;br /&gt;
Créer un raccourci avec : &amp;quot;C:\Program Files (x86)\PuTTY\pageant.exe&amp;quot; &amp;quot;cheminverslacléprivée\clefprivée.ppk&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
Le lancer (il se met dans le tray)&lt;br /&gt;
&lt;br /&gt;
A partir de maintenant on peut push et pull sans devoir mettre de mot de passe (normalement :))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Inutile mais pour archive&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Première étape : ouvrir son compte ssh chez sourceforge&lt;br /&gt;
&lt;br /&gt;
avec putty : &lt;br /&gt;
host : shell.sourceforge.net&lt;br /&gt;
dans connection date : autologin username : username,projectname (learningruby)&lt;br /&gt;
dans connection,ssh ajouter remote command : CREATE&lt;br /&gt;
aller dans session, mettre un nom, et save&lt;br /&gt;
se connecter&lt;br /&gt;
il demande le mot de passe et crée l&amp;#039;acces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
il faudra se créer le shell (dure 2h) avant de synchroniser sur le repo de sourceforge&lt;/div&gt;</summary>
		<author><name>Maelli</name></author>
	</entry>
</feed>