首先,您不能在提交時驗證這一點,因爲一旦將變量集推送到您的一箇中央存儲庫,您只能訪問變更集。
因此,您可以驗證推送cset的人也是提交者(通過匹配http或ssh身份驗證)。這在某種程度上是有限制的,因爲當人們推送其他開發人員的變更集時,這會很有用
您可以使用pgp擴展名(來自hgext)在提交後顯式簽署變更集,但是如果您想爲每個變更集執行此操作,它都是一種拖動。
commitsigs是另一種擴展,它對簽名採取了不同的方式。它將簽名直接嵌入到變更集中,從而避免了額外變更集的混亂。這爲每個變更集增加了大約2 KB的開銷。
Mozilla使用pushlog來跟蹤誰推送了什麼。這使您可以查看服務器上的提交歷史記錄(但僅限於此),以查看誰推送了哪組變更集,從而爲您提供比通常情況更好的紙質記錄。這也可以通過changegroup通知來提供,如果你包含在電子郵件中進行推送的人(這是Python完成轉換後將執行的操作)。
所以這些是技術解決方案。另一方面,想一想更多:你已經給了一羣人推動訪問你的中央倉庫。如果他們想要的話,他們已經可以和你的樹混在一起了。如果你信任他們將東西推入中心樹,你能不能相信他們有最好的意圖將自己的名字放在他們的變更集上?
來源
2010-07-13 14:52:26
djc
[驗證Mercurial變更集來自他們說他們來自誰]的可能重複(http://stackoverflow.com/questions/3284642/verifying-mercurial-changesets-are-from-who-they-say-theyre -from) – 2012-01-10 16:43:47