2012-08-09 33 views
1

我爲我和一位朋友設置了Team Foundation Service。我們將用它來創建一些業餘愛好項目。使用TFS管理通用代碼組件

我已經設置了一個單獨的團隊項目,源控制的現有結構是爲使

$ \項目\ CommonLib

$ \項目\ PROJECT1

$ \項目\ Project2

其中Project1是一款遊戲,Project2是一款win8應用程序,commonlib是我們常用的可重用代碼,Projec1和Project2都會引用它。每個項目將包含一個包含多個項目的解決方案。

CommonLib需要分配給兩個項目。我最初的想法是將CommonLib二進制文件檢入一個源代碼控制文件夾,並將其分發給其他兩個項目,並使用某種自定義的Team Build過程進行部署。

雖然有一個問題。像這樣工作相當乏味,特別是現在處於開發的早期階段。我們希望能夠以快速的方式向CommonLib添加代碼,雖然上面描述的過程在代碼庫已經成熟並且不會被頻繁修改的情況下很好,但是每次添加內容時都會執行所有這些步驟那裏(構建 - >部署 - >合併)。

在量表的另一端,我們可以創建一個開發解決方案,例如, Project1也包含CommonLib項目。但是,這意味着如果我們錯誤地導致了重大更改,我們可能會導致Project2出現問題。這可以用上面描述的分支+合併策略更好地管理

所以我的問題是,我是否缺少任何可能使我們保留控制權的選項,同時仍然能夠保持開發過程的複雜性至少?我確定這是一個常見問題。

回答

1

如果您沒有將二進制文件合併到產品的空間中,它會有幫助嗎?

$\Projects\CommonLib\1.0\Source 
$\Projects\CommonLib\1.0\Bin 
$\Projects\CommonLib\Dev\Source 
$\Projects\CommonLib\Dev\Bin 

$\Projects\Project1 

$\Projects\Project2 

有一個積累建立了共同的,有它檢查二進制文件到bin文件夾,然後只是有PROJECT1和Project2的引用它們了共同點。正如你所看到的,我還將Common Dev中的一個分支放在1.0中,這樣當Project1或Project2準備發佈時,他們可以將通用開發人員分支到版本化文件夾中,並將其自己從其他項目中切換到普通開發人員。

0

即使每個開發人員只對其中一個項目感興趣,您是否有任何理由不能在同一個構建解決方案中同時擁有這兩個項目?

將兩個項目放在同一個解決方案中,然後將同一個項目放在同一個解決方案中,那麼無論何時您對通用模塊進行了更改,您都會立即知道是否在任何一個依賴項目中破壞了某些內容,因爲所有內容都已構建一起。然後,您可以更新由您更改爲通用模塊而損壞的相關代碼,或者與項目所有者協調以更新代碼。隨着項目的成熟,您應該期望看到對通用模塊的更改較少。

不要檢查你的破壞變化,直到一切都建立乾淨,單元測試通過。如果您對通用模塊進行了重大更改,則需要負責修復所有相關代碼。這就構建了人物形象,並在不破壞已發佈的界面或語義的情況下對進行核心更改的技巧有了新的認識。 ;>

很明顯,這種「包含所有」方法不能與大型開發團隊和大量項目進行擴展。但是當你與一個更大的團隊合作時,你應該切換到一個自動構建/共享構建服務器工作流程,在這個工作流程中,依賴項目決定他們依賴哪個中間體的構建,並且可以決定何時「彙總」到更新版本的模塊取決於 - 與依賴模塊的發佈週期無關。對於具有通用代碼的兩個開發人員和兩個項目,您不需要此級別的依賴關係管理。