2014-06-28 41 views
3

我正在研究簡化當前的源代碼庫和解決方案設置。現在它是非常複雜和巨大的,即使是最簡單的代碼也是非常耗時的。在分支策略中引入依賴關係?

爲了簡單起見,假設我有以下設置:

  • 我有1個網站項目(W1)
  • 我有2個Web服務項目(S1,S2)
  • 我有3類庫項目(L1,L2,L3)

它們通過3個解決方案管理:

  • 含有1 W1,L1,L2,L3和使用與S1和S2
  • 1溶液含有S1,L1,L2,L3
  • 含有1 S2,L1,L2,L3
溶液服務引用溶液

所有這些目前都由1個單一的源代碼庫控制,其中我應用了一個分支機制,它始終使用Main,Development和Release分支。

正如您所看到的,庫項目被多次引用,並且正如人們所預料的那樣,當多個開發人員在同一個庫上工作時,這有時會導致衝突。 正如我之前提到的,實際上我有更多的圖書館項目。目前有包含50多個項目的解決方案,幾乎所有解決方案都包含相同的項目。 爲了使它們更易於維護,我希望將圖書館項目轉移到他們自己的解決方案中,並創建它們的NuGet包。

我也有這些東西都部署了三種環境:

  • 一個TST環境,其發展分支建立一個每天都推
  • 到發佈分支建立被推
  • 一個QA環境
  • 到主分支版本是推

我現在面臨的問題實際環境是,我不太看我應該如何納入NuGet打包到此部署策略中,因爲在一次衝刺過程中所有項目都會進行開發,並且如果開發人員檢查發佈分支或Main分支以創建熱修復,我不希望他搞亂參考的NuGet包並意外地將開發包引入主分支。

從構建目的來看,構建庫項目並將每個分支的NuGet包發佈到不同的存儲庫時,可以簡單地使用相同的分支策略。 從開發人員的角度來看,我不知道如何在多個存儲庫之間輕鬆切換。我不能打擾那些需要在結賬出另一個項目或分支時修改其NuGet存儲庫URL的開發人員。

所以問題是:什麼是積極開發一組庫和前端項目並行的正確方法?

我不認爲我想要做的是那麼困難,或者我一個人想要這樣做。但我沒有找到任何相關的文件。我看着這完全錯了嗎?

回答

1

答案其實很簡單。

在我的情況下,最好的解決方案是在NuGet Config File中爲每個分支定義不同的包源。

<packageSources> 
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" /> 
    <add key="MyRepo - ES" value="http://MyRepo/ES/nuget" /> 
</packageSources> 

我可以創建每個分支不同的NuGet庫,爲每個分支不同的NuGet配置文件,並簡單地定義在配置文件中正確的存儲庫URL。

+0

偉大的解決方案。還可以爲(例如)'stable'分支添加一個軟件包源作爲那些沒有在功能分支中開發的軟件包的後備軟件,該功能分支有它自己的軟件包源。 –