问题标签 [mercurial-hook]
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.
git - hg 相当于 git post-receive hook
我需要相当于git post-receive
Mercurial 中的钩子,这样我就可以通知另一个服务已经向存储库进行了推送。
我在钩子中需要的很简单:最后一个变更集的变更集修订。
当然我知道与git的区别在于ref
不会被命名,并且可以有多个头被推送到存储库。我可能会同意。
我暂时不想要的是我当前使用hg incoming
钩子实现的行为:我有每个推送的变更集的修订版。
那么,总而言之,hg
通知最后一次推送到存储库的提交的最佳方式是什么?
编辑:目标是通知另一个服务从存储库中提取,因为新代码已经到达。但我不希望服务拉动推送中的每个变更集
mercurial - 如何仅在变基后运行 mercurial changegroup hook?
我们有一个简单的 mercurial 钩子,每次我们拉取远程更改时都会运行。我们使用更改组挂钩。我们的钩子重建了一些 dll 并将它们复制到一个文件夹中。当我们进行拉动时,我们会自动变基。这会导致我们的钩子运行两次,第一次是在我们进行拉取时,然后是在自动变基之后。
有没有简单的方法来检测是否会有变基,并且只在变基结束时运行一次钩子?
谢谢,
mercurial - mercurial:包括预先提交更改的文件
在提交到存储库时,我在 Mercurial 中定义了一个钩子:
这会从我的数据库中创建/更新一个 SQL 转储,它应该包含在提交中。但是:虽然这可行,但 Sql 被标记为新的,但不是现在提交的变更集的一部分。我怎样才能自动包含它,以便它进入一组更改的文件?
希望这是有道理的...
谢谢莱因哈德
mercurial - Mercurial EncodeDecodeFilter 临时文件模板没有从 sed 批处理中提取我的 OUTFILE
我目前被无情地摒弃了简单且看似必要的前提,即如果您遵循文档,事情就会像广告宣传的那样工作。虽然我确实知道情况并非总是如此,但最近我一直受到此类 WTF 洪流的困扰。
让狙击手高兴的第一件事是,是的,这与 hg 关键字有关。具体来说,确保它们在提交之前总是被缩小。我发现 precommit 钩子hg kwshrink
不起作用,因为 hg 锁定了目录,所以下一个候选者是[encode]
过滤器。
我从 #2 开始,但 #1 也不起作用,我的批次很简单
rems 显示我的调查。
看起来一切正常,除了 hg 没有使用我的输出,它只是提交原始文件,就好像它从未阅读过关于它应该如何表现的文档一样。
显然我错过了一个魔法咒语,或者需要重新评估我在这里的职业选择。
mercurial - hg changegroup hook - 抑制 hg 的特定输出?
我编写了一个更改组挂钩,当我从远程服务器副本中提取更改时,它会在我的本地存储库中调用。在钩子实现中,我调用 hg update 来引入更改。在运行hg pull
命令时,输出显示如下:
由于我已经hg update
在钩子中调用,我想取消建议用户运行的最后一行hg update
。
mercurial - Mercurial回滚钩?
我正在编写一个扩展,在回滚后能够执行一些逻辑将非常方便。
我浏览了所有关于钩子的文档,但我找不到rollback
钩子。我也尝试了post-*
钩子(即post-rollback
),但这也没有触发。我的下一步是深入研究源,但我想我会问这个问题以防有人知道。
有回滚钩吗?如果是这样,是否可以使用uisetup()
or将其连接到 Python 扩展中reposetup()
?
mercurial - 禁用/弃用(但不删除)mercurial 存储库
我和我的同事使用了几个位于集中式(ubuntu,如果重要的话)服务器上的存储库。对于我们的几个项目,我们在许多不同的项目中包含相同的 4 个存储库作为子存储库。这可能有点烦人,因为在网络上传输所有内容等需要一段时间,所以不断地在许多不同的项目中推送/拉取/合并 4 个不同的子存储库。
我想将这 4 个存储库合并到一个主存储库中,该存储库可以包含在我们未来的所有项目中。挑战在于我不想删除旧的子存储库,因为这会破坏运行良好的现有项目。
如果有办法将这些旧存储库指定为已弃用,或者至少使我的同事无法将任何新变更集推送到这些存储库并显示有用的错误消息,那就太好了。这有可能吗,也许正如这个切线问答所暗示的那样,使用了反复无常的钩子?
mercurial - Adjusting mercurial notify extension to send notification due to a certain string in the commit message?
I need to send notifications to certain email due to a certain string in the commit message in the mercurial repository. I have now the notify extension working but it sends notifications at every push. thanx in advance.
mercurial - 禁止 hg push -f - 但允许 hg pull 创建新头
作为Mercurial 的后续行动:在“hg commit”之前强制执行“hg pull -u” 我已经开始使用钩子
forbid_2head.sh 看起来像这样
它是在http://tutorials.davidherron.com/2008/10/forbidding-multiple-heads-in-shared.html 中找到的脚本的派生,我确实允许多个命名分支。
我现在遇到的问题是
- 它停止了 hg push -f 这就是我想要的
- 如果有传入的变更集并且我有提交传出,它也会停止 hg pull。这确实很糟糕
我可以以任何方式重用相同的脚本,但更改挂钩设置并停止“hg push -f”吗?或者我可以在 forbid_2head.sh 中知道这是正在运行的推送命令还是拉取命令?
mercurial - Mercurial:远程 hg 更新挂钩后强制删除
我们在远程存储库上设置了一个挂钩,以便在接收到推送后自动更新存储库。它工作得很好,除非我们在本地删除文件然后推送。我们收到这样的消息:
它会自动选择“c”。我们有没有办法让 Mercurial 使用 'd' 并删除文件?
这是钩子,也发布在评论中,但希望在这里保留换行符:
.sh 文件在 hg 更新后重置一些权限。