Quelles sont les meilleures et les meilleures extensions hg / mercurial?

Je me suis amusé avec hg / mercurial dernièrement, notamment avec Fogcreek’s Kiln, et j’essaie de comprendre quelles sont les extensions indispensables. C’est un peu délicat de passer au crible leur liste d’extensions car je ne suis pas intéressé par le test d’extensions buggées ou peu pratiques, même si leur description est géniale.

Alors, quelles extensions de hg utilisez-vous?

Voir Utilisation des extensions

Ma propre liste de succès:

Les simples que vous devez avoir:

  1. color : colorise la sortie des commandes comme diff et status , ce qui facilite son évaluation.
  2. pager : parcourir une longue page à la fois.
  3. fetch : tirer, mettre à jour et fusionner à partir d’un autre repository en une seule étape.
  4. graphlog : affiche les graphiques de révision dans votre shell, ce qui est très utile pour regarder les twigs de votre historique des logs.
  5. hgk : parcourez le référentiel avec une interface graphique (voir aussi TortoiseHg et Murky)

Si vous activez le pager , vous devez le configurer pour ne pas interférer avec certaines commandes:

 [pager] pager = LESS='FSRX' less ignore = version, help, update, serve, record 

Les extensions intermédiaires que je recommande fortement (et à utiliser fréquemment):

  1. record : vous permet de sélectionner de manière interactive les fichiers de fichiers à valider – ce qui convient parfaitement lorsque vous êtes au milieu d’un ensemble de modifications et que vous finissez par corriger quelque chose qui doit avoir son propre commit.
  2. extdiff : configure un outil de diff externe (tel que Meld)
  3. share : plusieurs clones utilisent-ils le même historique de repository

Les extensions avancées que je ne serais pas sans:

  1. mq : gérer une stack de patchs. Très puissant, permet de superposer des patchs sur le dessus de l’arbre.
  2. notify : envoie des notifications par email lorsqu’un repo est modifié.
  3. rebase : réapplique les modifications locales en plus d’une nouvelle révision parent.
  4. grands fichiers: travailler avec de gros fichiers binarys en dehors du magasin HG

Tous les éléments ci-dessus sont fournis avec Mercurial et sont stables et testés. Je les recommande fortement.

Extensions non essentielles à étudier:

  1. shelve : mettez de côté les modifications de manière sélective (à la granularité des pièces) et restaurez-les.
  2. acl : autoriser sélectivement l’access à différentes parties de l’arborescence du référentiel

Extensions remplacées et migrées vers le kernel (info de @ durin42):

  • forest a été remplacée par le support de subrepo introduit dans la v1.3
  • bookmarks sont au cœur et toujours activés
  • transplant est remplacée par la graft , une commande de base
  • histedit est au cœur de v2.3, mais est désactivé par défaut
  • inotify n’est pas recommandé, car il y a apparemment un bug dû à une condition de course

graphlog et mq sont particulièrement savoureux.

  1. Convertir: convertir vers et depuis d’autres systèmes
  2. Mq (Mercurial Queues): traiter les changements comme une stack de patchs
  3. Forest: vous permet de vous engager et de mettre à jour plusieurs référentiels Mercurial nesteds à la fois
  4. Partager: pour gagner du temps et économiser de l’espace disque lorsque vous travaillez avec des référentiels similaires
  5. Hgk: donne une vue graphique de l’histoire
  6. Graphlog: Je tape toujours «hg glog» et non «hg log». Une vue de l’art ascii de l’histoire
  7. Transplant: utile lorsque vous souhaitez uniquement fusionner quelques changesets d’une autre twig. La nouvelle version de hg rebase peut avoir un certain chevauchement.
  8. Rebase: Une manière différente de gérer les modifications sous la forme d’un ensemble de modifications sur une twig. git utilisateurs de git aiment rebaser. Peut remplacer mq pour de nombreux cas d’utilisation.
  9. Shelve: Un endroit pour cacher les modifications de la copie de travail si vous devez travailler sur quelque chose pendant un moment.
  10. Bookmarks: Nommez le dernier commit sur une twig particulière. Semblable aux twigs git .

Pas encore mentionné: mercurial_keyring

https://www.mercurial-scm.org/wiki/KeyringExtension

“L’extension keyring utilise les services de la bibliothèque de trousseaux de clés pour enregistrer en toute sécurité les mots de passe d’authentification (HTTP / HTTPS et SMTP) à l’aide d’une firebase database de mots de passe spécifique

J’utilise ssh pour accéder à mes repos sur GitHub et Bitbucket, et ma phrase clé est conservée dans le trousseau. Cette extension permet à Mercurial de l’obtenir chaque fois que nécessaire.

Aussi requirejs pour moi: hg-git

http://hg-git.github.com/

Le plug-in Mercurial vous permettant d’extraire et de pousser les git repos en utilisant hg en tant que client. Utilisez tout le temps.

Si vous travaillez avec un hôte lent comme Bitbucket, les progrès sont essentiels. Sinon, hg push semble être suspendu: \

Ma liste:

  1. graphlog. Je l’utilise beaucoup plus que le journal de hg. (souhaite que cela puisse limiter aux twigs)

  2. purge. supprimer tous les fichiers ne figurant pas dans Mercurial. Je l’utilise plutôt que comme une version plus propre de make clean.

Moins utilisé, mais sympa:

  • enfants (vous permet de dire “hg children -r XXX”)
  • parentrevspec: vous permet de dire des choses comme “foo ~ 2 = foo ^ 1 ^ 1 = foo ^^ = premier parent du premier parent de foo”

Je continue d’essayer d’utiliser les outils de modification de l’historique, mais je continue à rencontrer des limitations. Je veux qu’ils travaillent.

  • effondrer
  • histedit
  • Je considère rebase une histoire en éditant aussi bien

Au fait, méfiez-vous: hgk et fetch sont “mal aimé”: https://www.mercurial-scm.org/wiki/UnlovedFeatures . Mais alors, SubRepos est, non aimé, mais une fonctionnalité de dernier recours, et j’utilise subrepos.