在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'
这是我实际想要使用的整个格式字符串。
答案 0 :(得分:1)
这似乎有效:
hg log filename --template "{date(date, '%m')}\n"
问题是模板参数在空格上中断,其余部分似乎用作路径:filename + "%%m")}\n
(非常奇怪 - 我的hg版本显示不同的错误)
双引号用于CMD,单引号用于hg(python)。