2017-02-13 150 views
2

這裏持續集成是我的方案(TFS在線 - username.visualstudio.com/repo):TFS - 與分支

我有一個下面的文件夾結構

--$ 
    --TimeManagement (.sln file at this level) 
    --WebApp (Main branch) (.csproj at this level) 
    --WebApp-Dev (Dev Branch) (.csproj at this level) 
    --WebApp-QA (QA Branch) (.csproj at this level) 
    --TestTimeManagement (Test Project) 

有了這個,我創建一個使用默認設置建立和釋放我的選擇推動成功構建天青網站。這完美的作品,直到我跟以下情形:

  • 我需要配置爲主要& Dev分支相同/只測試項目
  • 我需要有分支改變特定的構建,這樣反而.sln文件,我想建設應該考慮分支的.csproj
  • 我可以讓每個版本的觸發選項卡下的變化 - 持續構建 - 與分行的特定文件夾
  • 在這種情況下,我開發分支的變化將主要執行建立相關並執行測試&當我終於合併我的變化添加過濾器到分公司,建立相關它將與同測試用例執行。
  • 我試圖解決這個打不過,構建漸漸搞砸了.csproj到解決方案選項。它是不是能找到試驗裝置 - **\*test*.dll

簡單地說,我有找設立TFS(在線,在這一刻),其中將有多個分支(DEV,主,分期,QA)單個測試項目和配置構建,特定分支變化的觸發器。

懷疑:我們可以在.csproj級別創建分支還是隻需要在.sln級別分支?

如果我得到任何參考文檔/視頻,將是巨大的!

+0

爲什麼不能在解決方案級別分支? – Fran

+0

這可以做到隨時隨地。我想知道我正在嘗試的場景是可行的還是完全沒有框架的。避免解決方案中的重複代碼/項目。 – Kenz

+0

始終在解決方案級別分支。你的建議幾乎總是一個壞主意。 –

回答

1

懷疑:我們可以在.csproj級別創建分支還是隻需要在.sln級別分支?

您可以在任意級別進行分支:解決方案級別,項目級別,文件夾級別和文件級別。

我有一個建立在那裏我們有多種解決方案,並有一些要麼使用一個解決方案或多個共享多個項目。如果它們被多個解決方案共享,並在一個解決方案中工作時,您更改項目,有可能你可能會破壞其他解決方案的可能性。因此,對於這種情況下,我有一個master解決方案,它有一個CI構建建立所有的項目,以確保沒有被打破。

請記住,當你有很多分支,合併變得更加複雜。我建議你從一個簡單的2分支策略開始:Dev和Main分支。如果這不適合你,那麼創建更多分支。每一天的發展可以在Dev分支來完成,當你準備好,你可以切斷並前往主分支。但是你合併到主前,請務必從主分支合併可達開發,然後從開發到主合併了下來:始終做到這一點作爲一個很好的做法。

環境(Dev,QA,Prod)和分支之間有區別。這種關係不一定是1:1。所以你可以有2個分支(Dev,Main),並且還有很多不同的環境。

+0

@CondingYoshi,我同意你的觀點。只是一個問題,因爲您也可以在多個解決方案中共享項目的相同實現。這個依賴項 - 引用添加,通過TFS中的MSBuild完成嗎?我試圖在build中添加mutple項目,但是這在本地機器上工作正常,引用可以很容易地添加和查找,但是在TFS MSBuild級別上,引用無法找到,任何建議? – Kenz

+1

在VSTS(TFS的門戶網站)中,您需要確保在「Repository」選項卡中的服務器路徑中,您尚未指定您正在構建的項目。您必須指定一個位置,以便在從該位置下載文件時,也會下載所有依賴項。 – CodingYoshi

+0

我想,我需要更多地關注這些選項。 – Kenz