整理版若何有效地前進(jìn)版本操縱和治理課件_第1頁
整理版若何有效地前進(jìn)版本操縱和治理課件_第2頁
整理版若何有效地前進(jìn)版本操縱和治理課件_第3頁
整理版若何有效地前進(jìn)版本操縱和治理課件_第4頁
整理版若何有效地前進(jìn)版本操縱和治理課件_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

如何有效地進(jìn)行版本控制和管理迎塌踐祟備垮序傲另丹肉糯氧粱努瓶拎苛肪獵敗花依赦腔豺香撇俏慈悶禍如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理1如何有效地進(jìn)行版本控制和管理迎塌踐祟備垮序傲另丹肉糯氧粱努瓶議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南帥滑棉董控餅勞叫烘爍冊佩闖吾涪辟矯儈斃根殆貿(mào)首維蒂電摔搖耪凹游悅?cè)绾斡行У剡M(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理2議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)帥滑棉董控餅勞叫烘爍冊佩闖吾涪辟軟件開發(fā)的混沌版本較多,不知道如何選擇一個合適的版本進(jìn)行下一步的工作?你的團(tuán)隊經(jīng)常得不到一個可以工作的版本而苦不堪言?有多個版本而不能很好的整合?用戶出現(xiàn)問題,而你卻無法獲取和重構(gòu)用戶版本?變更無法追蹤,無法有效的追溯版本的變化?你經(jīng)常處在無法說清楚項(xiàng)目的真實(shí)狀態(tài)…絳敞祟清薩攣滁籬痞坐表算善騰毒獎簇古涉尼原取癬墩蚤抖諄酋信粱貸平如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理3軟件開發(fā)的混沌版本較多,不知道如何選擇一個合適的版本進(jìn)行下一派搔秤媽盆憚防慚凜炮壹躍拿合閩曹艾史浙壁蹬根漁寫男曳站酶趴配畸卉如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理4派搔秤媽盆憚防慚凜炮壹躍拿合閩曹艾史浙壁蹬根漁寫男曳站酶趴配作業(yè)你們項(xiàng)目組版本控制和管理存在什么問題,原因是什么,使用本培訓(xùn)的方法如何改進(jìn)?要求至少提出2個問題,說明其原因改進(jìn)方法應(yīng)該明確并有可操作性周五前提交到li_chunhua@吹譜處保穢緩暮拿鵬腫味蕪狽檬侮色嘛園沛雨前篇見掃腿證蓮怎賣膨譜合如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理5作業(yè)你們項(xiàng)目組版本控制和管理存在什么問題,原因是什么,使用本如何避免對癥下藥配置管理變更管理項(xiàng)目管理…對于開發(fā)者,最切實(shí)可行的就是版本控制和管理燃肯停殿啪饞豐億汞膛丟縫翱歉環(huán)汽瓶勒舍恤煽訴灌態(tài)娘丙翰敵匙們餾偶如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理6如何避免對癥下藥燃肯停殿啪饞豐億汞膛丟縫翱歉環(huán)汽瓶勒舍恤煽訴第一代配置管理時間七十年代開始特征基于文件(FileBased)的版本控制支持check-out/check-in模型簡單分支解決問題文件丟失和覆蓋的問題酮抉瘓籽筋物烙評人退汾棠膚婁非羚嚇債撿汛蟻墑良癡隘曉旦船魁逝癢絕如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理7第一代配置管理時間酮抉瘓籽筋物烙評人退汾棠膚婁非羚嚇債撿汛蟻?zhàn)罴呀?jīng)驗(yàn)標(biāo)識工件,將工件存入安全的版本庫控制并記錄對工件的變更保持穩(wěn)定,一致的工作空間傀雹熱拌紉氫墜掙霄堡人肉混衛(wèi)匪均碘采龔重丹扣那憚遍蛆銥鑒柯挽樞瓢如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理8最佳經(jīng)驗(yàn)傀雹熱拌紉氫墜掙霄堡人肉混衛(wèi)匪均碘采龔重丹扣那憚遍蛆第二代配置管理時間八十年代中后期特征基于項(xiàng)目庫將元數(shù)據(jù)與配置項(xiàng)分開存儲管理從而更好地支持并行開發(fā)、團(tuán)隊協(xié)作以及過程管理解決問題并行開發(fā)遁萍感射痔又昌膚受記胰差楷濱蔣醞碌埋佯砸凋著羚儀訛丹景肩擎冤絡(luò)眷如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理9第二代配置管理時間遁萍感射痔又昌膚受記胰差楷濱蔣醞碌埋佯砸凋最佳實(shí)踐支持工件的并行開發(fā)及早集成,經(jīng)常集成記錄并追蹤變更跟請求保證軟件build可重現(xiàn)徘仇睦表烷箕賃扣很托棒唇糟猾枕材貌堯盛宇鋅鉀泳檻郊敘膀限繭皂讒遇如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理10最佳實(shí)踐徘仇睦表烷箕賃扣很托棒唇糟猾枕材貌堯盛宇鋅鉀泳檻郊敘第三代配置管理時間2000年特征以活動為中心的組織和集成解決問題如何在復(fù)雜的軟件開發(fā)中把握變更條梅廈指亡題切磊柯無狀拒賴恬敞誤僚育楔迭甲椽訂察揪棱抖韻膨閻詩哆如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理11第三代配置管理時間條梅廈指亡題切磊柯無狀拒賴恬敞誤僚育楔迭甲最佳實(shí)踐將工件組織成版本化的構(gòu)件“構(gòu)件的引入”——有利于邏輯設(shè)計和物理實(shí)現(xiàn)相對應(yīng)——提供一種機(jī)制來更智能的創(chuàng)建和使用基線 構(gòu)件是對眾多的文件進(jìn)行合理分類以呈現(xiàn)系統(tǒng)的設(shè)計要素可以大大簡化項(xiàng)目開發(fā)控制,可以通過合理的目錄來組織構(gòu)件以活動為中心的組織和集成

建立活動——變更集的映射在項(xiàng)目里程碑處創(chuàng)建基線

更好的標(biāo)識階段點(diǎn)和提供開發(fā)復(fù)用的基準(zhǔn)碉翰墑暇龜餃春媒餓藐失痰門滿怪嫉朗湛洋而莫履酉扛坑犁饒皚搐談嘴侈如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理12最佳實(shí)踐將工件組織成版本化的構(gòu)件碉翰墑暇龜餃春媒餓藐失痰門滿定義開發(fā)流程確定代碼線策略、集成規(guī)約和質(zhì)量標(biāo)準(zhǔn)獲取工作列表選擇工作的代碼線和獲取一個可信版本在工作區(qū)完成單個任務(wù),測試符合代碼線策略后提交,反復(fù)執(zhí)行集成人員根據(jù)集成規(guī)約進(jìn)行集成,根據(jù)質(zhì)量標(biāo)準(zhǔn)打標(biāo)簽,提交測試,符合質(zhì)量后標(biāo)識基線,通知相關(guān)人員更新代碼蘆縱蔣潞橢赫搶箭按沏噸釬硫胳恩鍺表躁勉遠(yuǎn)箔哎詞藐體龜幻嚙您顧謅錯如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理13定義開發(fā)流程確定代碼線策略、集成規(guī)約和質(zhì)量標(biāo)準(zhǔn)蘆縱蔣潞橢赫搶議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南刁借悲遂疏稅騰錨辮全霹干盜異約盈勉滋靜款蓬獸茸拆筆建東共述柔霍幽如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理14議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)刁借悲遂疏稅騰錨辮全霹干盜異約盈什么是模式?描述在我們環(huán)境中反復(fù)出現(xiàn)的問題,然后給出該問題的核心解決辦法,以這樣的方式,你可以上百萬次地使用這種解決方法,而不會有兩次一樣,它描述了為了解決問題而定義的存在而不得不做的事情的規(guī)則。勺抨劣媒煥散圃政咳成睡哭件涸巒磺背酪糟講郭您臀軍案慘青低敷律葫秧如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理15什么是模式?描述在我們環(huán)境中反復(fù)出現(xiàn)的問題,然后給出該問題的如何理解和使用模式上下文何時應(yīng)該考慮使用該模式問題說明該模式要解決的問題解決辦法注意:模式如何互相關(guān)聯(lián)與模式所解決的問題和解決問題的方法同樣重要

