2012-01-05 47 views
0

我的項目使用hgext.notify。目前incoming.notify =每個變更集上的單獨消息。考慮到更改組通知,但即使它包含有關每個變更集的信息,也只是包含在一封大郵件中。hg push的較低頻率/詳細通知

這裏的問題:

我的工作風格是「檢查及早並經常」。我通常在分支機構上進行許多小型簽到。任務分支。最終整合。

我的隊友不喜歡在我的任務分支上看到我的所有簽到消息。

我們正在考慮使用像collapse或histedit這樣的歷史編輯擴展來減少冗長 - 但我不喜歡失去歷史。我只想不打擾每一個人的變化。問:有沒有辦法,一個現有的鉤子或一些替代的hg擴展的一些配置,可以設置爲通知folllws;

  1. 每changegroup單個消息(沒關係)

  2. 每changegroup單個用戶提供的消息 - 不只是所有分公司變更消息的級聯

  3. 篩選出只爲changest消息,比如說,主幹(hg說法中的默認分支)。即留下分支變更集信息,但不要發送電子郵件。

    (注:我推通常涉及的一個分支數的變更,然後再合併到默認因此,它是不夠的,只是過濾器,或根據分支是影響了整個changegroup。)

  4. diffstats不在分支上的提示和每個變化之間,而只是在主幹上的「重要」變更集(默認分支)之間 - 這可能會在主幹上過度變化。

+0

我覺得你的隊友應該克服自己。你的工作流程是很好的做法,如果他們應該採用它,他們不應該阻止它。摺疊歷史絕對是最糟糕的解決方案。我猜想改變通知郵件是一種可行的妥協方式,但說實話,小問題的重點在於讓它更容易審查。他們不接受changegroup通知嗎? – 2012-01-06 11:59:05

+0

Changegroup通知不夠。 – 2012-01-06 17:46:42

+0

@LaurensHolst Changegroup通知不足。這不僅僅是通知 - 他們不希望在hg日誌中看到checkins。 – 2012-01-06 17:56:10

回答

1

恐怕沒有這樣的擴展名存在。通知擴展只是一個發送電子郵件的基本方式,只需一點點定製空間。

這聽起來像你有一個特定的想法,你想要什麼。我建議你看看你能不能制定它作爲一個revision set,然後簡單地在changegroup鉤使用hg log。管輸出到mail,你已經得到了一個非常簡單的通知擴展,你可以定製你的心中的內容!

我想說的是,通知的擴展並不那麼複雜,在許多情況下,它可以通過hg log合適的調用來代替。如果您想要更改輸出的次數,則可以使用custom template作爲hg loghg log --patch

棘手的部分(以及從您的問題中不完全清楚的部分)是要過濾出正確的變更集。您在上述第4點提到「重要」變更集,但我不完全確定變更集是什麼使其變得「重要」。如果是重要的,當它從一個特性分支合併爲default,事遂所願,這可能是一個開始:

hg log -r "$HG_NODE:tip and children(not branch(default)) and branch(default)" 

通過採取非default的變更的孩子的變更與變更的default相交,我們確切地得到了集成了功能分支的合併點。

對不起,答案是很通用的,但我認爲你最好寫一個小的自定義shell腳本你想要的東西。

+0

我試圖說,考慮trunk的所有變更集(默認分支)都很重要。 – 2012-01-06 17:54:58

+0

好的,無論如何 - 你決定什麼「有趣」的意思。我的建議基本上是:根據您的需求推出我們自己的迷你通知擴展程序。通知擴展不是太複雜,並且可以真正被'hg log'調用替代,或許用一個合適的[template](http://hgbook.red-bean.com/read/customizing-the-output-of -mercurial.html)。 (我會在答案中加入一些內容。) – 2012-01-07 08:41:57

+0

謝謝。知道某件事不存在很重要 - 避免浪費工作。我會看着自己滾動。順便說一下,這些不喜歡很多電子郵件的人也不想要優質的穀物簽到 - 他們希望我把所有的優質簽證都摺疊起來,用於任務分支,我和之前的「經常「使用hg rebase --collapse(或hg collapse或hg histedit,儘管後者經常打破)單一簽入。 – 2012-01-07 19:41:45