Question

Je viens juste de commencer à travailler sur un projet qui utilise Mercurial comme système de contrôle de version et j'ai besoin de quelques conseils de base pour l’utiliser. Utilisez cette question pour donner quelques conseils d’introduction sur cette technologie.

En particulier, je cherche des conseils sur les meilleurs programmes à utiliser et les meilleures techniques à utiliser (branches, vérifications d'entrée et de sortie, etc. J'ai besoin d'apprendre les meilleures pratiques!)

Était-ce utile?

La solution

Je sais que vous avez déjà le site Mercurial, mais la ressource la plus utile pour moi a été le livre Mercurial. . C'est un excellent aperçu du programme et de son utilisation.

J'ai trouvé que le meilleur moyen d'apprendre à utiliser Mercurial consistait simplement à l'utiliser dans un projet. J'ai importé dans Mercurial un projet que j'avais exporté de subversion et réalisé des développements réguliers avec celui-ci. Je me suis assuré de cloner le référentiel pour différents changesets afin de m'habituer à la fusion et à la mise à jour. Je n'ai pas appris toutes les utilisations avancées, mais je suis maintenant assez solide et je ne suis pas encore revenu à Subversion.

De nombreux projets utilisent des techniques différentes pour le workflow de validation. Certains ont des modifications poussées par les développeurs, comme les systèmes centralisés, et d'autres seront extraites des contributeurs (Linux, par exemple). Il est difficile de généraliser trop sans connaître le processus de votre projet.

Voici comment je réalise mon développement:

  • Arborescence centralisée sur un partage de fichier ou http, appelée tronc de projet ou projet qui correspond à la version définitive du projet
  • Une arborescence vierge de mon système que je clone à partir du référentiel distant et que je réutilise dans le référentiel. Je clone ensuite de cet arbre pour mes modifications. J'appelle cet arbre projet-local
  • Clonez l’arborescence project-local pour chacune de mes modifications: eg. projet-addusers , projet-141 , etc.
  • Une fois les commits terminés, je répète les modifications dans le référentiel project-local
  • .
  • Enfin, transmettez les modifications apportées dans projet-local à jonction-projet

J'ai l'arborescence propre projet-local car je peux alors repousser tous les ensembles de modifications en même temps sur le tronc, ce qui est utile en cas de groupe de modifications connexes à repousser. ensemble.

En ce qui concerne les outils, cela dépend de votre plate-forme. Je viens d'utiliser l'outil de ligne de commande vanille. Venant de TortoiseSVN, c'était un peu un changement d’aller en ligne de commande. Mais ça me va maintenant. J'ai essayé d'utiliser TortoiseHg mais cela ne fonctionnait pas bien sur ma machine virtuelle Windows 7 x64. J'entends dire que c'est beaucoup mieux sur les plates-formes 32 bits prises en charge.

Autres conseils

Voici un tutoriel utile sur Mercurial, rédigé par Joel Spolsky .

Il couvre l’utilisation de base et les commandes, ainsi que la manière de travailler avec Mercurial à un niveau plus conceptuel. Si vous connaissez déjà SVN, la première partie mérite certainement d'être lue: elle parle des principales différences conceptuelles entre SVN et Mercurial, car essayer d'utiliser Mercurial de la même manière que SVN pose problème.

Consultez le livre Mercurial , ou consultez ce Tutoriel Mercurial .

En fonction de votre expérience avec d’autres outils de contrôle de source, je vous suggérerais également un guide spécifique de SCM, quel qu’il soit, à Mercurial. Par exemple, consultez ce guide pour les utilisateurs de Subversion . .

Une autre bonne ressource pour vous faire une idée de la totalité du " distribué " L'idée de contrôle de source est: http://betterexplained.com/articles/ intro-to-distribué-version-control-illustrated / ... avec des schémas utiles!

Si vous utilisez le dernier client TortoiseHG et que vous incluez le répertoire d'installation dans votre environnement PATH, vous serez capable d'utiliser à la fois la belle interface graphique qu'ils fournissent, et la ligne de commande 'hg'

Je ne peux pas trop recommander l'utilisation des extensions mq. Ils constituent un excellent environnement de "référentiel de travail".

J'utilise les files d'attente pour gérer les modifications locales dans un référentiel de subversion. Je fais mes changements locaux à court terme et utilise mercurial pour rester en phase avec Subversion et le reste de l'équipe.

Quelques articles de blog de Steve Losh sont bons, même s’ils ont deux ans maintenant. Ils traitent principalement de la façon de travailler avec les branches.

Cela vaut également la peine de consulter son site hgtip.com .

En plus du tutoriel Mercurial Book et du Hg Init, je voudrais mentionner le guide basé sur des exemples que j'ai écrit:

Il montre comment démarrer avec Mercurial et aborde également des concepts plus avancés, tels que les branches nommées et hgsubversion. Je l'ai utilisé pour enseigner Mercurial à de nouveaux utilisateurs et ils ont semblé l'apprécier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top