19

Mercurial 有一种特定领域的语言,称为revsets,它允许用户指定修订集。

例如,您可能想要列出尚未合并到分支中的补丁default

hg log -r "all() - ancestors('default')"

作为一个更复杂的示例,上面的链接给出了列出修订标记1.3和修订标记之间的变更集的示例,1.5其中提到“错误”并影响目录中的文件hgext

hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')"

revset 语言非常丰富,允许根据日期、用户名、提交消息、提交是否存在于特定远程位置等来选择变更集。

git 是否具有用于查询变更集的等效机制,无论是在核心程序中还是作为扩展提供?

4

2 回答 2

2

要列出除默认主分支之外的所有提交,就像我假设第一个示例一样:

git log --all --not master

要获得与第二个示例相同的结果:

git log 1.3...1.5 --grep="bug" -- hgext
于 2015-01-15T16:27:14.473 回答
0

git 是否具有用于查询变更集的等效机制,无论是在核心程序中还是作为扩展提供?

git 中最接近的等价物是gitrevisions(7),但它完全是临时的,而且规则性和可组合性明显降低。并不是所有的命令都使用它(众所周知git diff,相同的结构具有完全不同的行为,因为gitrevisions适用于范围但git diff适用于提交对)。

于 2021-09-03T08:37:42.480 回答