hg模板数据DOS命令行语法

时间:2016-08-31 15:52:45

标签: windows command-line mercurial

在Windows 7上使用Mercurial 3.9。

如果我进入DOS命令行:

hg log filename --template {date(date)}\n

我得到合理的输出,如:

Fri May 27 16:36:56 2016 +0000
Fri May 27 16:07:56 2016 +0000
Fri May 27 16:07:00 2016 +0000
Fri May 20 19:22:12 2016 +0000
Fri Apr 29 13:09:16 2016 +0000
Tue Apr 26 17:06:52 2016 +0000

但是,如果我尝试使用日期格式代码,如:

hg log filename --template {date(date, "%%m")}\n

我收到错误:

abort: cannot follow file not in parent revision: "path/to/file/%%m)}/n"

其中path/to/file是存储库中filename的路径。

我认为需要%%来逃避DOS中的%,但无论如何,如果我省略了转义,它会导致同样的错误。事实上,即使我更简化它,如果导致相同的错误:

hg log filename --template {date(date, "m")}

再次出现相同错误。

如何在命令行中正确输入此模板?此错误确实令人困惑。

请注意,将其放在样式文件中可以正常工作,例如:

changeset = '{date(date, "%m/%d/%Y %H:%M:%S")}\n'

这是我实际想要使用的整个格式字符串。

1 个答案:

答案 0 :(得分:1)

这似乎有效:

hg log filename --template "{date(date, '%m')}\n"

问题是模板参数在空格上中断,其余部分似乎用作路径:filename + "%%m")}\n(非常奇怪 - 我的hg版本显示不同的错误)

双引号用于CMD,单引号用于hg(python)。