日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转】TFS上分支和标签的用法

發(fā)布時(shí)間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】TFS上分支和标签的用法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么時(shí)候用分支:??例如為某個(gè)客戶(hù)定制的專(zhuān)用版本,和主干的特性有很大差別.不具通用性的需求.

?????????????????????? 大的版本修改,例如2.0 到3.0 加了很多特性,但2.0 還有維護(hù).改bug

?

什么時(shí)候用標(biāo)簽:?小版本的發(fā)布, 如2.1.1到2.1.2.

?

?

?

分支的優(yōu)點(diǎn): 清晰,容易操作,程序員只要get latest/checkin?latest就可以了

?

分支的缺點(diǎn): 合并比較麻煩,?解決方法是要么是定期同步或者干脆不同步.

?

?

?

標(biāo)簽的優(yōu)點(diǎn): 靈活

標(biāo)簽的缺點(diǎn): 如果要對(duì)某個(gè)label的版本進(jìn)行hotfix, 操作起來(lái)比較麻煩, 要先get specific version by label, 然后修改代碼,checkin之后會(huì)產(chǎn)生一個(gè)新的changeset, 然后在一個(gè)workspace里面get labelversion,然后get changset, 重新label一個(gè)version.來(lái)發(fā)布hotfix. 發(fā)布之后還要把之前l(fā)atest的代碼copy一份,重新check in latest

?

========================================

有策略地進(jìn)行分支

源代碼是開(kāi)發(fā)工作中的一項(xiàng)重要資產(chǎn)。但如何在多個(gè)開(kāi)發(fā)人員同時(shí)處理文件更新時(shí)有效管理和演化源文件成為了一個(gè)難題。可以使用版本控制系統(tǒng)在共享儲(chǔ)存庫(kù)中存儲(chǔ)源代碼、隔離并行開(kāi)發(fā)工作、集成代碼更改以及恢復(fù)以前的文件版本。版本控制中的一個(gè)關(guān)鍵元素是分支,利用分支可進(jìn)行同步開(kāi)發(fā)。如果有策略地進(jìn)行分支,則可保持軟件的多個(gè)版本的順序和一致性。

Team Foundation 提供一個(gè)靈活可靠的版本控制系統(tǒng)。您可以使用 Team Foundation 版本控制管理開(kāi)發(fā)源代碼、文檔、工作項(xiàng)和由團(tuán)隊(duì)處理的其他關(guān)鍵信息的過(guò)程中的多個(gè)版本。有關(guān) Visual Studio Team Foundation Server 中的版本控制的更多信息,請(qǐng)參見(jiàn)使用版本控制。

在通過(guò)多個(gè)項(xiàng)目發(fā)布同時(shí)引入了多個(gè)更改時(shí),團(tuán)隊(duì)如何管理代碼?


在使用版本控制系統(tǒng)時(shí),您必須考慮如何設(shè)置分支結(jié)構(gòu)。可以通過(guò)鏡像源代碼文件來(lái)創(chuàng)建一個(gè)分支。然后,可以在不影響源的情況下更改該分支。例如,如下圖的分支結(jié)構(gòu)所示,MAIN 分支包含已通過(guò)集成測(cè)試的已完成功能,而 DEVELOPMENT 分支包含團(tuán)隊(duì)正在構(gòu)建的代碼。當(dāng) DEVELOPMENT 分支中的新功能完成并可通過(guò)集成測(cè)試時(shí),您可以將代碼從 DEVELOPMENT 分支提升到 MAIN 分支中。此過(guò)程稱(chēng)為“反向集成”。反之,如果您將代碼從 MAIN 分支合并到 DEVELOPMENT 分支中,則此過(guò)程稱(chēng)為“正向集成”。

?

有關(guān)如何創(chuàng)建和合并代碼分支的更多信息,請(qǐng)參見(jiàn) CodePlex 網(wǎng)站上的以下頁(yè)面:Team Foundation Server Branching Guide 2.0(Team Foundation Server 分支指南 2.0)。

