web-dev-qa-db-fra.com

Mercurial: message de validation multiligne sur la ligne de commande?

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

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

ne marche pas. Le journal montre:

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

Mercurial: message de validation multiligne sur 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 hg:

$ hg log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <[email protected]>
date:        Sat Jan 24 07:46:23 2009 -0500
summary:     Did some work

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

Édité pour ajouter:

... mais le journal hg -v affiche le message entier:

$ hg -v log
changeset:   0:d2dc019450a2
tag:         tip
user:        Aaron Maenpaa <[email protected]>
date:        Sat Jan 24 07:46:23 2009 -0500
files:       work
description:
Did some work
Now I'm done
77
Aaron Maenpaa

Depuis Windows cmd, exécutez cette commande pour une validation multiligne.

hg commit -l con

Cela vous permet de saisir un message de validation sur plusieurs lignes directement à partir de la ligne de commande. Pour mettre fin à votre message, appuyez sur Enter, et sur une ligne par elle-même frappé Ctrl + Z et Enter encore.

Why? L'option -l de hg commit indique de lire le message de validation à partir d'un fichier, et con indique que le fichier est en réalité la console.

16
Cody Piersall

Si vous le faites de manière interactive (par opposition à un script), il suffit de faire hg commit sans l'indicateur -m. Je ne suis pas sûr du comportement sous Linux ou Mac, mais sous Windows, le Bloc-notes apparaît avec un fichier que vous complétez et que vous enregistrez pour un message multiligne.

9
Jason S

Je sais, 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, donc 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 c'est utile pour quelqu'un,)

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

-l --logfile FILE lire le message de validation du fichier

4
kapsi

Voici une autre manière plus proche de ce que vous avez essayé au début:

hg commit -m "$(echo -e 'foo\nbar')"
2
Leslie P. Polzer

Pour Windows avec PowerShell:

 hg commit --message "foo`nbar"
0
CodeFox

En bash (depuis la version 2.0):

hg commit -m $'foo\nbar'

(Par exemple, mettez un signe dollar avant un guillemet simple pour le forcer à analyser les séquences d'échappement (comme \n) dans la chaîne - notez que cela ne fonctionne pas avec les guillemets doubles.)

0
Sasha