Mercurial通知扩展globs被忽略

时间:2012-11-12 18:33:16

标签: mercurial mercurial-hook

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

**.sql
*.sql
one/*.sql
**.???
**/*.sql 

回购内容是:

.hg
root.sql
/one/one.sql

hgrc是:

[extensions]
notify =

[hooks]
incoming.notify = python:hgext.notify.hook

[email]
from = me@company.com

[smtp]
host = 12.34.56.78

baseurl = 

[notify]
sources = serve push pull bundle
test = False
config = 

[usersubs]
me@company.com = **.sql

maxdiff = 300

使用的过程:
1)用这些设置克隆回购 2)更改列出的两个sql文件,以便可以提交 3)hg commit -m“在这里评论”
4)hg push

1 个答案:

答案 0 :(得分:2)

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

  

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

     

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

     

“pattern”是一个“glob”,可选择匹配存储库的绝对路径      结合revset表达式。 revset表达式(如果存在)是      通过哈希与glob分开。

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

可能的替代方案:

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