Mercurial:命令行上的多行提交消息?

如何在命令行上为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 log中:

 $ 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 

Windows cmd中 ,执行此命令进行多行提交。

 hg commit -l con 

这允许您直接从命令行input多行提交消息。 要结束您的消息,请按Enter键 ,然后单击Ctrl + Z并再次input

为什么? hg commit-l选项表示从文件读取提交消息, con指定文件实际上是控制台。

如果你是交互式地(而不是脚本),只需要hg commit不带-m标志的hg commit 。 我不确定Linux或Mac上的行为是什么,但是在Windows上它会popup记事本,其中包含您填写的文件并保存为多行消息。

我知道,已经有一个Linux用户的解决scheme,但我需要Windows命令行的另一个解决scheme,所以我正在寻找它…

我find了一个: https : //www.mercurial-scm.org/pipermail/mercurial/2011-November/040855.html

 hg commit -l filename.txt 

我希望对那里的人有用,)

[编辑] o – 它已经被添加到帮助

-l –logfile FILE从文件读取提交消息

下面是另一种更接近你最初尝试的方法:

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