1. 程式人生 > >談談原始碼管理那點事兒(二)——SVN和TFS,你選誰?

談談原始碼管理那點事兒(二)——SVN和TFS,你選誰?

SVN簡介:

  SVN全名Subversion,即版本控制系統。SVN與CVS一樣,是一個跨平臺的軟體,支援大多數常見的作業系統。作為一個開源的版本控制系統,Subversion管理著隨時間改變的資料。這些資料放置在一箇中央資料檔案庫(repository)中。這個檔案庫很像一個普通的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽檔案的變動歷史。Subversion是一個通用的系統,可用來管理任何型別的檔案,其中包括了程式原始碼。

  具體功能和使用說明的話,我就不多說了。相信大家也都用過很多了。大部分的合作專案都是在上面進行了。

TFS簡介:

 全名:visual studio Team Services。是微軟的一款ALM(Application Lifecycle Management )

軟體專案生命週期管理工具,用來管理您的原始碼、文件等儲存庫、生成過程、測試基礎架構和實驗室部署,同時輕鬆進行協作和報告狀態。Team Foundation Server 很好的支援各種規模的團隊開發,以便您連線、協作和按時交付。

 讓我們從一個軟體開發團隊的不同角色來進行一個簡單的功能說明。

1、專案經理:

 初始化專案:新專案、設定軟體過程、配置專案門戶、配置原始碼管理、建立迭代、設定程式碼遷入策略、上傳專案相關文件;

 組織團隊及團隊成員分配許可權

 用工作項跟蹤管理專案:跟蹤管理QoS 需求、跟蹤管理功能性需求、跟蹤管理任務、跟蹤管理BUG 、跟蹤管理風險

 專案分支和合並

 基線管理

 設定警報和通知

 案例演練

2、架構師:

使用用例圖、類圖、活動圖、序列圖、包圖和部署圖

驗證架構

非功能性需求設計

反向工程:從程式碼到架構檢視

3、開發人員

版本管理:遷入、簽出、分支、合併、解決衝突、擱置和簽出擱置、將遷入和工作項關聯;

程式碼走查與程式碼重構

程式碼覆蓋分析、程式碼靜態分析、效能探測

單元測試:測試驅動開發模式

4、測試人員:

測試計劃和測試用例

整合測試、系統測試、需求確認測試、發行測試;

WEB專案測試

UI自動化測試

跟蹤BUG

案例

5、配置管理人員:

構建服務

實驗室管理器

建立新的構建型別、執行構建、檢視構建、構建產生工作項

持續化整合

簡單粗暴的對比:

1、是否開源?

    SVN,是。

     TFS,否。

2、使用者體驗度?

     SVN: 程式碼的Commit和Check out和更快,操作上更簡單,學習成本低。作為原始碼管理,很不錯!但是功能有限

     TFS:功能強大,全生命週期的管理都有,從設計一直到開發、測試、構建部署。操作比較複雜。學習成本較高。

3、實施難以程度?

     SVN:簡單,實施起來容易,服務端搭建較容易。其他開發成員,只需要安裝客戶端就能使用。

     TFS:複雜,安裝、配置和部署過程比較繁瑣。團隊開發大型專案,能夠在許可權上做很好的控制,而且可以做分授權。在實施全生命週期的管理上,很難全部落實下來。一旦專案的資料越來越多的時候,大家就逐漸失去了探索和發現的耐心了。

4、效果?

      SVN:原始碼、檔案版本控制上,短小精悍,能充分滿足版本控制的需求!但是許可權控制上,還有提升空間。

       TFS:全生命週期管理,協作方便。管理上統一,許可權控制做的很不錯!一次付費,“受益終生”。

小結:如何抉擇?我的建議是,根據自己公司的情況來,如果開發的專案不大(程式碼量不超過50萬行),專案團隊人員不多(不超過100人),可以使用SVN做原始碼和文件的版本控制,至於測試和需求,則可以用一些其他的開源工具,比如:禪道、confluence。對於,大型專案和開發團隊的話,建議使用tfs。再加上,現在微軟也逐漸開始擁抱開源了!