Le site de jp, le seul site qui sert vraiment à rien.





Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 
Auteur Message
 Sujet du message: mercurial quick start
MessagePosté: Ven Mar 05, 2010 13:35 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
mercurial-logo.png 3.66 Kio Vu 759 fois
Mercurial



cette page existe en version originale et en VO : http://mercurial.selenic.com/guide/

à savoir :
- Il n'est pas question de GUI, tout se fait en ligne de commandes
- Chaque membre du projet dispose de un (ou plusieurs) repository(-ies) : il n'y a pas de 'serveur central' avec mercurial. Cependant, rien n'empêche d'avoir un repository de référence
(techniquement il sera identique aux repositories développeurs)


pré-requis : la commande hg s'éxécute
sous windows, executer qqch ressemblant à :
Code:
set PATH=C:\Mercurial;%PATH%



créer un repository et le remplir
aller dans le dossier du projet à versionner (cd mon_projet)
Code:
hg init
hg add
hg commit



mettre à jour
Code:
hg incoming <chemin vers le repository reference>
hg pull <chemin vers le repository reference>
hg up
incoming permet de contrôler ce qui va arriver venir avec le pull
pull pour 'tirer' (récupérer) les différences
up ou update pour modifier ses fichiers


voir les modifs en cours (que l'on a apportées mais pas commitées)
Code:
hg diff
ou
Code:
hg diff <nom_de_fichier>



voir les fichiers modifiés
Code:
hg status



valider ses propres modifs
Code:
hg commit
à ce moment là, sous windoz, notepad* va se lancer :
le but est de 'récolter' un commentaire sur le commit. Il suffit de saisir son commentaire,
de sauver le fichier et de fermer notepad. Mercurial prendra en compte le commentaire saisi.
alternative pour ne pas lancer notepad* :
Code:
hg commit -m commentaire sur le commit



créer un repository de travail en copiant un repository existant
Code:
hg clone project feature1
on créé une copie feature1 dans laquelle la feature 1 sera developpée en se basant sur la version courante du projet project


historique du repo
Code:
hg log



copier un fichier
Code:
hg cp fichier_source fichier_cible
hg commit
(saisir le message)



déplacer un fichier
Code:
hg mv fichier_source fichier_cible
hg commit
(saisir le message)



annuler les modifications
Code:
hg revert <chemin/fichier>
ou
Code:
hg revert --all



revenir sur une version précédente
Code:
hg update 3
(où 3 est le numéro de la révision sur laquelle revenir)


revenir sur la dernière révision
Code:
hg update tip



savoir sur quelle révision on est
Code:
hg identify -n




aide officielle : http://mercurial.selenic.com
toutes ces infos sont issues de ma compréhension de page dispos depuis http://mercurial.selenic.com/wiki/Tutorial

book : Mercurial: The Definitive Guide by Bryan O'Sullivan

*peut être un autre éditeur de texte : configurable dans 'Mercurial.ini'


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Mer Mar 24, 2010 15:40 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
pour les dossiers temporaires, les caches ou les logs,
il est possible de créer un fichier .hgignore
(à coté du dossier .hg)

exemple de fichier .hgignore
Code:
cache
log


ces dossiers ainsi que leur contenu seront ignorés

source : http://mercurial.selenic.com/wiki/.hgignore


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Sam Mar 27, 2010 18:13 
update
soit un projet reference (P:\reference)
soit un clone (D:\dev\projet) dans lequel on a développé une nouvelle fonctionnalité

la nouvelle fonction a été testée et validée,
tout convient on souhaite intégrer les modifications au projet référence

Cela se passe en 3 étapes : lister les différences (incoming), les récupérer (pull), mise à jour des fichiers (update).

Code:
cd P:\reference
hg incoming D:\dev\projet
hg pull D:\dev\projet
hg update


Note : après le pull et avant l'update, les modifications sont stockées dans le dossier .hg
mais les fichiers ne sont pas à jour

Imaginons maintenant qu'un second développeur qui avait déjà une copie du projet (C:\projet_machin)
souhaite la
mettre à jour a partir du projet référence (ainsi récupérer les modifs de la nouvelle fonction).
Mais le problème réside dans le fait qu'il a déjà modifié les sources du projet, mais pas encore commité.
C'est pour cela que la commande 'hg merge' existe :

Code:
cd C:\projet_machin
hg incoming P:\reference
hg pull P:\reference
hg merge


tout simplement ! :D

En cas de conflits, la commande hg resolve permettra de les résoudre.
Après le merge, il faudra faire un commit afin de valider cette opération.

Code:
cd C:\projet_machin
hg incoming P:\reference
hg pull P:\reference
hg merge
hg resolve
hg commit -m merge de la nouvelle fonction


Haut
  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Ven Avr 02, 2010 14:45 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
Pour supprimerun fichier de la conf :
Code:
hg remove mon_fichier.txt


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Ven Avr 02, 2010 22:28 
Guru Meditation
Avatar de l’utilisateur

Inscription: Lun Fév 09, 2004 13:54
Messages: 2901
Localisation: Phobos à qques km de Mars
Jp (home) a écrit:
En cas de conflits, la commande hg resolve permettra de les résoudre.
Après le merge, il faudra faire un commit afin de valider cette opération.

Je me permets d'interrompre ton monologue :D
C'est pour te demander si ça fonctionne ? Le "resolve" arrive donc à merger es copies locales des développeurs en générant un source sans défaut et avec les mises à jour de chaque développeur de façon autonome ?

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Ven Avr 02, 2010 22:42 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
je le teste :

le update tente un merge, si le même bout de code n'est pas modifié des 2 cotés, tout va bien.
Sinon, en cas de conflit il modifie le fichier de la manière suivante :

Code:
ligne1
<<<<<<< local
modification philippe
=======
modification jean
>>>>>>> other
ligne2


avec

fichier initial :
Code:
ligne1
ligne2



fichier modifié par jean (puis committé) :
Code:
ligne1
modification jean
ligne2



fichier modifié par philippe (qui n'a pas commité et qui essaye de merger) :
Code:
ligne1
modification philippe
ligne2


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Ven Avr 02, 2010 23:16 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
Pasc a écrit:
C'est pour te demander si ça fonctionne ? Le "resolve" arrive donc à merger es copies locales des développeurs en générant un source sans défaut et avec les mises à jour de chaque développeur de façon autonome ?

Non, c'est lors de l'update que les fichiers sont mergés.

C'est seulement lorsque l'update echoue à cause d'un conflit (lorsque la même portion du fichier
est modifiée par 2 'personnes') ce qui insère les chevrons qui entourent les 2 modifications en conflits... cf plus haut

puis,
Code:
hg resolve --list
pour voir les fichiers en conflits (avec des chevrons <<<>>>)

ensuite, on corrige/répare le(s) fichier(s) à la main

puis,
Code:
hg resolve --mark fichier_en_conflit
afin de marquer le fichier comme 'résolu'


http://mercurial.selenic.com/guide/ a écrit:
If there are conflicts use hg resolve - that's also what merge tells you to do in case of conflicts.

First list the files with conflicts

$ hg resolve --list

Then resolve them one by one. resolve attempts the merge again

$ hg resolve conflicting_file
(fix it by hand, if necessary)

Mark the fixed file as resolved

$ hg resolve --mark conflicting_file

Commit the merge, as soon as you resolved all conflicts. This step is also necessary when there were no conflicts!

$ hg commit


Mais en général, oui, le "update" arrive à merger les copies locales des développeurs en générant un source sans défaut et avec les mises à jour de chaque développeur de façon autonome.


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Sam Avr 03, 2010 20:55 
Guru Meditation
Avatar de l’utilisateur

Inscription: Lun Fév 09, 2004 13:54
Messages: 2901
Localisation: Phobos à qques km de Mars
:) Merci pour ta réponse, c'est comme svn en fait, lorsque le merge échoue le fichier obtenu lors de l'update contient des marqueurs, ça ne compile pas alors le développeur doit finir le merge...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Mar Avr 06, 2010 00:05 
:lol: mouarf !!!
j'ai failli répondre "comme cvs ou svn"
mais j'étais chaud pour tartniner au roman
et ayant les commandes dans l'historique, j'en ai profité.

D'ailleurs il existe aussi des gui comme tortoisehg... mais je n'ai pas testé.


Haut
  
Répondre en citant le message  
 Sujet du message: Re: mercurial quick start
MessagePosté: Jeu Juil 08, 2010 16:40 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
Jp (home) a écrit:
D'ailleurs il existe aussi des gui comme tortoisehg... mais je n'ai pas testé.


je le teste depuis 2 jours et il est terrible !
- véloce (alors que mon repository se trouve sur une clé usb)
- intuitif
- malgrès le fait qu'il s'intègre dans l'explorer windows, il ne l'alourdie pas
:arrow: http://tortoisehg.bitbucket.org/ :bien:

ça ne vaut pas le coup de s'embêter avec la ligne de commande,
dommage qu'il n'existe pas en version nomade


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 10 messages ] 


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous pouvez poster de nouveaux sujets
Vous pouvez répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Location de villa à Marseille - Location de gite en alsace pour les vacances
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
DVGFX2 By: Matt
Traduction par: phpBB-fr.com
phpBB SEO