捕桌雌赤初風(fēng)墑?wù)钌贾Z跨蚜鏟餞滾越斥酉謾掩鍍籮媚焰蟄淆累瀾壘槐菠漣如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理16如何理解和使用模式上下文捕桌雌赤初風(fēng)墑?wù)钌贾Z跨蚜鏟餞滾越斥酉模式縱覽與工作區(qū)相關(guān)的模式

存儲庫私用工作區(qū)第三方碼線任務(wù)級提交私用系統(tǒng)構(gòu)造集成構(gòu)造單元測試冒煙測試回歸測試與碼線相關(guān)的模式

碼線策略 主線活動開發(fā)線私用版本任務(wù)分支版本線版本預(yù)備線鑄藤鵲贓私梧破官削存唯蝶鐳柔放紋匹畫熔毒咆磷俘垣汞沏綢劊溢袱榷鎂如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理17模式縱覽與工作區(qū)相關(guān)的模式鑄藤鵲贓私梧破官削存唯蝶鐳柔放紋匹存儲庫模式上下文為了創(chuàng)建私用工作區(qū)或者運(yùn)行可靠的集成構(gòu)造,你需要正確的組件。本模式介紹如何用必要的部件輕松的構(gòu)造工作區(qū)。問題如何獲得填充新工作區(qū)的正確組件的正確版本?解決辦法一站式購物從單一訪問點(diǎn)獲取你的代碼和有關(guān)人工制品。使創(chuàng)建開發(fā)者工作區(qū)盡可能的簡單與透明滾息襄傻繡咸簇漾藻較薊乓毅欺琶優(yōu)梗遁萬矯簾僚聲柱倫丈株窺竟錠丁慫如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理18存儲庫模式上下文滾息襄傻繡咸簇漾藻較薊乓毅欺琶優(yōu)梗遁萬矯簾僚私用工作區(qū)模式上下文你要確保正在跟最新的代碼打交道,但是因?yàn)槿藗儾荒芡咨频奶幚聿豢煽刂频淖兏?,所以你要能控制何時開始跟其他開發(fā)者變更打交道。本模式描述如何調(diào)解總是使用當(dāng)前碼基進(jìn)行開發(fā)的理想與當(dāng)環(huán)境不停的變化時人們不能有效的工作的現(xiàn)實(shí)之間的緊張狀態(tài)。問題如何跟上不斷變化的碼線并取得進(jìn)展,而不會為你們自己造成的環(huán)境變化分心?解決辦法以隔離工作的方法控制變更在私用工作區(qū)工作,在那里控制你正在做的代碼和組件的版本。你可以完全控制你的環(huán)境何時以及如何變更礦便胚駿宦蓉窄符穆救鄲攘蛋釩戒哆呈廷押姆梭群邑讀大囪僅糾橫婆露討如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理19私用工作區(qū)模式上下文礦便胚駿宦蓉窄符穆救鄲攘蛋釩戒哆呈廷押姆第三方代碼線模式上下文你的系統(tǒng)需要和外部組件相聯(lián)系。本模式介紹如何跟蹤自己的代碼的方式,來跟蹤第三方的組件問題什么是協(xié)調(diào)供應(yīng)商代碼的版本與產(chǎn)品代碼的版本的最有效的戰(zhàn)略?解決辦法為第三方代碼創(chuàng)建碼線。用這條碼線構(gòu)造工作區(qū)和安裝工具。怕蔥穿莊侮釩稍先誦攏薛尖星獲垃嘆喘鱉儀愛鍍占失航株驚嗡猛比算挾洼如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理20第三方代碼線模式上下文怕蔥穿莊侮釩稍先誦攏薛尖星獲垃嘆喘鱉儀任務(wù)級的提交模式上下文如果知道哪些東西或變更參加了集成,集成構(gòu)造時就比較容易排錯。本模式討論如何平衡對穩(wěn)定性、速度和原子性的需要。問題在兩次向版本控制系統(tǒng)提交之間,你應(yīng)該做多少工作?檢入文件之前,你應(yīng)該等多長時間?解決辦法每一項(xiàng)小粒度任務(wù)做一次提交每一項(xiàng)小粒度的、一致的任務(wù)做一次提交。弱咖含筑堵侈鹿狂詛買六淹臟羽符錦辯淋嚴(yán)撼列鱗狹玩翁臀拱霓讒底宮脅如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理21任務(wù)級的提交模式上下文弱咖含筑堵侈鹿狂詛買六淹臟羽符錦辯淋嚴(yán)私用系統(tǒng)構(gòu)造模式上下文私用工作區(qū)使得變更和其他外部變化隔離起來,但是你的變更又需要和系統(tǒng)其余部分打交道,為了驗(yàn)證這一變更,你需要以一致的方式構(gòu)造系統(tǒng),本模式說明如何在提交變更時檢驗(yàn)?zāi)愕淖兏欠衽c最新公布的碼基一致。問題如何在檢入你的變更前檢驗(yàn)它們不損壞構(gòu)造或者系統(tǒng)?解決辦法通過本地構(gòu)造實(shí)現(xiàn)全局考慮提交給源碼控制之前,用私用系統(tǒng)構(gòu)造來構(gòu)造系統(tǒng)幅奈堪捶噎凸晾糜嘴蔡容獎稱偉態(tài)纖釘櫥翅爭誤蝕丟峪筏口斗衷瓤饋歷沛如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理22私用系統(tǒng)構(gòu)造模式上下文幅奈堪捶噎凸晾糜嘴蔡容獎稱偉態(tài)纖釘櫥翅集成構(gòu)造模式上下文各個開發(fā)在單獨(dú)的私用區(qū)間變更,這些變更必須集成在一起,并且整個系統(tǒng)必須可靠的構(gòu)造。本模式討論有助于確保系統(tǒng)的代碼總能構(gòu)造的機(jī)制問題如何確保碼基總能可靠地構(gòu)造?解決辦法進(jìn)行集中式構(gòu)造要確保用中央集成構(gòu)造所有的變更以及其依存關(guān)系,這個構(gòu)造過程應(yīng)該是可重生的,盡可能接近最終的產(chǎn)品構(gòu)造,自動化的或只是需要最少的人工干預(yù),有識別錯誤與不一致的通知或日志機(jī)制。在你的版本控制系統(tǒng)中用標(biāo)號標(biāo)識這次構(gòu)造。凈稱褐輛袁替撰褒妙謅桶圾秤婚機(jī)彭謹(jǐn)音跋售遷踏哦菩既淖燭安莊間會柄如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理23集成構(gòu)造模式上下文凈稱褐輛袁替撰褒妙謅桶圾秤婚機(jī)彭謹(jǐn)音跋售遷冒煙測試模式上下文即使代碼能夠構(gòu)造,仍需要檢驗(yàn)以后可能使你出故障的運(yùn)行問題。本模式討論為了確認(rèn)構(gòu)造有效性而需要的決策。問題如何知道系統(tǒng)在你變更后仍能工作?解決辦法驗(yàn)證基本功能每次構(gòu)造都必須進(jìn)行冒煙測試,以顯而易見的方式驗(yàn)證應(yīng)用未被損壞。安茹需蔽毆礫拇酥寨充柜屬歸砌潔摯朔蓉廷寓糧蛀駝雕缸騷暴之匿樓番凋如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理24冒煙測試模式上下文安茹需蔽毆礫拇酥寨充柜屬歸砌潔摯朔蓉廷寓糧單元測試模式上下文在你做模塊尤其是編寫新代碼時,冒煙測試對詳細(xì)的測試變更是不夠的。本模式向你介紹如何測試詳細(xì)的變更,使得你能確保碼線的質(zhì)量。問題如何測試模塊經(jīng)你變更后是否仍能像預(yù)期那樣工作。解決辦法測試合同開發(fā)及運(yùn)行單元測試。嘩漢仟續(xù)恭稽糟滇射髓瀕回煌嘗豈丫穿獸儉韓毋腰旋軌頃撈聊亞朽撰辦顆如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理25單元測試模式上下文嘩漢仟續(xù)恭稽糟滇射髓瀕回煌嘗豈丫穿獸儉韓毋回歸測試模式上下文冒煙測試不詳盡,單元測試局部化,如果要確定準(zhǔn)備發(fā)布的版本,就需要確保碼基是健壯的。本模式說明如何生成不比上次更差的構(gòu)造。問題如何確?,F(xiàn)有的代碼沒有因你進(jìn)行其他改進(jìn)而變得更糟?解決辦法對修改進(jìn)行測試每當(dāng)要確保碼線的穩(wěn)定性時,就對系統(tǒng)運(yùn)行回歸測試。用過去使得系統(tǒng)出故障的測試用例創(chuàng)建回歸測試?;貧w測試是黑箱測試,包括過去出現(xiàn)過的和預(yù)先考慮到的各種失效模式。過翌蔽跨倫襖簿匣夠靈諒愉汗臆贏鋤絞皖辭惟類梆肯轎魚漁舉蒸鈔臍社揖如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理26回歸測試模式上下文過翌蔽跨倫襖簿匣夠靈諒愉汗臆贏鋤絞皖辭惟類碼線策略模式上下文當(dāng)有多條碼線時,開發(fā)者需要知道如何對待它們。本模式描述如何為每條碼線制定與其用途相符的規(guī)則。問題開發(fā)者如何知道他們的代碼應(yīng)檢入哪條碼線,何時檢入以及檢入前要運(yùn)行哪些測試?解決辦法制定交通規(guī)則為各分支或碼線正式規(guī)定策略,確定開發(fā)者應(yīng)如何以及何時進(jìn)行變更。策略應(yīng)簡明并可以審計。雅龔簾袱傈爆旬喻哇兒撂潦紗何談干摸鷗挑幕曠秉透捶痙接溢芭針煉鑿集如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理27碼線策略模式上下文雅龔簾袱傈爆旬喻哇兒撂潦紗何談干摸鷗挑幕曠碼線策略的依據(jù)策略的制定是根據(jù)碼線的用途決定的。一旦決定了碼線需要穩(wěn)定到何種程度以及如何通過過程達(dá)到這種穩(wěn)定性,就需要把這些策略通知開發(fā)者,并實(shí)施這些策略。污神擒格打樸撂膛長賜贓擎莊薦梁哭求斧雀涉蔽例吠窒償?shù)笕鸸珵l由澆禮如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理28碼線策略的依據(jù)策略的制定是根據(jù)碼線的用途決定的。一旦決定了碼策略應(yīng)包括碼線封裝的工作類型,如開發(fā),維護(hù)或具體的版本、功能、子系統(tǒng)各元素應(yīng)該如何以及何時檢入、檢出、分支與合并對各人、各種角色和各組的訪問限制導(dǎo)入/導(dǎo)出關(guān)系:期望接收變更以及需要傳送變更的碼線的名字碼線工作期限或退休的條件預(yù)期的活動負(fù)荷以及集成頻率閩終嘿勿磕律關(guān)菩疙啞迪卞嫂插鏡厘癡煤鈉刮患梅快沂僥敢隆烴曳園扭鹵如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理29策略應(yīng)包括碼線封裝的工作類型,如開發(fā),維護(hù)或具體的版本、功能策略的例子開發(fā)線可以檢入臨時的代碼變更;受影響的組件必須是可構(gòu)造的版本線軟件必須能構(gòu)造并通過回歸測試才能檢入。檢入后的軟件對排錯是有限制的;不能檢入新特征和新功能;檢入后,分支凍結(jié),直到整個質(zhì)量保證周期結(jié)束。主線所有的組件都必須編譯和鏈接,并通過回歸測試;完整的、經(jīng)過測試的新特征可以檢入。皺踞醇組橇答絆金觀俐最駭嚴(yán)籃莽指芯亨斂漸殼宅芋抓鴛掙賞藩祿眼愉夾如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理30策略的例子開發(fā)線皺踞醇組橇答絆金觀俐最駭嚴(yán)籃莽指芯亨斂漸殼宅主線模式上下文在軟件開發(fā)中,往往不得不調(diào)解并行的開發(fā)工作。版本控制工具提供分支與合并的設(shè)施??梢允褂梅种Ц綦x并行工作,但是可能有代價。本模式使得分支與合并所要求的集成工作減少到最少。問題如何使得當(dāng)前活動碼線的數(shù)目保持在容易管理的水平,避免項(xiàng)目的版本長得太寬太密?如何使得合并得開銷減少到最小?解決辦法簡化分支模型開發(fā)單個產(chǎn)品版本時,在主線上進(jìn)行開發(fā)。主線是主碼線,除了特殊情況之外,全部開發(fā)工作都在主線上進(jìn)行。分支時,先考慮總體戰(zhàn)略,然后再創(chuàng)建分支。拿不準(zhǔn)時,盡量采用簡單的模型。友省升惋塊其徽性唬甕朱茁碼咽沏呸蘸烯馭袱訟伺埔營敞攔辭困偶棚督亨如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理31主線模式上下文友省升惋塊其徽性唬甕朱茁碼咽沏呸蘸烯馭袱訟伺埔活動開發(fā)線模式上下文當(dāng)你在動態(tài)的開發(fā)環(huán)境工作時,許多人都在變更代碼,小組成員都在為了使系統(tǒng)更好而工作,但任何變更都可能損壞系統(tǒng),而且這些變更可能互相沖突。本模式幫助你在活動開發(fā)工作中,在穩(wěn)定性和進(jìn)展之間取得平衡。問題如何使得快速發(fā)展的碼線足夠穩(wěn)定,可以使用?解決辦法定義你的目標(biāo)制定有效的碼線策略,使得主開發(fā)線足夠穩(wěn)定,能夠滿足工作需要,不要追求完整的活動開發(fā)線,而是力爭主線足夠有用與活動,能滿足你的需要。尊生派捷流猖劃裔促遲帶游毀綢踢片只素汪芬籍盼迫骯鎢蔡疹飽裝豎酵臻如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理32活動開發(fā)線模式上下文尊生派捷流猖劃裔促遲帶游毀綢踢片只素汪芬私用版本模式上下文你要在維持“活動開發(fā)線”的同時迅速評價可能損壞系統(tǒng)的復(fù)雜變更。本模式描述如何在不會無意的影響全局歷史的情況下維持本地的跟蹤能力。問題如何進(jìn)行復(fù)雜的變更的實(shí)驗(yàn),如何利用版本控制系統(tǒng)使這樣的變更不會公開?解決辦法私用歷史給開發(fā)者提供一種機(jī)制,讓他們能以他們感到舒適的粒度,為變更設(shè)置檢查點(diǎn)。這可以通過本地版本控制區(qū)提供。只是把穩(wěn)定的代碼集合檢入項(xiàng)目存儲池。重要的是,確保使用私用版本的開發(fā)者記者按合理的時間間隔把變更遷移到共享的版本控制系統(tǒng)。絕阿梁侄樂積咳擇秋超醛礬館戎父佛歌摧例行紳材紐手喉拘快痘悟戊逝隘如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理33私用版本模式上下文絕阿梁侄樂積咳擇秋超醛礬館戎父佛歌摧例行紳任務(wù)分支模式上下文有些開發(fā)任務(wù)需要很長時間才能實(shí)現(xiàn),并且中間步驟對“活動開發(fā)線”有潛在的破壞。本模式描述如何調(diào)解長期任務(wù)和活動開發(fā)線問題你們小組如何能對碼線進(jìn)行多項(xiàng)、長期、重疊的變更,而不對它的一致性和完整性提出過高的要求。解決辦法用分支進(jìn)行隔離為每一項(xiàng)對碼線有重大變更的活動開辟一條分支。重要的是經(jīng)常把活動開發(fā)線的變更集成到任務(wù)分支,讓任務(wù)分支與活動碼線的集成盡可能平滑??收_己綸白描彪缺祝計俞慮秋右涪迅仰磚跡糊炬渺角胡賀休弛衡卓蓖盔傀如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理34任務(wù)分支模式上下文渴誣己綸白描彪缺祝計俞慮秋右涪迅仰磚跡糊炬版本線模式上下文你正在“活動開發(fā)線”上開發(fā),但是需要維護(hù)和增強(qiáng)已經(jīng)發(fā)布的版本,并且要保持已發(fā)布的碼基的穩(wěn)定。本模式說明如何隔離已經(jīng)發(fā)布的版本和當(dāng)前的開發(fā)。問題如何在不影響當(dāng)前開發(fā)工作的情況下,維護(hù)已經(jīng)發(fā)布的版本?解決辦法發(fā)布前分支在維護(hù)版本與活動開發(fā)分支在不同的碼線上,把每個已經(jīng)發(fā)布的版本保存在一條版本線上。使得版本線能獨(dú)立發(fā)展,以便排除BUG。每條版本線都從主線上分支。味宅醒愈慰悲忿潮氣很覆洞杉代詛巧較勃卯舵恬予仟目厚運(yùn)疏現(xiàn)蹭灤厲貯如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理35版本線模式上下文味宅醒愈慰悲忿潮氣很覆洞杉代詛巧較勃卯舵恬予版本預(yù)備線模式上下文你即將完成一個版本,同時需要開始下一個版本的開發(fā),你要維護(hù)“活動開發(fā)線”。問題如何使碼線穩(wěn)定,以準(zhǔn)備將要到來的發(fā)布,同時使新工作能繼續(xù)在活動碼線上進(jìn)行?解決辦法分支而不是凍結(jié)當(dāng)代碼接近版本質(zhì)量時,就創(chuàng)建版本工程分支,在這條分支上完成發(fā)布,留出主線進(jìn)行活動開發(fā),這條分支變?yōu)榘姹痉种?。藤銹三松嫌月記捎詳誰贏縣濤辮獸誡遇秉柬禿鍛爽焉恨廚疼癸匙訓(xùn)撰爭維如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理36版本預(yù)備線模式上下文藤銹三松嫌月記捎詳誰贏縣濤辮獸誡遇秉柬禿模式的總結(jié)和聯(lián)系要點(diǎn)何時以何種策略來隔離(分支,私用)、匯總(合并,集成)和驗(yàn)證變更,使得碼線能夠滿足開發(fā)的目的并且代價最小。腑縷具過踩秩邏突古舒浙匹煙膽洶嫉陶糟燭簧隋旗疫窗裸又孩沸魄砌寞妒如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理37模式的總結(jié)和聯(lián)系要點(diǎn)腑縷具過踩秩邏突古舒浙匹煙膽洶嫉陶糟燭簧議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南氓佰軀額牧捐餞借悅捅毫清滅忘妖羅銹糾緬曾紐耿共紐徐液班箔梁存鉤忠如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理38議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)氓佰軀額牧捐餞借悅捅毫清滅忘妖羅版本構(gòu)造構(gòu)建管理的最佳經(jīng)驗(yàn)代碼+工具=產(chǎn)品檢入所有的源文件隔離構(gòu)建時生成的對象使用通用的構(gòu)建工具經(jīng)常構(gòu)建保留構(gòu)建日志和輸出結(jié)果寸迢韋濟(jì)撤泊電釩燼全丸蔗酒翟慌砸片態(tài)沾郎懇攏貯絹骨樸扭塘希怕澡層如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理39版本構(gòu)造構(gòu)建管理的最佳經(jīng)驗(yàn)寸迢韋濟(jì)撤泊電釩燼全丸蔗酒翟慌砸片版本標(biāo)識和發(fā)布版本的管理命名規(guī)則既能反應(yīng)版本演化又具有一定的可讀性。關(guān)于標(biāo)簽的命名可以參考《數(shù)字媒體事業(yè)部配置管理補(bǔ)充指南》。項(xiàng)目立項(xiàng)后就應(yīng)該規(guī)劃好各種用途的分支的命名規(guī)則,版本標(biāo)識中包含分支的關(guān)鍵信息來反映版本的演化,這樣以后發(fā)布的版本就很容易通過這種映射方式在存儲庫中找到重建的版本。揭散寶府票檀擊唐本儉心仔纜檻師跑凌松鉸偉啡置夾攙籍甲斂欲奴柔圖灤如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理40版本標(biāo)識和發(fā)布版本的管理命名規(guī)則揭散寶府票檀擊唐本儉心仔纜檻版本發(fā)布管理的要求發(fā)布過程是可重復(fù)的,可控制的,可跟蹤的所有的源代碼應(yīng)該進(jìn)行配置管理和標(biāo)識必須提供描述發(fā)布過程,工件清單和變更情況的文檔應(yīng)該提供回滾的過程和步驟,以便在出現(xiàn)問題時能恢復(fù)發(fā)布的版本嫂我訃側(cè)暖似累鉻妓妊旺飯益?zhèn)蛭稣烫而r盛齒奔奈器遭考塌吳孕飾匡蘊(yùn)如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理41版本發(fā)布管理的要求發(fā)布過程是可重復(fù)的,可控制的,可跟蹤的嫂發(fā)布流程開發(fā)人員提交了發(fā)布清單的工作產(chǎn)品集成人員獲取代碼線最新的代碼構(gòu)建版本進(jìn)行單元測試進(jìn)行冒煙測試提交版本給測試組測試測試組認(rèn)可后,完整地發(fā)布產(chǎn)品備案管理,形成分支或標(biāo)簽與發(fā)布產(chǎn)品的映射剃蠻育墮縣倆怎聞伏譏誰哈耍椒穎雀討棋壁擯袍貓泥曉魏簧捏嗚撲候述盂如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理42發(fā)布流程開發(fā)人員提交了發(fā)布清單的工作產(chǎn)品剃蠻育墮縣倆怎聞伏譏議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南愉轍省翰馬沙醋鎂監(jiān)頂床僧啥擁券死斥囪貴快培脅癟膀享琳兵棱躊八觸墻如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理43議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)愉轍省翰馬沙醋鎂監(jiān)頂床僧啥擁券死UCM:統(tǒng)一變更管理簡介IBMRATIONAL的產(chǎn)品通過RationalClearCase和ClearQuest的實(shí)現(xiàn)是第三代配置管理系統(tǒng)以活動為中心提供推薦流程,也可以定制使用主線提升模型,通過基線提升植糾劍階掌魔僧謾估覓映婉宵紛景很腕純妓叔珍毛鋸漲錐瓤蘭烷卵琶驗(yàn)戈如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理44UCM:統(tǒng)一變更管理簡介IBMRATIONAL的產(chǎn)品植糾UCM在六個具體領(lǐng)域開發(fā)人員在共享及公共代碼工件上的隔離和協(xié)作;將一起開發(fā)、集成和發(fā)布的相關(guān)工件組按構(gòu)件(component)進(jìn)行組織;在項(xiàng)目里程碑創(chuàng)建構(gòu)件基線(baseline)并根據(jù)所建立的質(zhì)量標(biāo)準(zhǔn)來提升基線;將變更組織為變更集(changeset);將活動管理和工件管理集成在一起;按項(xiàng)目來組織軟件開發(fā)并支持多項(xiàng)目之間的代碼共享;開發(fā)人員的隔離和協(xié)作唇慈曼采宦氖克撮福嶺彤化蝗潦銀訟誠插唾理犧橫傈價爍供入驅(qū)苞丹炮鍬如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理45UCM在六個具體領(lǐng)域開發(fā)人員在共享及公共代碼工件上的隔離和協(xié)Perforce簡介常用,簡單而功能強(qiáng)大對分支和合并有突出支持使用主線模型支持任務(wù)級提交提供了基于數(shù)據(jù)庫的查詢報告內(nèi)置的任務(wù)管理,提供集成接口盛緊棵百溶卞于涂錯唾速泳冤屜妹涵麗捌繕箍管命宛磁胳珍引失擔(dān)旨啥蹈如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理46Perforce簡介常用,簡單而功能強(qiáng)大盛緊棵百溶卞于涂錯議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南雜打簇汽磁棟橋剁爛山描才帕鋼鋪敢泵甭乓趟培災(zāi)妙屋芥卑府園緬借傀擂如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理47議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)雜打簇汽磁棟橋剁爛山描才帕鋼鋪敢議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南份搗倦隔剎晤嚴(yán)愉普疙坤剪買嶼符燦汗匡擻輝寞膜咯件掩鳳鎢鞏礁舷鄖酸如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理48議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)份搗倦隔剎晤嚴(yán)愉普疙坤剪買嶼符燦部門配置管理規(guī)程和指南是經(jīng)開發(fā)經(jīng)理和配置管理員討論認(rèn)可位置http://sepgsrv/sites/SHM/DocLib1/Forms/AllItems.aspx提供配置計劃模版各個項(xiàng)目組或者各個具體項(xiàng)目必須認(rèn)真填寫以后由項(xiàng)目管理組根據(jù)計劃審計決鍵攘肅迫睛傣僻拙青獵菏國嘿滿塔畝蕊怒向垂端融盞邁季仕徐沈娃暢港如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理49部門配置管理規(guī)程和指南是經(jīng)開發(fā)經(jīng)理和配置管理員討論認(rèn)可決鍵攘參考資料《軟件配置管理模式》,黃明成,電力出版社《第三代軟件配置管理方案》,微軟2004年會課件《軟件外包發(fā)布管理》,IBM2004開發(fā)者大會課間perforce《配置管理最佳經(jīng)驗(yàn)》、《軟件生命》數(shù)字媒體事業(yè)部配置管理規(guī)程和指南脖朽玖鴦妝字蔬鯨熱塘沿柿寓梯涪浮纓杯兒唐鉗憊淳龜盤寒峪侍奶衛(wèi)剎驅(qū)如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理50參考資料《軟件配置管理模式》,黃明成,電力出版社脖朽玖鴦妝字謝謝!湍捧誨釀陪瓢理衍哎嫡擅漸李糞拉息幣譚播真客晰愚李豹桑謅琢畢錳篷燎如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理51謝謝!湍捧誨釀陪瓢理衍哎嫡擅漸李糞拉息幣譚播真客晰愚李豹桑謅如何有效地進(jìn)行版本控制和管理迎塌踐祟備垮序傲另丹肉糯氧粱努瓶拎苛肪獵敗花依赦腔豺香撇俏慈悶禍如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理52如何有效地進(jìn)行版本控制和管理迎塌踐祟備垮序傲另丹肉糯氧粱努瓶議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南帥滑棉董控餅勞叫烘爍冊佩闖吾涪辟矯儈斃根殆貿(mào)首維蒂電摔搖耪凹游悅?cè)绾斡行У剡M(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理53議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)帥滑棉董控餅勞叫烘爍冊佩闖吾涪辟軟件開發(fā)的混沌版本較多,不知道如何選擇一個合適的版本進(jìn)行下一步的工作?你的團(tuán)隊經(jīng)常得不到一個可以工作的版本而苦不堪言?有多個版本而不能很好的整合?用戶出現(xiàn)問題,而你卻無法獲取和重構(gòu)用戶版本?變更無法追蹤,無法有效的追溯版本的變化?你經(jīng)常處在無法說清楚項(xiàng)目的真實(shí)狀態(tài)…絳敞祟清薩攣滁籬痞坐表算善騰毒獎簇古涉尼原取癬墩蚤抖諄酋信粱貸平如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理54軟件開發(fā)的混沌版本較多,不知道如何選擇一個合適的版本進(jìn)行下一派搔秤媽盆憚防慚凜炮壹躍拿合閩曹艾史浙壁蹬根漁寫男曳站酶趴配畸卉如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理55派搔秤媽盆憚防慚凜炮壹躍拿合閩曹艾史浙壁蹬根漁寫男曳站酶趴配作業(yè)你們項(xiàng)目組版本控制和管理存在什么問題,原因是什么,使用本培訓(xùn)的方法如何改進(jìn)?要求至少提出2個問題,說明其原因改進(jìn)方法應(yīng)該明確并有可操作性周五前提交到li_chunhua@吹譜處保穢緩暮拿鵬腫味蕪狽檬侮色嘛園沛雨前篇見掃腿證蓮怎賣膨譜合如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理56作業(yè)你們項(xiàng)目組版本控制和管理存在什么問題,原因是什么,使用本如何避免對癥下藥配置管理變更管理項(xiàng)目管理…對于開發(fā)者,最切實(shí)可行的就是版本控制和管理燃肯停殿啪饞豐億汞膛丟縫翱歉環(huán)汽瓶勒舍恤煽訴灌態(tài)娘丙翰敵匙們餾偶如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理57如何避免對癥下藥燃肯停殿啪饞豐億汞膛丟縫翱歉環(huán)汽瓶勒舍恤煽訴第一代配置管理時間七十年代開始特征基于文件(FileBased)的版本控制支持check-out/check-in模型簡單分支解決問題文件丟失和覆蓋的問題酮抉瘓籽筋物烙評人退汾棠膚婁非羚嚇債撿汛蟻墑良癡隘曉旦船魁逝癢絕如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理58第一代配置管理時間酮抉瘓籽筋物烙評人退汾棠膚婁非羚嚇債撿汛蟻?zhàn)罴呀?jīng)驗(yàn)標(biāo)識工件,將工件存入安全的版本庫控制并記錄對工件的變更保持穩(wěn)定,一致的工作空間傀雹熱拌紉氫墜掙霄堡人肉混衛(wèi)匪均碘采龔重丹扣那憚遍蛆銥鑒柯挽樞瓢如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理59最佳經(jīng)驗(yàn)傀雹熱拌紉氫墜掙霄堡人肉混衛(wèi)匪均碘采龔重丹扣那憚遍蛆第二代配置管理時間八十年代中后期特征基于項(xiàng)目庫將元數(shù)據(jù)與配置項(xiàng)分開存儲管理從而更好地支持并行開發(fā)、團(tuán)隊協(xié)作以及過程管理解決問題并行開發(fā)遁萍感射痔又昌膚受記胰差楷濱蔣醞碌埋佯砸凋著羚儀訛丹景肩擎冤絡(luò)眷如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理60第二代配置管理時間遁萍感射痔又昌膚受記胰差楷濱蔣醞碌埋佯砸凋最佳實(shí)踐支持工件的并行開發(fā)及早集成,經(jīng)常集成記錄并追蹤變更跟請求保證軟件build可重現(xiàn)徘仇睦表烷箕賃扣很托棒唇糟猾枕材貌堯盛宇鋅鉀泳檻郊敘膀限繭皂讒遇如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理61最佳實(shí)踐徘仇睦表烷箕賃扣很托棒唇糟猾枕材貌堯盛宇鋅鉀泳檻郊敘第三代配置管理時間2000年特征以活動為中心的組織和集成解決問題如何在復(fù)雜的軟件開發(fā)中把握變更條梅廈指亡題切磊柯無狀拒賴恬敞誤僚育楔迭甲椽訂察揪棱抖韻膨閻詩哆如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理62第三代配置管理時間條梅廈指亡題切磊柯無狀拒賴恬敞誤僚育楔迭甲最佳實(shí)踐將工件組織成版本化的構(gòu)件“構(gòu)件的引入”——有利于邏輯設(shè)計和物理實(shí)現(xiàn)相對應(yīng)——提供一種機(jī)制來更智能的創(chuàng)建和使用基線 構(gòu)件是對眾多的文件進(jìn)行合理分類以呈現(xiàn)系統(tǒng)的設(shè)計要素可以大大簡化項(xiàng)目開發(fā)控制,可以通過合理的目錄來組織構(gòu)件以活動為中心的組織和集成

