58

コマンドラインでmercurialに複数行のコミットメッセージを指定するにはどうすればよいですか?

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

動作しません。ログには次のように表示されます。

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

7 に答える 7

83

Mercurial:コマンドラインでの複数行のコミットメッセージ?

エンターを押します。

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

その 1 つは、最初の行のみが 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

...しかし、「hg view」を起動すると、メッセージ全体がそこにあることがわかります。

追加するために編集:

...しかし、hg -v ログにはメッセージ全体が表示されます。

$ 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
于 2009-01-24T12:45:43.440 に答える
16

Windows cmdから、複数行のコミットに対してこのコマンドを実行します。

hg commit -l con

これにより、複数行のコミット メッセージをコマンド ラインから直接入力できます。メッセージを終了するには、 を押しEnter、1 行でCtrl+Zを押し、Enterもう一度押します。

なんで?ファイルからコミットメッセージを読み取るように指示するオプションで、ファイルが実際にはコンソールであることを指定-lします。hg commitcon

于 2013-04-26T19:20:19.067 に答える
9

(スクリプトからではなく) 対話的に実行している場合はhg commit、-m フラグなしで実行してください。Linux や Mac での動作がどうなるかはわかりませんが、Windows では複数行メッセージ用に入力して保存するファイルを含むメモ帳がポップアップします。

于 2009-01-24T16:06:39.353 に答える
5

Linuxユーザー向けのソリューションはすでにありますが、Windowsコマンドライン向けの別のソリューションが必要だったので、探していました...

そして、私はそれを見つけました: https://www.mercurial-scm.org/pipermail/mercurial/2011-November/040855.html

hg commit -l filename.txt

誰かの役に立てば幸いです :)

[編集] oO - すでにヘルプに追加されています

-l --logfile FILE ファイルからコミット メッセージを読み取る

于 2012-10-17T12:40:41.543 に答える
2

最初に試した方法により近い別の方法を次に示します。

hg commit -m "$(echo -e 'foo\nbar')"
于 2009-02-17T18:43:19.583 に答える
2

bash の場合 (バージョン 2.0 以降):

hg commit -m $'foo\nbar'

(つまり、最初の単一引用符の前にドル記号\n)を付けて、エスケープ シーケンスを解析するようにします (文字列内のように — 二重引用符では機能しないことに注意してください。)

于 2018-03-17T09:02:46.053 に答える