2010-07-19 20 views
3

我正在調查在企業環境中使用Mercurial。該計劃是使用由web服務器(IIS)託管的中央存儲庫,一旦開發人員在本地或在其團隊內測試了更改,開發人員就會推送該中央存儲庫。驗證Mercurial變更集來自他們自稱的用戶

我有IIS配置來驗證用戶對Active Directory,但似乎有一個漏洞,雖然我可以強制誰可以推,我不能強制他們簽署自己的變更集。

例如,給定一個基本的「提交」場景:

  1. 用戶提交他們的本地資源庫
  2. 用戶按壓其中央儲存庫

在步驟1中,用戶改變提供一個用戶名(通過他們的.hgrc文件或其他)到他們的本地存儲庫,但是沒有任何辦法強制這是他們的「真實」用戶名。

在步驟2中,用戶必須向IIS提供他們的「真實」證書才能被推送,但他們的變更集將在步驟1中以他們提供的任何用戶名顯示在歷史記錄中。看起來如果bob使用「愛麗絲」作爲他的第一步的用戶名,他可以確保愛麗絲得到他的任何bug的變化的責任。

有沒有辦法確保這些用戶名在推送過程中匹配(通過鉤子或其他)?或者,還有其他一些方法來確保合理的變更真實性等級?

編輯:經過進一步考慮,我想我實際上並不想強制這些名字排隊;如果鮑勃和愛麗絲一直在單獨的回購合作,鮑勃應該最終能夠推動他們所有的變化,而不僅僅是他自己的變化。我真正想要的只是確保如果出現這種情況,我可以通過更明確的方式確定是誰進行了哪些更改,而不僅僅是應用了任何用戶名。

我在想GpgExtension是答案的一部分,但我仍然認爲我沒有看到全貌。

+0

最近在SO lemme上被問到了,因爲我很滿意我的答案,儘管聽起來你已經發現它並不是剛開始的問題。 – 2010-07-19 21:31:43

+0

可能重複的[驗證水銀檢查](http://stackoverflow.com/questions/3237889/verify-mercurial-checkins) – 2010-07-19 21:40:02

+0

所以我投了一個鏈接到另一個問題作爲投票結束,但你的問題更清楚問和更可搜索的標題,所以也許有人合併他們是更好的方法。 – 2010-07-19 21:41:39

回答

1

我終於找到this discussion,它本質上說,我的選擇基本上是讓每個人都用GPG簽署的變更,或設立的一個善變「pushlog」外部跟蹤哪些用戶推什麼到中央存儲庫。

Ry4an也指出了這個(本質上是重複的)question,並帶有一些很好的答案,證實了我在別處找到的東西。

相關問題