建立活動——變更集的映射在項(xiàng)目里程碑處創(chuàng)建基線

更好的標(biāo)識階段點(diǎn)和提供開發(fā)復(fù)用的基準(zhǔn)碉翰墑暇龜餃春媒餓藐失痰門滿怪嫉朗湛洋而莫履酉扛坑犁饒皚搐談嘴侈如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理63最佳實(shí)踐將工件組織成版本化的構(gòu)件碉翰墑暇龜餃春媒餓藐失痰門滿定義開發(fā)流程確定代碼線策略、集成規(guī)約和質(zhì)量標(biāo)準(zhǔn)獲取工作列表選擇工作的代碼線和獲取一個可信版本在工作區(qū)完成單個任務(wù),測試符合代碼線策略后提交,反復(fù)執(zhí)行集成人員根據(jù)集成規(guī)約進(jìn)行集成,根據(jù)質(zhì)量標(biāo)準(zhǔn)打標(biāo)簽,提交測試,符合質(zhì)量后標(biāo)識基線,通知相關(guān)人員更新代碼蘆縱蔣潞橢赫搶箭按沏噸釬硫胳恩鍺表躁勉遠(yuǎn)箔哎詞藐體龜幻嚙您顧謅錯如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理64定義開發(fā)流程確定代碼線策略、集成規(guī)約和質(zhì)量標(biāo)準(zhǔn)蘆縱蔣潞橢赫搶議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南刁借悲遂疏稅騰錨辮全霹干盜異約盈勉滋靜款蓬獸茸拆筆建東共述柔霍幽如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理65議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)刁借悲遂疏稅騰錨辮全霹干盜異約盈什么是模式?描述在我們環(huán)境中反復(fù)出現(xiàn)的問題,然后給出該問題的核心解決辦法,以這樣的方式,你可以上百萬次地使用這種解決方法,而不會有兩次一樣,它描述了為了解決問題而定義的存在而不得不做的事情的規(guī)則。勺抨劣媒煥散圃政咳成睡哭件涸巒磺背酪糟講郭您臀軍案慘青低敷律葫秧如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理66什么是模式?描述在我們環(huán)境中反復(fù)出現(xiàn)的問題,然后給出該問題的如何理解和使用模式上下文何時應(yīng)該考慮使用該模式問題說明該模式要解決的問題解決辦法注意:模式如何互相關(guān)聯(lián)與模式所解決的問題和解決問題的方法同樣重要

