軟件配置管理 (SCM) 在軟件開(kāi)發(fā)生命周期 (SDLC) 中起著(zhù)重要的作用。SCM 是企業(yè)用來(lái)完成以下工作的做法、策略和流程的集合:
· 控制對源文件的訪(fǎng)問(wèn)
· 創(chuàng )建和管理工作項
· 生成產(chǎn)品版本
· 管理產(chǎn)品版本
為什么需要SCM
· 更好的組織性,更高的開(kāi)發(fā)管理水平
· 保護投資 :企業(yè)級的過(guò)程歷史數據、經(jīng)驗、數字化資產(chǎn)
· 建立標準的開(kāi)發(fā)環(huán)境
· 實(shí)現并行開(kāi)發(fā),縮短產(chǎn)品面市時(shí)間
· 自動(dòng)化管理
· 為創(chuàng )造性的工作釋放更多的時(shí)間
· 員工更加專(zhuān)業(yè)
微軟的配置管理方法
有效的 SCM 策略就像一只好的鞋子 — 它符合項目和團隊隨時(shí)間而變化的獨特需求;不能簡(jiǎn)單地與其他公司共享;而且一旦就緒,就很容易忘記,直到缺少它而無(wú)法進(jìn)行工作為止。
Team Foundation 源代碼管理提供了標準的源代碼版本控制功能,該功能可以伸縮,以便為數以千計的開(kāi)發(fā)人員提供支持。除了典型的源代碼管理功能外,Team Foundation 還是企業(yè)級軟件配置管理產(chǎn)品,它為開(kāi)發(fā)團隊提供集成的版本控制、問(wèn)題跟蹤和過(guò)程管理。
使用TFS實(shí)施配置管理,源文件和項目相關(guān)數據存儲在 Microsoft SQL Server 數據庫中。源代碼管理操作以原子和事務(wù)的方式執行。這種體系結構有如下優(yōu)點(diǎn):
· 可伸縮性:假如提供足夠的硬件,版本控制數據庫就可以包含超過(guò)千兆字節的數據。Team Foundation 最多可以支持 3500用戶(hù)。
· 完整性和可靠性:與基于文件的源代碼管理應用程序相關(guān)的數據完整性問(wèn)題的類(lèi)型真正減少了。
· 速度: Team Foundation 比 Visual SourceSafe 快幾個(gè)數量級。
TFS的主要功能有:
· 版本管理 :工作區(workspace)、變更集(changeset) 、標簽
· 并行開(kāi)發(fā)支持 :多點(diǎn)(checkout)、分支與合并 、擱置集(shelveset)
· 強化過(guò)程管理:鏈接工作項、靜態(tài)代碼分析、代碼覆蓋率
· 自動(dòng)化構建
· 完善的權限管理
· 支持分布式開(kāi)發(fā),http(s)協(xié)議
變更集
變更集是 Team Foundation 存儲與單個(gè)簽入操作相關(guān)的下列所有內容的邏輯容器,具體來(lái)說(shuō)這些內容包括:文件和文件夾修訂、指向相關(guān)工作項的鏈接、簽入說(shuō)明、注釋、簽入策略以及簽入的所有者名稱(chēng)和日期/時(shí)間等系統元數據。并為它分配一個(gè)唯一的“變更集編號”。變更集編號按順序遞增。例如,變更集 #3 后面是變更集 #4。
擱置
· 與變更集不同,擱置集是非版本化的實(shí)體。
· 可以刪除擱置集但不能刪除變更集。
· 擱置集不支持鏈接工作項。
· 擱置集不支持簽入策略。
在未準備好或者無(wú)法簽入一組更改時(shí),可以擱置更改。主要有以下五種擱置方案:
* 中斷 當所具有的更改未準備好簽入但需要從事其他任務(wù)時(shí),可以擱置這些更改以保留它們。
* 集成 當所具有的更改未準備好簽入但需要與其他團隊成員共享這些更改時(shí),可以擱置這些更改并讓其他團隊成員對它們取消擱置。
* 評審 當所具有的更改已準備好簽入并且必須經(jīng)過(guò)代碼評審時(shí),可以擱置這些更改并通知該擱置集的代碼審閱者。
* 備份 當正在做的工作要執行備份但未準備好簽入時(shí),可以擱置已做的更改并將其保留在 Team Foundation 服務(wù)器上。
* 移交 當正在做的工作要由其他團隊成員完成時(shí),可以擱置已做的更改以便更容易地進(jìn)行移交。
標簽
標簽是一種標記,可以選擇將其附加到源代碼管理服務(wù)器中一組原本無(wú)關(guān)的文件和文件夾版本,以便于將這些版本集中檢索到工作區供開(kāi)發(fā)或生成使用。
鎖類(lèi)型
Team Foundation 提供兩種鎖類(lèi)型:簽入鎖和簽出鎖。
簽入策略
可以定義自定義的簽入規則,以便對可提交到源代碼管理服務(wù)器的更改的類(lèi)型加以限制,例如,項目管理員可定義在將源代碼更改提交到服務(wù)器之前對這些更改進(jìn)行驗證的規則。Team Foundation附帶了一些簽入策略,用于驗證工作項是否與更改關(guān)聯(lián),單元測試是否成功通過(guò),以及是否已對源代碼完全運行了靜態(tài)分析。這些策略可通過(guò)插件模型進(jìn)行擴展,這樣只需創(chuàng )建一個(gè)新的策略插件,就可以強制實(shí)施不同類(lèi)型的要求
分支與合并
分支是一種允許一個(gè)文件集合分化到兩個(gè)或更多分叉路徑中的功能。當團隊必須維護兩個(gè)或更多相似基本代碼(當發(fā)布了一個(gè)產(chǎn)品且必須開(kāi)始下一個(gè)版本的工作時(shí)會(huì )出現這種情況)時(shí),經(jīng)常使用分支。 合并是將兩個(gè)不同分支中的更改結合在一起的過(guò)程。合并操作獲取源分支中已發(fā)生的更改,并將這些更改集成到目標分支中。合并操作集成源分支中所有類(lèi)型的更改,其中包括更改名稱(chēng)、編輯文件、添加文件、刪除文件以及撤消刪除更改。如果同時(shí)在源分支和目標分支中修改了項,則系統將提示解決沖突。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/