如果我有标签或书签,是否可以将空格字符用作分隔符?

例:

hg log --template "{rev} {author} {tags} {bookmarks} {desc|firstline}\n"

Output:
3: Author1 TIP BKMRK_NAME Another commit
2: Author1   Third commit
1: Author1 TAG1  Second commit
0: Author1   Initial commit


没有标签或书签的变更集将打印空格字符。我想压制那些多余的空格:

3: Author1 TAG_NAME BKMRK_NAME Another commit
2: Author1 Third commit
1: Author1 TAG1 Second commit
0: Author1 Initial commit

最佳答案

可以创建一种新样式,该样式定义集合的开始位置(即书签),集合本身中的元素以及集合的最后一个元素的外观。

将以下样式定义保存在文件中,例如称为“ my_style”:

changeset = '{rev} {author}{bookmarks} {desc|firstline}\n'

start_bookmarks = ' ['
bookmark = '{bookmark}, '
last_bookmark = '{bookmark}]'


然后,您可以使用刚创建的样式调用hg log:

> hg log --style /path/to/my_style
6 james [bar, foo, master] b 3
5 james b 2
4 james a 3


如果根本没有书签,则只会插入空格和方括号(请注意,{author}和{bookmarks}之间没有空格)。

可以在here中找到一些不错的cli模板作为参考。

关于templates - Mercurial模板:标签和书签的分隔符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8341142/

10-13 09:30