我有一個在Mercurial存儲庫中的軟件。precommit mercurial鉤停止提交到錯誤的分支
我正在將我的軟件項目打包爲Debian軟件包。 看起來,執行此操作的標準方法是在Debian軟件包文件中有一個 獨立分支, 位於debian
子目錄中。
我一直存在的一個問題是,我忘記了我是哪個分支 ,並且意外地犯下了錯誤的分支。這經常發生 ,真的很煩人。當發生這種情況時,我通常會在實現問題之前將 推送到遠程,然後讓 手動修復本地和遠程儲存庫,這是一種痛苦。
我能想到的唯一選擇是如果我嘗試對錯誤的分支進行提交,則會有一個預先提交鉤子 中止。
具體來說,我們假設主分支名爲default
,並且包含Debian文件的分支 被稱爲debian
。然後,我想要提交到default
分支才能成功,只要提交中的文件都不是來自debian
目錄。我只要提交debian
目錄中的所有 文件都位於debian
目錄中,就可以提交到debian
目錄。
我花了一些時間閱讀有關Mercurial Hooks的章節,並通過Hg書中的示例 ,但仍然不知道如何去做這件事。我確實得到了強烈的印象 ,對於這樣的事情,我應該打電話給一個外部Python腳本,可能 在.hg/
。
謝謝Ry4an,這非常有幫助。使用shell而不是Python有什麼好處,反之亦然? –
python在進程中運行,所以它會更有效率,但是您將學習一個新的非api來獲取提交中當前分支名稱和文件列表,而您可能已經知道如何在慶典。最後,可能更多的是關於您和您的團隊稍後將更容易定製的內容。一些例子可以在這裏找到:http://mercurial.selenic.com/wiki/HookExamples –
嗨Ry4an。不知道你的意思是不是一個api。你的意思是Mercurial沒有固定的「官方」API? –