簡體   English   中英

顛覆與持續集成

[英]Subversion with Continuous Integration

對不起,如果這個問題的答案已經存在,我還沒有找到它們。

我是一個Web開發團隊的成員,我們維護着一個門戶網站。 發布管理適用於Subversion。 這是我在向門戶添加新功能時的工作方式:

  • 通過復制Trunk創建一個新分支
  • 在那個部門發展
  • 定期將Trunk中的更新合並到該分支中(我想知道Framework-Changes是否會破壞我的代碼,然后再轉到UAT / Integration,例如)
  • 將分支重新整合到主干中以使其生效

現在我們遇到了持續集成的問題:

  • 每X周定期上線
  • 計划在不同日期上線的幾個分支機構存在
  • 每隔X小時,Integration Server會執行Trunk checkout並將所有分支(應明確轉到Integration System)合並到其中
  • 已合並到每個分支(見上文)的Trunk更新現在生成樹沖突

什么是最佳實踐? 重新集成不適用於合並多個分支,因為只要集成了一個分支,工作副本就不再干凈了。 但是,必須以某種方式實現持續集成......

如果將Trank更改合並到每個分支中,則會創建不同的修訂。 但文件應該具有相同的內容並且相同。 是不是有一個合並選項說“如果兩個新的/更改的文件相同則忽略沖突”?

謝謝你的幫助。

您所描述的不是持續集成,因為以下要求:

每隔X小時,Integration Server會執行Trunk checkout並將所有分支(應明確轉到Integration System)合並到其中

Real Continuous integration包括以下步驟:

  • 一個特定分支(例如, trunk )更新源代碼。
  • 構建生成可以執行或部署的構建工件的源代碼。 有時這個階段還包括運行單元測試和檢查。
  • 顯示構建狀態,無論是否成功:綠色或紅色。

如果您有多個分支,則意味着您需要為多個分支配置多個構建計划,以便分別為每個分支執行持續集成。

因此,您所描述的內容可能沒有最佳實踐,因為合並應始終手動執行。 這是由於合並沖突造成的。 它們經常發生,只能手動解決。 持續集成無濟於事。

如果你只是與術語混淆並想要執行你所描述的內容,我會說你的開發過程有點缺陷。 也許,您不需要同時從多個分支執行合並。 您經常提供的所有開發都應集中在一個分支中。 大多數情況下,這樣的“一個”分支將是主干。

在您的情況下,似乎有價值的開發分散在幾個分支之間。 那是不對的。 一旦您確定某些功能應該包含在即將發布的版本中,它應該集成到一個(可能是父級)分支中,並作為代碼庫的一部分保留在那里。 盡量減少你擁有的分支機構數量。

總結一下,

  1. 從您的流程中排除merge all branches步驟(這不是自動完成)。
  2. 手動合並。
  3. 如果您確定需要始終使用分支,請分別為這些分支配置持續集成。
  4. 否則(您不需要一直保留分支,並且一旦開發完成就可以很容易地重新集成到父分支中) 將分支數量減少到最小

祝好運!

暫無
暫無

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

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