【问题标题】:Mercurial notification extension globs ignoredMercurial 通知扩展 glob 被忽略
【发布时间】:2012-11-12 18:33:15
【问题描述】:

我正在尝试使用文件模式将推送通知限制到特定目录。 [usersubs] 中的以下 glob 模式不会触发电子邮件,尽管 asterix 和双 asterix 的基本模式有效。操作系统:Windows XP。

**.sql *.sql 一/*.sql **.??? **/*.sql

repos 内容为:

.hg 根.sql /one/one.sql

hgrc 是:

[扩展] 通知 = [钩子] 传入.notify = python:hgext.notify.hook [电子邮件] 来自 = 我@company.com [smtp] 主机 = 12.34.56.78 基本网址 = [通知] 来源 = 服务推拉捆绑 测试 = 假 配置= [用户订阅] 我@company.com = **.sql 最大差异 = 300

使用的工艺:
1) 使用这些设置克隆 repo
2) 更改列出的两个 sql 文件,以便可以提交它们
3) hg commit -m "在这里评论"
4) 汞推

【问题讨论】:

    标签: mercurial mercurial-hook


    【解决方案1】:

    通知扩展不支持使用模式来匹配特定文件。来自“hg help notify”:

    [用户订阅] # key 是订阅者电子邮件,value 是 repo 模式的逗号分隔列表 user@host = 模式

    [reposubs] # key 是 repo 模式,value 是逗号分隔的订阅者电子邮件列表 模式 = 用户@主机

    “模式”是与存储库的绝对路径匹配的“glob”,可选 结合 revset 表达式。 revset 表达式(如果存在)是 通过散列与 glob 分隔。

    问题中列出的模式被视为匹配存储库绝对路径的模式。

    可能的替代方案:

    • 将您希望通知的文件拆分到单独的存储库中(然后通知扩展程序应支持该存储库)
    • 在 Mercurial 2.4 中,尝试使用 revset reposubs 模式,例如“#file('.sql')=me@company.com”。
    • 编写一个自定义挂钩,根据每个文件更改的检测执行所需的通知
    • 不要使用通知,而是让收件人注意 hgweb 提供的每个文件 RSS 提要的更改(由 IRC 上的 mpm 建议)

    【讨论】:

    • 我能够使用 revset 模式让它工作。由于某种原因,glob 不起作用,所以我使用了以下内容:#file('re:.*\.sql')。不起作用的模式是 *#file('.sql') 并且失败并出现错误“incoming.notify hook failed: *.sql not under root”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多