我們有三個環境或網站(dev,staging和production),其上運行我們的ASP.NET應用程序的一個版本。 我們使用SVN和持續集成(Teamcity)來幫助自動將應用程序部署到每個Web服務器。基於並行任務的開發的分支策略
我們目前的開發流程是基於任務(或工單)系統。 開發人員需要完成一項任務。 許多開發人員可以同時在項目上工作,但在應用程序的不同部分。
我現在的解決方案使開發人員爲每個任務創建單獨的分支。 當用戶提交中繼源代碼被編譯並部署到我們的開發Web服務器。
開發人員1開始一個新任務,並從幹線源代碼創建一個新分支,讓我們說「任務1」。
他將他的代碼提交給他的分支,然後合併分支和主幹。
他的更改將與其餘代碼一起編譯並部署到開發Web服務器。
開發人員2開始一個新的任務,並從幹線創建一個分支(與Dev 1的變化)。
然後,他進行更改,將其代碼提交給「任務2」,並將分支與主幹合併。
該代碼再次編譯並部署到開發Web服務器。
開發者1尚未完成,但開發人員2已做好的更改已準備好部署到生產中。
Dev 2然後將「任務2」與「生產」分支合併。
這就是問題所在。開發者1所做的一部分更改正在生產中,這是一件壞事。
我需要找到一個分支策略,使我們能夠繼續開發並逐一實施每項任務。
你有什麼建議嗎? SVN是這份工作的正確工具嗎?
UPDATE
我現在想做出「開發」分支部署到我們的開發服務器,並保持軀幹乾淨,與我們的「生產」分支同步的。這個特殊的問題似乎總是這樣,因爲每個開發人員都會從乾淨的主幹創建他的分支,而不是一些開發人員的修改。
要完成測試,每個開發人員都必須將其更改部署到開發人員服務器(通過幹線),因爲我們的應用程序主要內置在經典的ASP中。 – Jason
創建Dev分支也是一種解決方法。 – Windy