1

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

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

回购内容是:

.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 "comment here"
4) hg push

4

1 回答 1

2

通知扩展不支持使用模式来匹配特定文件。从“汞帮助通知”:

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

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

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

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

可能的替代方案:

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