簡體   English   中英

如何使用Cruise Control和Mercurial進行回滾和構建

[英]How to roll back and build with Cruise Control and Mercurial

我有一個Web應用程序的Kiln / Mercurial代碼存儲庫,該存儲庫使用Cruise Control.NET進行持續集成。 通常,我們在本地提交代碼,當我們准備測試時,我們將推送到中央Kiln服務器。 Cruise Control會定期檢查該服務器上的存儲庫中是否有新修訂版,當它找到它時,它將對其進行構建,並將生成的文件復制到相應的Web服務器上。 如果測試成功,則我們手動將構建強制到主生產服務器,一切都很好。

但是最近,我們遇到了小小的麻煩。 我們在上個月發布的某個版本中發現了一個錯誤,需要對其進行修復。 從那以后,已經有大約50次提交,而這50次提交中引入的代碼幾乎還沒有准備好投入生產。 我們知道我們可以在本地回滾(更新)到生產版本並修復代碼,但是我們無法將其推送到Kiln並將其發布到Cruise Control-Kiln服務器上的Mercurial抱怨有多個頭 解決這個問題的最佳方法是什么?

我們在Google上進行了一些搜索,找到了分支和標簽的引用。 我們最終在Kiln服務器上的存儲庫中創建了一個新分支。 該分支的主存儲庫減去了這50個提交。 然后,我們進行了錯誤修復,並編輯了“巡航控制”配置,以查找此處而不是主存儲庫。 經過一些構建后,我們已將錯誤修復在生產服務器上。 回滾,進行修復並將其推送到Web服務器上似乎需要進行大量工作。

由於我們是一家小商店,因此我們通常會有自己的項目要進行。 沒有故意分支(直到現在),甚至沒有最小限度的合並,因此盡管我們對版本控制並不陌生,但該概念仍有一些共同方面尚待解決。

您說代碼中存在問題,之后進行了約50次提交。 因此,您創建了一個包含當前代碼的分支-50次提交。

所以我的建議是它不應該是您的分支,而應該僅是Trunk。 分支代碼僅應包含主要更改的代碼,即您在該代碼中工作了很長時間,與此同時,也許有機會在主干中編寫一些代碼,然后可以將其轉移到生產環境中。

因此,在創建CI時,我的建議是為Trunk和Branch分別設置CI,以便您可以進行測試。

轉移到生產中也只能從主干進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM