53 votes

Mercurial : message de commit multiligne en ligne de commande ?

Comment puis-je spécifier un message de commit multiligne pour mercurial sur la ligne de commande ?

hg commit -m "* add foo\n* fix bar"

ne fonctionne pas. Le journal indique :

changeset:   13:f2c6526e5911
tag:         tip
date:        Fri Jan 23 23:22:36 2009 +0100
files:       foobar.cpp
description:
    * add foo\n*fix bar

78voto

Aaron Maenpaa Points 39173

Mercurial : message de commit multiligne en la ligne de commande ?

Appuyez sur Entrée.

$ hg commit -m "Did some work
> Now I'm done"

Une des choses est que seule la première ligne apparaît dans le journal de hg :

$ hg log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <zacherates@gmail.com>
date:        Sat Jan 24 07:46:23 2009 -0500
summary:     Did some work

... mais si vous lancez "hg view" vous pouvez voir que le message entier est là.

Modifié pour ajouter :

... mais hg -v log montre le message complet :

$ hg -v log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <zacherates@gmail.com>
date:        Sat Jan 24 07:46:23 2009 -0500
files:       work
description:
Did some work
Now I'm done

16voto

Cody Piersall Points 1346

De Windows cmd pour un commit multi-ligne, utilisez cette commande.

hg commit -l con

Cela vous permet d'entrer un message de validation à plusieurs lignes directement à partir de la ligne de commande. Pour terminer votre message, tapez Enter et sur une ligne à part, frappez Ctrl + Z y Enter encore.

Pourquoi ? Le site -l option pour hg commit dit de lire le message de validation à partir d'un fichier, et con spécifie que le fichier est en fait la console.

9voto

Jason S Points 58434

Si vous le faites de manière interactive (vs. à partir d'un script), il suffit de faire hg commit sans le drapeau -m. Je ne suis pas sûr du comportement sous Linux ou Mac, mais sous Windows, le Bloc-notes s'ouvre avec un fichier que vous devez remplir et enregistrer pour un message multiligne.

5voto

kapsi Points 586

Je sais qu'il existe déjà une solution pour les utilisateurs de linux, mais j'avais besoin d'une autre solution pour la ligne de commande Windows, alors je la cherchais...

Et j'en ai trouvé un : https://www.mercurial-scm.org/pipermail/mercurial/2011-November/040855.html

hg commit -l filename.txt

J'espère que cela sera utile à quelqu'un d'autre,)

[EDIT] oO - il a déjà été ajouté à l'aide

-l --logfile FICHIER lire le message de commit depuis le fichier

2voto

skypher Points 2158

Voici un autre moyen plus proche de ce que vous avez essayé au début :

hg commit -m "$(echo -e 'foo\nbar')"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X