如何在命令行上为 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
在Windows cmd中,对多行提交执行此命令。
hg commit -l con
这允许您直接从命令行输入多行提交消息。要结束您的消息,请点击Enter,然后在一行上单独点击Ctrl+Z并Enter再次点击。
为什么?表示从文件中读取提交消息的选项,并指定-l
该文件实际上是控制台。hg commit
con
如果您以交互方式进行操作(相对于脚本),只需hg commit
不使用 -m 标志即可。我不确定 Linux 或 Mac 上的行为是什么,但在 Windows 上,它会弹出记事本,其中包含您填写并保存为多行消息的文件。
我知道,已经有针对 linux 用户的解决方案,但是我需要针对 windows 命令行的另一种解决方案,所以我一直在寻找它......
我找到了一个: https ://www.mercurial-scm.org/pipermail/mercurial/2011-November/040855.html
hg commit -l filename.txt
我希望,它对那里的人有用,)
[编辑] oO - 它已被添加到帮助中
-l --logfile FILE 从文件中读取提交信息
这是另一种更接近您最初尝试的方法:
hg commit -m "$(echo -e 'foo\nbar')"
在 bash 中(从 2.0 版开始):
hg commit -m $'foo\nbar'
(即在开始的单引号之前放一个美元符号以使其解析转义序列(如\n)
在字符串中 - 请注意,它不适用于双引号。)
对于带有 PowerShell的Windows :
hg commit --message "foo`nbar"