我想知道,如何以这种格式返回为提交添加/修改/删除的文件:
<modifier> file
<modifier> path/to/a/file
<modifier> path/to/another/file
在git中我这样做:“git show --pretty =”format:“ - name-status commitish”并获取:
D file
A path/to/a/file
M path/to/another/file
对于mercurial,我无法弄清楚如何使用模板。我有一个样式文件:
changeset = "{file_mods}{file_adds}{file_dels}"
file_add = "A {file_add}\n"
file_mod = "M {file_mod}\n"
file_del = "D {file_del}\n"
并且使用这个样式和命令“hg log -r commitish-style~ / .hgstyle”我得到几乎我想要的东西:
M path/to/another/file
A path/to/a/file
D file
mercurial还有一个问题 - 文件排序不正确。
如何在mercurial上获得与git命令相同的结果(使用修饰符并正确排序)?
答案 0 :(得分:1)
试试这个:
hg stat --change THE_REV_YOU_WANT
答案 1 :(得分:0)
也许我没有正确理解,但是如果你想先删除,然后添加和最后修改,请简单地更改你的样式文件的第一行:
changeset = "{file_dels}{file_adds}{file_mods}"
如果您想更接近Git外观,还可以添加制表符(\t
)而不是空格:
file_add = "A\t{file_add}\n"
答案 2 :(得分:0)
使用模板引擎没有直接的方法,但您可以尝试:
hg log --style ~/.hgstyle -r <rev> | sort -k2
这将对第二列数据(即文件名)上的log命令的输出进行排序。
答案 3 :(得分:0)
将其添加到您的.hgrc
文件
[alias]
prettylog = log -r : --template "{rev} | {date|shortdate} | {desc|strip|firstline}\n{file_dels % ' - {file}\n'}{file_adds % ' + {file}\n'}{file_mods % ' ~ {file}\n'}\n"
它会打印一个整齐格式的输出,如下所示(2是转速):
2 | 2014-03-21 | my new log format
- js/remove_me.js
+ js/add_me.js
~ doc/modified_me.txt
~ www/index.html