在開發過程中,我們將所有* .resx文件發送給一個翻譯器。翻譯者通常需要一週的時間才能發回文件。在此期間,不允許添加,刪除或更新任何resx文件。如何防止Mercurial提交/推送某些文件?
如何配置mercurial執行該策略?
我們的設置:每個開發人員都使用我們中央存儲庫的本地克隆。
很高興有:
我會轉「政策」和關閉每隔幾個星期。所以理想情況下,我希望在某個地方容易配置並影響所有開發者的東西。
我寧願在本地存儲庫級別執行該策略,然後在中央存儲庫級別執行該策略,因爲如果我們阻止中央存儲庫上的「推送」,則開發人員將很難撤銷已在本地提交的更改集。
感謝
UPDATE:在翻譯過程
更多信息:
合併是不是這裏的問題。翻譯者不會更改我們發送給他的文件。我們向他發送了一堆語言中立的.resx(form1.resx),並返回了一組語言特定的resx(form1.FR.resx)。
爲什麼要添加新的resx?當我們向我們的應用程序添加一個新的UI時,添加一個resx。如果我們在翻譯軟件包發送後這樣做,翻譯人員將不會知道新的用戶界面,我們最終將得到一個沒有翻譯的新UI。
爲什麼要防止更新resx?如果開發人員將標籤值從「打開」更改爲「關閉」,他已經做出了非常重要的語義變化。如果他在翻譯包發送後這樣做,我們將不會得到正確的翻譯。
我將檢查AclExtension。 resx文件分散在項目文件夾中的多個目錄中,子存儲庫在該上下文中不起作用。我沒有做所有這些來緩解合併過程。我更新了我的問題,並提供了更多信息,說明我們爲什麼這樣做 – Sylvain 2011-03-11 15:33:25
你的解釋是有道理的。您可以使用AclExtension在推送級別執行您想要的操作。我仍然認爲這是一種非常普遍的情況,而其他人都設法解決這個問題而不訴諸於阻塞鉤應該讓你停下來。例如,以下是Mercurial項目本身的方式,它依賴於編碼期間和之後發生工作的大量志願者翻譯人員處理它:http://mercurial.selenic.com/wiki/TranslatingMercurial – 2011-03-11 16:03:26