问题标签 [mercurial-revsets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - Hg + Eclipse - 过滤变更集以进行移植
我一遍又一遍地重复的动作是将我的更改从生产分支移植default
到生产分支。然而,每次这意味着手动挑选我想要在大量其他变更集之间移植的变更集的繁琐且容易出错的任务。
有没有办法按作者和消息过滤可用的 chagnesets?
git - Mercurial revsets 的 git 等价物是什么?
Mercurial 有一种特定领域的语言,称为revsets,它允许用户指定修订集。
例如,您可能想要列出尚未合并到分支中的补丁default
:
作为一个更复杂的示例,上面的链接给出了列出修订标记1.3
和修订标记之间的变更集的示例,1.5
其中提到“错误”并影响目录中的文件hgext
:
revset 语言非常丰富,允许根据日期、用户名、提交消息、提交是否存在于特定远程位置等来选择变更集。
git 是否具有用于查询变更集的等效机制,无论是在核心程序中还是作为扩展提供?
mercurial - Mercurial:确定每个合并分支上的最新标签
为了确定哪些标签已合并到给定的修订版中,我使用如下命令:
这没关系,但我想通过只报告每个分支的最新标签来改进它:
希望隐含的分支结构足够明显。
这似乎可行(不使用多个 hg 命令或事后过滤结果)?
mercurial - 如何获取当前分支负责人的日志?
我可以通过
然后,我可以通过将该命令的输出中的变更集 ID 复制并粘贴到该命令中来获取所需的数据:
问题是我需要以编程方式执行此操作,并且我不想解析hg head .
. 那么,我可以:
- 使用单个命令执行此操作?我在修订集中找不到任何可行的东西。
- 格式只
hg head .
给我变更集 ID?
mercurial - Mercurial revset 最多选择一个书签
如果我的存储库中有这个变更集
B 已添加书签,而 D 位于提示中 - 我如何创建一个修订集,它将选择 B 和 D 之间的所有内容,但不选择 B。
具体来说,我正在尝试将 C 和 D 压缩到 B 中,例如:
除了这一行还将删除我要保留的提交 B。
mercurial - Revset 过滤器显示命名分支的合并/拆分
我想以仅显示提交的方式过滤 TortoiseHg 中的提交:
- 在不同的命名分支中至少有一个父提交;或者
- 在不同的命名分支中至少有一个子提交;或者
- 是原来的起点(commit 0);或者
- 是命名分支的负责人还是命名分支的关闭提交;
基本上:我怎样才能得到一个简明的图表来显示命名分支是如何流动的?
作为一个例子,我想浓缩这种修订图:
变成省略这些的形式:
- 修订版 15(绿色)
- 修订版 14(绿色)
- 修订版 13(蓝色)
- 修订版 10(蓝色)
- 第 7 版(蓝色)
- 修订版 4(红色)
- 修订版 1(蓝色)
我尝试使用我在 SoftwareRecs 的这个答案中得到的具体建议:
然而,这并不像我想要的那样工作,它仍然包括几个没有关于分支的任何细节的提交,并通过显示太早的提交来缩短默认分支:
如何更改 revset 过滤器以获得更简洁的图表?甚至可能吗?作为一个次优的解决方案,我想如果不区分是否命名分支也是可以接受的。
mercurial - 如何为名称遵循模式的标签创建 revset 别名?
在我的存储库中,我有表单的标签version-1.2.3
。我想创建一个这样的 revset 别名new()
:
...并扩展为:
当我尝试这样做时:
...Mercurial 将其解释为从修订中减去修订$2
(例如1.2.3
)version
,这不是我的意图。
我也试过这个,使用##
连接运算符:
但是然后hg log -r 'new(1.2.3, 1.2.4)'
给了我这个错误:
我也尝试使用ancestors()
而不是::
语法,但仍然出现语法错误。这可能吗?
mercurial - 使用 tortoisehg 按分支创建者过滤
是否可以使用 tortoisehg 按分支创建者进行过滤?按作者过滤选项不显示其他人对我创建的分支的提交。理想情况下,我想要一个过滤器,仅显示对我创建的分支的所有提交。感谢您提供的任何建议。
mercurial - Mercurial 日志,包括最终修订的祖先,但不包括开始修订之前默认分支上的任何内容
我正在编写一个脚本,该脚本解析一个 mercurial 日志并生成任何两个修订之间的所有更改的报告。为了处理分支,我相信我需要使用revsets来生成最终修订的祖先,但我想限制范围以排除任何作为起始修订祖先的修订。
在 3 处,从默认分支创建一个功能分支。
在 5 处,从默认分支创建发布分支 (6)。
在 9 处,功能分支被合并回默认值,并创建一个新版本 (10)。
我想要一个自 5 以来影响 10 => 4,5,7,8,9,10 的所有更改的列表
我遇到的困难是在通过功能分支达到 3 时限制祖先搜索。我不想要它,因为 3 已经是 5 的一部分。
我回顾的其他讨论:
关闭但无助于限制范围。
这意味着您知道分支,但我需要动态找到它们。
version-control - 指定 Revset 时如何使用 Hg Log 限制 N 个最新条目?
这个问题不是hg log 的重复 - 如何获取最后 5 个日志条目?- 很容易应用限制。问题是日志输出,当受限时,似乎并不总是按日志日期降序排列 - 行为会随着添加 revset 而改变。
例如,简单日志“按预期”工作,它显示最新的五个日志条目。
但是,当使用 revset 时,结果首先是最旧的节点(如未观察到的那样-l
);因此,以下显示了不希望出现的最旧的五个条目。
如何hg log
使用 revset 指示按日志日期降序(“如预期”)排序,以便限制具有可预测的1和有意义的效果?
1我不考虑在可预测的 rev集中reverse
抛出随机调用,但如果这是“最好”的方式..