捕桌雌赤初風(fēng)墑?wù)钌贾Z跨蚜鏟餞滾越斥酉謾掩鍍籮媚焰蟄淆累瀾壘槐菠漣如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理67如何理解和使用模式上下文捕桌雌赤初風(fēng)墑?wù)钌贾Z跨蚜鏟餞滾越斥酉模式縱覽與工作區(qū)相關(guān)的模式

存儲庫私用工作區(qū)第三方碼線任務(wù)級提交私用系統(tǒng)構(gòu)造集成構(gòu)造單元測試冒煙測試回歸測試與碼線相關(guān)的模式

碼線策略 主線活動開發(fā)線私用版本任務(wù)分支版本線版本預(yù)備線鑄藤鵲贓私梧破官削存唯蝶鐳柔放紋匹畫熔毒咆磷俘垣汞沏綢劊溢袱榷鎂如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理68模式縱覽與工作區(qū)相關(guān)的模式鑄藤鵲贓私梧破官削存唯蝶鐳柔放紋匹存儲庫模式上下文為了創(chuàng)建私用工作區(qū)或者運(yùn)行可靠的集成構(gòu)造,你需要正確的組件。本模式介紹如何用必要的部件輕松的構(gòu)造工作區(qū)。問題如何獲得填充新工作區(qū)的正確組件的正確版本?解決辦法一站式購物從單一訪問點(diǎn)獲取你的代碼和有關(guān)人工制品。使創(chuàng)建開發(fā)者工作區(qū)盡可能的簡單與透明滾息襄傻繡咸簇漾藻較薊乓毅欺琶優(yōu)梗遁萬矯簾僚聲柱倫丈株窺竟錠丁慫如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理69存儲庫模式上下文滾息襄傻繡咸簇漾藻較薊乓毅欺琶優(yōu)梗遁萬矯簾僚私用工作區(qū)模式上下文你要確保正在跟最新的代碼打交道,但是因?yàn)槿藗儾荒芡咨频奶幚聿豢煽刂频淖兏?,所以你要能控制何時開始跟其他開發(fā)者變更打交道。本模式描述如何調(diào)解總是使用當(dāng)前碼基進(jìn)行開發(fā)的理想與當(dāng)環(huán)境不停的變化時人們不能有效的工作的現(xiàn)實(shí)之間的緊張狀態(tài)。問題如何跟上不斷變化的碼線并取得進(jìn)展,而不會為你們自己造成的環(huán)境變化分心?解決辦法以隔離工作的方法控制變更在私用工作區(qū)工作,在那里控制你正在做的代碼和組件的版本。你可以完全控制你的環(huán)境何時以及如何變更礦便胚駿宦蓉窄符穆救鄲攘蛋釩戒哆呈廷押姆梭群邑讀大囪僅糾橫婆露討如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理70私用工作區(qū)模式上下文礦便胚駿宦蓉窄符穆救鄲攘蛋釩戒哆呈廷押姆第三方代碼線模式上下文你的系統(tǒng)需要和外部組件相聯(lián)系。本模式介紹如何跟蹤自己的代碼的方式,來跟蹤第三方的組件問題什么是協(xié)調(diào)供應(yīng)商代碼的版本與產(chǎn)品代碼的版本的最有效的戰(zhàn)略?解決辦法為第三方代碼創(chuàng)建碼線。用這條碼線構(gòu)造工作區(qū)和安裝工具。怕蔥穿莊侮釩稍先誦攏薛尖星獲垃嘆喘鱉儀愛鍍占失航株驚嗡猛比算挾洼如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理71第三方代碼線模式上下文怕蔥穿莊侮釩稍先誦攏薛尖星獲垃嘆喘鱉儀任務(wù)級的提交模式上下文如果知道哪些東西或變更參加了集成,集成構(gòu)造時就比較容易排錯。本模式討論如何平衡對穩(wěn)定性、速度和原子性的需要。問題在兩次向版本控制系統(tǒng)提交之間,你應(yīng)該做多少工作?檢入文件之前,你應(yīng)該等多長時間?解決辦法每一項(xiàng)小粒度任務(wù)做一次提交每一項(xiàng)小粒度的、一致的任務(wù)做一次提交。弱咖含筑堵侈鹿狂詛買六淹臟羽符錦辯淋嚴(yán)撼列鱗狹玩翁臀拱霓讒底宮脅如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理72任務(wù)級的提交模式上下文弱咖含筑堵侈鹿狂詛買六淹臟羽符錦辯淋嚴(yán)私用系統(tǒng)構(gòu)造模式上下文私用工作區(qū)使得變更和其他外部變化隔離起來,但是你的變更又需要和系統(tǒng)其余部分打交道,為了驗(yàn)證這一變更,你需要以一致的方式構(gòu)造系統(tǒng),本模式說明如何在提交變更時檢驗(yàn)?zāi)愕淖兏欠衽c最新公布的碼基一致。問題如何在檢入你的變更前檢驗(yàn)它們不損壞構(gòu)造或者系統(tǒng)?解決辦法通過本地構(gòu)造實(shí)現(xiàn)全局考慮提交給源碼控制之前,用私用系統(tǒng)構(gòu)造來構(gòu)造系統(tǒng)幅奈堪捶噎凸晾糜嘴蔡容獎稱偉態(tài)纖釘櫥翅爭誤蝕丟峪筏口斗衷瓤饋歷沛如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理73私用系統(tǒng)構(gòu)造模式上下文幅奈堪捶噎凸晾糜嘴蔡容獎稱偉態(tài)纖釘櫥翅集成構(gòu)造模式上下文各個開發(fā)在單獨(dú)的私用區(qū)間變更,這些變更必須集成在一起,并且整個系統(tǒng)必須可靠的構(gòu)造。本模式討論有助于確保系統(tǒng)的代碼總能構(gòu)造的機(jī)制問題如何確保碼基總能可靠地構(gòu)造?解決辦法進(jìn)行集中式構(gòu)造要確保用中央集成構(gòu)造所有的變更以及其依存關(guān)系,這個構(gòu)造過程應(yīng)該是可重生的,盡可能接近最終的產(chǎn)品構(gòu)造,自動化的或只是需要最少的人工干預(yù),有識別錯誤與不一致的通知或日志機(jī)制。在你的版本控制系統(tǒng)中用標(biāo)號標(biāo)識這次構(gòu)造。凈稱褐輛袁替撰褒妙謅桶圾秤婚機(jī)彭謹(jǐn)音跋售遷踏哦菩既淖燭安莊間會柄如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理74集成構(gòu)造模式上下文凈稱褐輛袁替撰褒妙謅桶圾秤婚機(jī)彭謹(jǐn)音跋售遷冒煙測試模式上下文即使代碼能夠構(gòu)造,仍需要檢驗(yàn)以后可能使你出故障的運(yùn)行問題。本模式討論為了確認(rèn)構(gòu)造有效性而需要的決策。問題如何知道系統(tǒng)在你變更后仍能工作?解決辦法驗(yàn)證基本功能每次構(gòu)造都必須進(jìn)行冒煙測試,以顯而易見的方式驗(yàn)證應(yīng)用未被損壞。安茹需蔽毆礫拇酥寨充柜屬歸砌潔摯朔蓉廷寓糧蛀駝雕缸騷暴之匿樓番凋如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理75冒煙測試模式上下文安茹需蔽毆礫拇酥寨充柜屬歸砌潔摯朔蓉廷寓糧單元測試模式上下文在你做模塊尤其是編寫新代碼時,冒煙測試對詳細(xì)的測試變更是不夠的。本模式向你介紹如何測試詳細(xì)的變更,使得你能確保碼線的質(zhì)量。問題如何測試模塊經(jīng)你變更后是否仍能像預(yù)期那樣工作。解決辦法測試合同開發(fā)及運(yùn)行單元測試。嘩漢仟續(xù)恭稽糟滇射髓瀕回煌嘗豈丫穿獸儉韓毋腰旋軌頃撈聊亞朽撰辦顆如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理76單元測試模式上下文嘩漢仟續(xù)恭稽糟滇射髓瀕回煌嘗豈丫穿獸儉韓毋回歸測試模式上下文冒煙測試不詳盡,單元測試局部化,如果要確定準(zhǔn)備發(fā)布的版本,就需要確保碼基是健壯的。本模式說明如何生成不比上次更差的構(gòu)造。問題如何確?,F(xiàn)有的代碼沒有因你進(jìn)行其他改進(jìn)而變得更糟?解決辦法對修改進(jìn)行測試每當(dāng)要確保碼線的穩(wěn)定性時,就對系統(tǒng)運(yùn)行回歸測試。用過去使得系統(tǒng)出故障的測試用例創(chuàng)建回歸測試?;貧w測試是黑箱測試,包括過去出現(xiàn)過的和預(yù)先考慮到的各種失效模式。過翌蔽跨倫襖簿匣夠靈諒愉汗臆贏鋤絞皖辭惟類梆肯轎魚漁舉蒸鈔臍社揖如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理77回歸測試模式上下文過翌蔽跨倫襖簿匣夠靈諒愉汗臆贏鋤絞皖辭惟類碼線策略模式上下文當(dāng)有多條碼線時,開發(fā)者需要知道如何對待它們。本模式描述如何為每條碼線制定與其用途相符的規(guī)則。問題開發(fā)者如何知道他們的代碼應(yīng)檢入哪條碼線,何時檢入以及檢入前要運(yùn)行哪些測試?解決辦法制定交通規(guī)則為各分支或碼線正式規(guī)定策略,確定開發(fā)者應(yīng)如何以及何時進(jìn)行變更。策略應(yīng)簡明并可以審計。雅龔簾袱傈爆旬喻哇兒撂潦紗何談干摸鷗挑幕曠秉透捶痙接溢芭針煉鑿集如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理78碼線策略模式上下文雅龔簾袱傈爆旬喻哇兒撂潦紗何談干摸鷗挑幕曠碼線策略的依據(jù)策略的制定是根據(jù)碼線的用途決定的。一旦決定了碼線需要穩(wěn)定到何種程度以及如何通過過程達(dá)到這種穩(wěn)定性,就需要把這些策略通知開發(fā)者,并實(shí)施這些策略。污神擒格打樸撂膛長賜贓擎莊薦梁哭求斧雀涉蔽例吠窒償?shù)笕鸸珵l由澆禮如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理79碼線策略的依據(jù)策略的制定是根據(jù)碼線的用途決定的。一旦決定了碼策略應(yīng)包括碼線封裝的工作類型,如開發(fā),維護(hù)或具體的版本、功能、子系統(tǒng)各元素應(yīng)該如何以及何時檢入、檢出、分支與合并對各人、各種角色和各組的訪問限制導(dǎo)入/導(dǎo)出關(guān)系:期望接收變更以及需要傳送變更的碼線的名字碼線工作期限或退休的條件預(yù)期的活動負(fù)荷以及集成頻率閩終嘿勿磕律關(guān)菩疙啞迪卞嫂插鏡厘癡煤鈉刮患梅快沂僥敢隆烴曳園扭鹵如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理80策略應(yīng)包括碼線封裝的工作類型,如開發(fā),維護(hù)或具體的版本、功能策略的例子開發(fā)線可以檢入臨時的代碼變更;受影響的組件必須是可構(gòu)造的版本線軟件必須能構(gòu)造并通過回歸測試才能檢入。檢入后的軟件對排錯是有限制的;不能檢入新特征和新功能;檢入后,分支凍結(jié),直到整個質(zhì)量保證周期結(jié)束。主線所有的組件都必須編譯和鏈接,并通過回歸測試;完整的、經(jīng)過測試的新特征可以檢入。皺踞醇組橇答絆金觀俐最駭嚴(yán)籃莽指芯亨斂漸殼宅芋抓鴛掙賞藩祿眼愉夾如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理81策略的例子開發(fā)線皺踞醇組橇答絆金觀俐最駭嚴(yán)籃莽指芯亨斂漸殼宅主線模式上下文在軟件開發(fā)中,往往不得不調(diào)解并行的開發(fā)工作。版本控制工具提供分支與合并的設(shè)施??梢允褂梅种Ц綦x并行工作,但是可能有代價。本模式使得分支與合并所要求的集成工作減少到最少。問題如何使得當(dāng)前活動碼線的數(shù)目保持在容易管理的水平,避免項(xiàng)目的版本長得太寬太密?如何使得合并得開銷減少到最?。拷鉀Q辦法簡化分支模型開發(fā)單個產(chǎn)品版本時,在主線上進(jìn)行開發(fā)。主線是主碼線,除了特殊情況之外,全部開發(fā)工作都在主線上進(jìn)行。分支時,先考慮總體戰(zhàn)略,然后再創(chuàng)建分支。拿不準(zhǔn)時,盡量采用簡單的模型。友省升惋塊其徽性唬甕朱茁碼咽沏呸蘸烯馭袱訟伺埔營敞攔辭困偶棚督亨如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理82主線模式上下文友省升惋塊其徽性唬甕朱茁碼咽沏呸蘸烯馭袱訟伺埔活動開發(fā)線模式上下文當(dāng)你在動態(tài)的開發(fā)環(huán)境工作時,許多人都在變更代碼,小組成員都在為了使系統(tǒng)更好而工作,但任何變更都可能損壞系統(tǒng),而且這些變更可能互相沖突。本模式幫助你在活動開發(fā)工作中,在穩(wěn)定性和進(jìn)展之間取得平衡。問題如何使得快速發(fā)展的碼線足夠穩(wěn)定,可以使用?解決辦法定義你的目標(biāo)制定有效的碼線策略,使得主開發(fā)線足夠穩(wěn)定,能夠滿足工作需要,不要追求完整的活動開發(fā)線,而是力爭主線足夠有用與活動,能滿足你的需要。尊生派捷流猖劃裔促遲帶游毀綢踢片只素汪芬籍盼迫骯鎢蔡疹飽裝豎酵臻如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理83活動開發(fā)線模式上下文尊生派捷流猖劃裔促遲帶游毀綢踢片只素汪芬私用版本模式上下文你要在維持“活動開發(fā)線”的同時迅速評價可能損壞系統(tǒng)的復(fù)雜變更。本模式描述如何在不會無意的影響全局歷史的情況下維持本地的跟蹤能力。問題如何進(jìn)行復(fù)雜的變更的實(shí)驗(yàn),如何利用版本控制系統(tǒng)使這樣的變更不會公開?解決辦法私用歷史給開發(fā)者提供一種機(jī)制,讓他們能以他們感到舒適的粒度,為變更設(shè)置檢查點(diǎn)。這可以通過本地版本控制區(qū)提供。只是把穩(wěn)定的代碼集合檢入項(xiàng)目存儲池。重要的是,確保使用私用版本的開發(fā)者記者按合理的時間間隔把變更遷移到共享的版本控制系統(tǒng)。絕阿梁侄樂積咳擇秋超醛礬館戎父佛歌摧例行紳材紐手喉拘快痘悟戊逝隘如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理84私用版本模式上下文絕阿梁侄樂積咳擇秋超醛礬館戎父佛歌摧例行紳任務(wù)分支模式上下文有些開發(fā)任務(wù)需要很長時間才能實(shí)現(xiàn),并且中間步驟對“活動開發(fā)線”有潛在的破壞。本模式描述如何調(diào)解長期任務(wù)和活動開發(fā)線問題你們小組如何能對碼線進(jìn)行多項(xiàng)、長期、重疊的變更,而不對它的一致性和完整性提出過高的要求。解決辦法用分支進(jìn)行隔離為每一項(xiàng)對碼線有重大變更的活動開辟一條分支。重要的是經(jīng)常把活動開發(fā)線的變更集成到任務(wù)分支,讓任務(wù)分支與活動碼線的集成盡可能平滑??收_己綸白描彪缺祝計俞慮秋右涪迅仰磚跡糊炬渺角胡賀休弛衡卓蓖盔傀如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理85任務(wù)分支模式上下文渴誣己綸白描彪缺祝計俞慮秋右涪迅仰磚跡糊炬版本線模式上下文你正在“活動開發(fā)線”上開發(fā),但是需要維護(hù)和增強(qiáng)已經(jīng)發(fā)布的版本,并且要保持已發(fā)布的碼基的穩(wěn)定。本模式說明如何隔離已經(jīng)發(fā)布的版本和當(dāng)前的開發(fā)。問題如何在不影響當(dāng)前開發(fā)工作的情況下,維護(hù)已經(jīng)發(fā)布的版本?解決辦法發(fā)布前分支在維護(hù)版本與活動開發(fā)分支在不同的碼線上,把每個已經(jīng)發(fā)布的版本保存在一條版本線上。使得版本線能獨(dú)立發(fā)展,以便排除BUG。每條版本線都從主線上分支。味宅醒愈慰悲忿潮氣很覆洞杉代詛巧較勃卯舵恬予仟目厚運(yùn)疏現(xiàn)蹭灤厲貯如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理86版本線模式上下文味宅醒愈慰悲忿潮氣很覆洞杉代詛巧較勃卯舵恬予版本預(yù)備線模式上下文你即將完成一個版本,同時需要開始下一個版本的開發(fā),你要維護(hù)“活動開發(fā)線”。問題如何使碼線穩(wěn)定,以準(zhǔn)備將要到來的發(fā)布,同時使新工作能繼續(xù)在活動碼線上進(jìn)行?解決辦法分支而不是凍結(jié)當(dāng)代碼接近版本質(zhì)量時,就創(chuàng)建版本工程分支,在這條分支上完成發(fā)布,留出主線進(jìn)行活動開發(fā),這條分支變?yōu)榘姹痉种АL黉P三松嫌月記捎詳誰贏縣濤辮獸誡遇秉柬禿鍛爽焉恨廚疼癸匙訓(xùn)撰爭維如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理87版本預(yù)備線模式上下文藤銹三松嫌月記捎詳誰贏縣濤辮獸誡遇秉柬禿模式的總結(jié)和聯(lián)系要點(diǎn)何時以何種策略來隔離(分支,私用)、匯總(合并,集成)和驗(yàn)證變更,使得碼線能夠滿足開發(fā)的目的并且代價最小。腑縷具過踩秩邏突古舒浙匹煙膽洶嫉陶糟燭簧隋旗疫窗裸又孩沸魄砌寞妒如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理88模式的總結(jié)和聯(lián)系要點(diǎn)腑縷具過踩秩邏突古舒浙匹煙膽洶嫉陶糟燭簧議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)配置管理模式版本構(gòu)造和發(fā)布管理UCM和perforce的版本控制播控組的實(shí)踐經(jīng)驗(yàn)(董全武)部門配置管理規(guī)程和指南氓佰軀額牧捐餞借悅捅毫清滅忘妖羅銹糾緬曾紐耿共紐徐液班箔梁存鉤忠如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理89議程配置管理的發(fā)展和最佳經(jīng)驗(yàn)氓佰軀額牧捐餞借悅捅毫清滅忘妖羅版本構(gòu)造構(gòu)建管理的最佳經(jīng)驗(yàn)代碼+工具=產(chǎn)品檢入所有的源文件隔離構(gòu)建時生成的對象使用通用的構(gòu)建工具經(jīng)常構(gòu)建保留構(gòu)建日志和輸出結(jié)果寸迢韋濟(jì)撤泊電釩燼全丸蔗酒翟慌砸片態(tài)沾郎懇攏貯絹骨樸扭塘希怕澡層如何有效地進(jìn)行版本控制和管理如何有效地進(jìn)行版本控制和管理90版本構(gòu)造構(gòu)建管理的最佳經(jīng)驗(yàn)寸迢韋濟(jì)撤泊電釩燼全丸蔗酒翟慌砸片版本標(biāo)識和發(fā)布版本的管理命名規(guī)則既能反應(yīng)版本演化又具有一定的可讀性。關(guān)于標(biāo)簽的命名可以參考《數(shù)字媒體事業(yè)部配置管理補(bǔ)充指南》。項(xiàng)目立項(xiàng)后就應(yīng)該規(guī)劃好各種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論