分支和合并需要遵循下列原則:

  • 每個(gè)分支都必須具有一個(gè)定義的策略,此策略與如何將代碼集成到相應(yīng)分支中有關(guān)。例如,在上圖的分支結(jié)構(gòu)中,可以指定一個(gè)團(tuán)隊(duì)成員來(lái)?yè)碛泻凸芾?MAIN 分支。該成員負(fù)責(zé)執(zhí)行初始分支操作、將更改從 DEVELOPMENT 分支反向集成到 MAIN 分支,以及將更改從 MAIN 分支正向集成到 DEVELOPMENT 分支。當(dāng) MAIN 分支也從其他分支集成更改時(shí),正向集成非常重要。

  • MAIN 分支必須包含已通過(guò)集成測(cè)試的代碼,以便始終準(zhǔn)備進(jìn)行發(fā)布。

  • 由于團(tuán)隊(duì)成員會(huì)定期簽入更改,因此 DEVELOPMENT(或工作)分支將不斷演變。

  • 標(biāo)簽是分支中的文件在某個(gè)特定時(shí)間的快照。

    有關(guān)更多信息,請(qǐng)參見(jiàn)使用標(biāo)簽獲取文件快照。

  • 利用 Team Foundation Build,可以從分支的幾種生成類(lèi)型中進(jìn)行選擇:手動(dòng)、連續(xù)、封閉、滾動(dòng)和計(jì)劃。建議 MAIN 分支具有封閉簽入生成類(lèi)型。這意味著,DEVELOPMENT 分支必須先通過(guò) MAIN 分支的所有要求,然后您才能提交反向集成。DEVELOPMENT 分支應(yīng)運(yùn)行連續(xù)生成類(lèi)型,因?yàn)閳F(tuán)隊(duì)必須盡快了解影響 DEVELOPMENT 分支的新簽入的發(fā)生時(shí)間。

    團(tuán)隊(duì)?wèi)?yīng)采用何種頻率進(jìn)行反向集成和正向集成?


    如下圖所示,反向集成和正向集成應(yīng)至少在用戶(hù)情景完成時(shí)進(jìn)行。雖然每個(gè)團(tuán)隊(duì)對(duì)于完成的定義可能不同,但完成用戶(hù)情景通常意味著完成了功能和對(duì)應(yīng)的單元測(cè)試。只能在單元測(cè)試驗(yàn)證 DEVELOPMENT 分支的穩(wěn)定性后反向集成到 MAIN 分支中。

    ?

    如果您具有多個(gè)工作(即 DEVELOPMENT)分支,則當(dāng)任意分支集成到 MAIN 分支時(shí)應(yīng)立刻正向集成到所有工作分支。因?yàn)?MAIN 分支保持穩(wěn)定,所以正向集成是安全的。工作分支中可能會(huì)發(fā)生某些沖突或失敗,這是因?yàn)闊o(wú)法保障工作分支是穩(wěn)定的。

    應(yīng)盡快解決所有沖突,這非常重要。通過(guò)對(duì) MAIN 分支使用封閉簽入,可以使反向集成變得簡(jiǎn)單得多,因?yàn)橘|(zhì)量要求可幫助避免 MAIN 分支中發(fā)生沖突或錯(cuò)誤。有關(guān)更多信息,請(qǐng)參見(jiàn)簽入到由封閉簽入生成過(guò)程控制的文件夾。

    團(tuán)隊(duì)如何管理實(shí)現(xiàn)不同用戶(hù)情景的源?


    如下圖所示,可以定期將更改簽入工作分支以完成用戶(hù)情景。可以在同一分支中同時(shí)實(shí)現(xiàn)多個(gè)用戶(hù)情景,但僅當(dāng)所有進(jìn)行中的工作都已完成時(shí)才能反向集成到 MAIN 分支。建議您按照類(lèi)似大小對(duì)用戶(hù)情景進(jìn)行分組,因?yàn)槟幌M笥脩?hù)情景阻止多個(gè)小用戶(hù)情景的集成。可以將兩組用戶(hù)情景拆分為兩個(gè)分支。

    ?

    團(tuán)隊(duì)?wèi)?yīng)在何時(shí)添加分支?


    以下情況下應(yīng)創(chuàng)建分支:

    • 在必須按與現(xiàn)有分支不同的時(shí)間表/周期發(fā)布代碼時(shí)。

    • 在代碼需要不同的分支策略時(shí)。如果創(chuàng)建具有新策略的新分支,則可以為項(xiàng)目增添策略?xún)r(jià)值。

    • 在向客戶(hù)發(fā)布功能且團(tuán)隊(duì)打算進(jìn)行不影響計(jì)劃的發(fā)布周期的更改時(shí)。

    不應(yīng)對(duì)每個(gè)用戶(hù)情景創(chuàng)建分支,因?yàn)檫@會(huì)產(chǎn)生較高的集成成本。雖然通過(guò)? 可方便地進(jìn)行分支,但在分支很多時(shí),管理分支的開(kāi)銷(xiāo)可能會(huì)很大。

    從版本控制的角度,團(tuán)隊(duì)如何管理發(fā)布?


    團(tuán)隊(duì)?wèi)?yīng)能在任意沖刺 (sprint) 末尾發(fā)布代碼。通過(guò)使用 Team Foundation Server,可以標(biāo)記一個(gè)分支以在某個(gè)特定時(shí)間點(diǎn)為代碼拍攝快照。如下圖所示,可以為發(fā)布標(biāo)記 MAIN 分支。這樣,您可以將分支返回到此時(shí)間點(diǎn)時(shí)的狀態(tài)。

    ?

    因?yàn)楸仨氃诎l(fā)布時(shí)實(shí)現(xiàn)更新,所以為發(fā)布創(chuàng)建分支可幫助團(tuán)隊(duì)繼續(xù)獨(dú)立處理下一個(gè)沖刺 (sprint),而不會(huì)與將來(lái)的發(fā)布產(chǎn)生沖突。下圖顯示了一個(gè)分支,該分支包含更新代碼,隨后在第二個(gè)沖刺 (sprint) 末尾進(jìn)行發(fā)布后,該分支反向集成到 MAIN 分支。

    ?

    在為發(fā)布創(chuàng)建分支時(shí),應(yīng)從 MAIN 分支(該分支最穩(wěn)定)創(chuàng)建分支。如果您從工作分支對(duì)發(fā)布進(jìn)行分支,則會(huì)導(dǎo)致集成問(wèn)題,因?yàn)闊o(wú)法保證工作分支的穩(wěn)定性。

    http://msdn.microsoft.com/zh-cn/library/ee782536.aspx

    ?

    http://msdn.microsoft.com/zh-cn/magazine/gg598921.aspx

    ?

    ?

    ==================

    標(biāo)簽是邏輯上的

    分支是物理上的

    標(biāo)簽歷史版本比較、在修改時(shí),中間做應(yīng)急發(fā)布不方便,多任務(wù)并發(fā),多團(tuán)隊(duì)合作有問(wèn)題,客戶(hù)端一個(gè)版本。

    分支可在任意時(shí)刻在主線(xiàn)上發(fā)布、修復(fù)應(yīng)急bug、專(zhuān)用版不影響主線(xiàn),客戶(hù)端多個(gè)版本,容易混亂。

    標(biāo)簽和分支的作用:大版本區(qū)分。

    標(biāo)簽在出現(xiàn)hotfix,并發(fā)任務(wù),人員放假回家的情況,大團(tuán)隊(duì)作業(yè)的情況確實(shí)不好。

    ?

    總結(jié)

    以上是生活随笔為你收集整理的【转】TFS上分支和标签的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。