2012-11-12 86 views
1

我正在嘗試使用文件模式將推送通知限制到特定目錄。 [usersubs]中的以下glob模式不會觸發電子郵件,儘管asterix和double asterix的基本模式可以工作。操作系統:Windows XP。Mercurial通知擴展小球忽略

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

回購內容是:

 
.hg 
root.sql 
/one/one.sql 

hgrc是:

 
[extensions] 
notify = 

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

[email] 
from = [email protected] 

[smtp] 
host = 12.34.56.78 

baseurl = 

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

[usersubs] 
[email protected] = **.sql 

maxdiff = 300 

過程中使用:
1)克隆回購使用這些設置
2)改變兩個SQL文件列出,所以他們可以承諾
3)hg commit -m「comment here」
4)hg push

回答

2

通知擴展不支持使用模式來匹配特定文件。從 「汞幫助通知」:

[usersubs] #鍵是用戶的電子郵件,值是逗號分隔的回購圖案 用戶@主機=圖案

[reposubs] #鍵是列表回購圖案,值是逗號分隔的訂戶的電子郵件的列表 圖案=用戶@主機

A「圖案」是「水珠」絕對路徑匹配到存儲庫,任選 與revset表達相組合。一個revset表達式,如果存在的話, 由一個散列與glob隔開。

問題中列出的模式被視爲模式以匹配存儲庫的絕對路徑。

可能的備選方案:

  • 斯普利特(這應該然後由通知擴展支持),你的願望通知到一個獨立的存儲設備中的文件
  • 在水銀2.4,嘗試使用revset reposubs模式,如「#文件(' .sql')= [email protected]」。
  • 編寫自定義掛鉤以基於檢測到的每個文件更改執行所需的通知
  • 而不是使用通知,讓收件人監視由hgweb提供的每個文件RSS提要的更改(由IRC上的mpm建議)
+0

我能夠得到這個工作使用revset模式。由於某些原因,glob不起作用,所以我使用了以下內容:*#file('re:。* \。sql')。沒有工作的模式是*#file('*。sql'),並且失敗並顯示錯誤「incoming.notify hook failed:* .sql not root」 –