我怎样能在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
我怎样能在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
如何在命令行中使用Mercurial提交多行信息?
按回车键即可。
$ hg commit -m "Did some work
> Now I'm done"
其中一个问题是只有第一行在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 log”可以显示整个消息:
$ 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
hg help log
没有v
标志。完整摘要正是我所需要的 :) - Justinhg -v help log
后面。 - Robert Siemer从 Windows cmd 中,使用此命令进行多行提交。
hg commit -l con
这使您可以直接从命令行输入多行提交消息。 若要结束消息,请按Enter,然后单独一行按Ctrl+Z和Enter。
为什么?-l
选项指定从文件读取提交消息,con
指定该文件实际上是控制台。如果您是交互式地进行操作(而不是从脚本中),只需执行hg commit
,不需要-m标志。我不确定在Linux或Mac上的行为如何,但在Windows上,它会弹出带有文件的记事本,您可以填写并保存多行消息。
Alt, F, S, Alt, F, X
这六个键。虽然按键次数有点多,但是因为有规律,所以可以很快地完成。(请注意,我不是指 Alt+F, S, Alt+F, X
,那样似乎更难打。) - Dave Cousineauhg commit -l filename.txt
-l --logfile FILE 从文件中读取提交消息
这里有另一种更接近你最初尝试的方法:
hg commit -m "$(echo -e 'foo\nbar')"
hg commit -m $'foo\nbar'
(即在单引号前加上美元符号,以使其解析字符串中的转义序列(如\n)
— 请注意,它不能用于双引号。)
针对带有PowerShell的Windows操作系统:
hg commit --message "foo`nbar"