标签: mercurial-revsets

什么是Mercurial revsets的git等价物?

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

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

hg log -r "all() - ancestors('default')"
Run Code Online (Sandbox Code Playgroud)

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

hg log -r "1.3::1.5 and keyword(bug) and file('hgext/*')"
Run Code Online (Sandbox Code Playgroud)

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

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

git mercurial mercurial-revsets

16
推荐指数
1
解决办法
1099
查看次数

如何为名称遵循模式的标记创建revset别名?

在我的存储库中,我有表单的标签version-1.2.3.我想制作一个new()像这样调用的revset别名:

hg log -r 'new(1.2.3, 1.2.4)'
Run Code Online (Sandbox Code Playgroud)

......并扩展到:

hg log -r '::version-1.2.4 - ::version-1.2.3'  # What's new in 1.2.4?
Run Code Online (Sandbox Code Playgroud)

当我试图这样做时:

[revsetalias]
new($1, $2) = ::version-$2 - ::version-$1
Run Code Online (Sandbox Code Playgroud)

... Mercurial将其解释为从修订中减去修订$2(例如1.2.3)version,这不是我的意图.

我也试过这个,使用##连接运算符:

new($1, $2) = ::"version-" ## $2 - ::"version-" ## $1
Run Code Online (Sandbox Code Playgroud)

但后来hg log -r 'new(1.2.3, 1.2.4)'给了我这个错误:

hg: parse error at 13: syntax error
Run Code Online (Sandbox Code Playgroud)

我也尝试使用ancestors()而不是::语法,但仍然有语法错误.这可能吗?

mercurial mercurial-revsets

8
推荐指数
1
解决办法
466
查看次数

标签 统计

mercurial ×2

mercurial-revsets ×2

git ×1