Mercurial
Mercurial 儲存庫損壞
這與這個問題有些相關,但這是一個不同的問題。
我們有一個中央 Hg 儲存庫,通過 SSH 和mercurial-server為使用者提供服務。我們有許多 Mac、Linux 和 Windows 客戶端連接到它。
現在已經發生了兩次,其中一位 Windows 使用者損壞了他們的儲存庫,然後將其推回了中央儲存庫。我想在中央儲存庫上編寫一個傳入的鉤子腳本,以防止交易被接受,如果它會破壞中央儲存庫。
雖然不幸的是,我對 Mercurial 的了解還不夠,無法編寫這樣的腳本。有沒有其他人遇到過這種情況的可能性?就我個人而言,我不太確定為什麼 hg 預設情況下不這樣做。
Mercurial 的最新版本(自 1.5 起)支持驗證傳入數據。添加
[server] validate = True
到伺服器的 hg 配置(或者
.hg/hgrc
hgwebdir 配置應該可以正常工作)讓伺服器驗證傳入數據並拒絕無效推送。然後,客戶端將看到類似於以下內容的錯誤:remote: abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
希望有幫助!
也許您應該完全避免推送到儲存庫。借助 Mercurial 及其分佈式特性,每個人都可以擁有自己的分支,當他們覺得自己準備好時,他們會告訴你,然後你就可以從他們那裡撤出。沒有送出訪問問題,沒有會破壞東西的推送……
這至少是我的一個朋友在我從 SVN 遷移到 Mercurial 時給我的建議。
我不知道,如果這對你來說是一個選項,但是為每個人設置一個個人儲存庫,然後從你需要的人那裡提取可能需要更少的工作,而不是試圖捕捉危險的推送。