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

Mar*_*tin 53 mercurial command-line

如何在命令行上为mercurial指定多行提交消息?

hg commit -m "* add foo\n* fix bar"
Run Code Online (Sandbox Code Playgroud)

不起作用.日志显示:

changeset:   13:f2c6526e5911
tag:         tip
date:        Fri Jan 23 23:22:36 2009 +0100
files:       foobar.cpp
description:
    * add foo\n*fix bar
Run Code Online (Sandbox Code Playgroud)

Aar*_*paa 78

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

点击进入.

$ hg commit -m "Did some work
> Now I'm done"
Run Code Online (Sandbox Code Playgroud)

其中一件事是只有第一行显示在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
Run Code Online (Sandbox Code Playgroud)

...但如果您启动"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
Run Code Online (Sandbox Code Playgroud)

  • "Enter"行为依赖于类UNIX的shell.有没有办法用Windows CMD做到这一点? (5认同)
  • 谢谢!`hg help log`没有`v`标志(至少不适合我).完整摘要正是我所寻找的:) (3认同)

Cod*_*all 16

Windows cmd,执行此命令以进行多行提交.

hg commit -l con
Run Code Online (Sandbox Code Playgroud)

这允许您直接从命令行输入多行提交消息.要结束的消息,打Enter,并通过自身的线路击中Ctrl+ ZEnter试.

为什么?-l选项可以hg commit说,以从文件中读取提交信息,并con指定该文件实际上是控制台.


Jas*_*n S 9

如果你是以交互方式(而不是脚本)进行的,那么就不要hg commit使用-m标志.我不确定Linux或Mac上的行为是什么,但在Windows上,它会弹出记事本,其中包含您填写的文件并保存为多行消息.

  • 我认为有一种方法(通过.ini文件)告诉Mercurial调用其他应用程序而不是记事本,然后你只需要找到你喜欢的编辑器. (2认同)

kap*_*siR 5

我知道,已经有针对Linux用户的解决方案,但是我需要针对Windows命令行的另一种解决方案,所以我一直在寻找...

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

hg commit -l filename.txt
Run Code Online (Sandbox Code Playgroud)

我希望这对外面的人很有用,)

[编辑] oO-已将其添加到帮助中

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