hg log:直接调用中{files}模板与--verbose中嵌入的模板之间的行为不同

时间:2013-08-07 22:24:17

标签: mercurial

我正在努力实现与How to make 'hg log --verbose' show files on multiple lines?相同的功能 而且我或多或少地实现了我的目标。但我不明白我的调用{files}作为hg log --template的参数和使用{files}作为我创建的.style文件中的关键字的不同之处。虽然我希望他们有相同的行为,但他们没有。

这就是我所做的(按照the answer to the question above的指示):

  1. 下载并修改了我自己的my-default.style文件。在本练习中,我已将文件内容减少到:

    changeset_verbose = '{files}\n'
    file = '{file}\n'
    
  2. 在hg配置文件中链接到该样式文件。
  3. 如果我拨打hg log -r1 -v,我会获得正确的换行符输出:

    file1.txt
    file2.txt
    ...
    

    但如果我调用hg log -r1 --template {files},我会得到默认的,以空格分隔的输出:

    file1.txt file2.txt ...
    

    通过黑客攻击changeset_verbose,我可以解决这个问题。但理想情况下,我想在命令行模板中引用我的样式文件。那么:我从命令行定义的{files}的行为在哪里定义?我怎么能覆盖它?

1 个答案:

答案 0 :(得分:1)

可以使用--style参数引用样式文件。或者,您可以在命令行上执行以下操作:

hg log -r 1 --template "{files % '{file}\n'}"

类型

hg help template

了解更多示例和解释。