问题标签 [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.
mercurial - “工作目录”是否有 Mercurial 修订集?
我正在尝试编写脚本hg diff
并希望接受将传递给-r
选项的参数,如果没有给出参数,则默认为工作目录。但是,似乎没有可以传递的值-r
来指示“工作目录”,而是必须完全省略该选项,这导致我的脚本中出现以下逻辑:
我相信这是唯一的方法是正确的吗?我们可以假设让脚本接受一个-r
参数并将整个事情传递给 Mercurial 不是一种选择。参数必须符合一套工具使用的风格。
mercurial - Mercurial - 在当前分支中修改的文件
你能帮我为 mercurial 创建一个适当的修订集hg status
吗?我想列出自创建以来在当前分支中更改的所有文件。我试过了
我的分支的名称在哪里foo
,但这也列出了在创建我的分支的分支中更改的文件(?)。我不知道如何为此创建适当的修订集。
我创建了我的分支并在多个文件中进行了一些更改。现在我想在我的应用程序中重新加载这些文件,但只有它们。
mercurial - 如何过滤`file_dels`以匹配glob?
这是我的shell命令:
这会吐出类似这样的内容(为易读而格式化):
我的问题是:如何过滤结果file_dels
以仅列出与我的 glob 匹配的文件?
即,我试图找到删除特定文件的修订的父级,通过 glob 搜索,以便我可以恢复它。我的--rev
发现说是修订版,但模板列出了太多文件——我只想找到符合我的搜索条件的文件。
mercurial - 使用 mercurial 生成合并日志
我们正在使用 Mercurial 进行源代码控制,并希望为我们的 QA 流程引入自动合并和更改日志。出于讨论的目的,我们假设我们使用一个简单的 3 分支流程,如下所示:
所以问题是:是否有可能构造一个 revset 查询,在合并 N 时,最好是在实际执行它之前,否则在实际执行它之后,将导致默认分支上所有提交的日志,这些提交尚未在 QA 分支中(在上图是A和B)。
另一种表述:是否可以构造一个 revset 查询来返回所有变更集,如果我们将 Default 合并到 QA 中,这些变更集将被合并。
我只对 Default 分支上的提交感兴趣,而不是已经合并到 Default 中的功能分支中的单个提交(图中未包含功能分支)。我也对 QA 分支上的提交不感兴趣。
该存储库维护得很好,但已有几年历史,包含大约 13000 个节点。
我一直在试验祖先和祖先,但要么我得到 X 作为最新的共同祖先,要么是一些非常非常古老的节点。我理解获得 X 的逻辑,但我真的在追求 O。
我最幸运的是这种变化:
更新
按照 Tom 的建议,使用“hg merge --preview --rev XYZ”会生成如下输出:
还不错,但也不是很有趣。至少它需要比简单的 grep/sls 更多的逻辑来解析。
在此先感谢,约翰
mercurial - mercurial revsets 运算符的 : 和 :: 和 % 有什么区别
revsets 帮助提及
"x::y" DAG 范围,表示作为 x 的后代和 y 的祖先的所有变更集,包括 x 和 y 本身。如果省略了第一个端点,则相当于“ancestors(y)”,如果省略了第二个端点,则相当于“descendants(x)”。另一种语法是“x..y”。
"x:y" 修订号在 x 和 y 之间的所有变更集,包括两者。任何一个端点都可以省略,它们默认为 0 和小费。
"x % y" 作为 x 的祖先但不是 y 的祖先的变更集(即 ::x - ::y)。这是“only(x, y)”的简写符号(见下文)。第二个参数是可选的,如果省略,则等效于“only(x)”。
尚不清楚结果有何不同。一般来说,“x % y”返回我想选择的,但我想了解其他人。