2013-10-24 89 views
0

所以我們只是得到了FishEye/Crucible for out開發服務器。我們的git設置爲強制公私密鑰驗證,但一些開發人員喜歡使用多臺機器,而不是像他們所假設的那樣使用多於一個密鑰。或者他們使用他們用於個人發展的相同機器並使用他們的個人電子郵件和身份。所以他們的.gitconfig沒有正確的身份。他們可能有三個或四個不同的身份,因爲他們提交來自不同的機器([user1] @ [domain1],[user1] @ [domain2]和[user1] @ [domain3])。 FishEye /坩堝根本不喜歡這個。它將其中的每一個視爲不同的提交者。我必須手動進入併爲每個項目的每個用戶設置映射。git - 拒絕提交壞身份

是否有一個git鉤子或阻止用戶提交,除非他們的身份是在正確的格式?因此,強制電子郵件的身份採用格式@ [domain1],並拒絕來自任何其他域(如@ [domain2]或[domain3])的推送請求。我已經看了一下,但我不確定在哪裏尋找這個。

+0

你知道你可以使用'.git/config'設置每個資料庫的不同身份,它覆蓋了用戶的'〜/ .gitconfig',對嗎? –

+0

雖然這並不能真正幫助對付愚蠢或粗心的用戶。 – ThiefMaster

回答

2

您可以使用前收到更新掛鉤,並拒絕將推動它是否包含與不符合您的條件作者提交。

使用更新的優點是,您可以選擇性地拒絕僅包含此類提交的分支(以防推送更新多個分支)。

Git/gitosis: How to check validity of user name and email?中得分最高的答案包含如何使用預接收檢查提交的示例;將其更新爲更新掛鉤應該很簡單,只需簡單查看githooks manpage即可。

+0

對不起,我從來沒有把這個標記爲答案。我能夠使用gitolite(稱爲VREF)中的pre-hook來執行此操作。謝謝。 – angellusmortis