如何用「擱置」在沒有分支的情況下!同時開發新版本和維護線上版本?

如何用「擱置」在沒有分支的情況下!同時開發新版本和維護線上版本?

該還的債還是要還!去年10月底有軟體開發日時,現場 Demo 時因時間的因素而少一個。

當時說會再Blog 上補,這一欠就欠到現在。 真是對不起大家!

 

當我們在開發的時候,常常會遇到 要維護「已上線」的程式,同時又要開發「新版本」的功能。

這時候大家會怎麼做??

 

沒事的時候就沒事,當客戶 (也有可能是老闆) 打電話來 X譙 時,這個問題就麻煩啦!!

 

程式碼沒有辦法等到下一次改版才更新!

 

若是團隊又沒有做版本管控的分支 ( Branch ) 的話,那這時所做的一切就要上天保佑了!

 

-------------------------

同樣的程式碼在「Production」改一次,回到手上的開發又要再改一次。

但往往在長期睡眠不足的情況下

程式碼 Copy 來 Copy 去的過程中

想不改錯都很難!

悲劇就這樣子發生了!

-------------------------

不然就是…

乾脆把開發到一半的程式碼也一併發佈吧!!

反正介面不要顯示!

這種更可怕,因為時間的關係根本沒辦法測試所有的功能

所以極有可能會出現隱性的 Bug 。( 傳說中 改 A 壞 B )

-------------------------

當然還有其他的問題……

 

 

難道一定要用分支的方式才能解決嗎??

 

那麼那些已經 Check out 的檔案怎麼辦?

 

其實是可以用一點點小技巧和 TFS 的擱置來達成

 

這對於一人專案 的團隊有相當的幫助。( 至少可以不用自已 copy 檔案,還漏掉的窘境 )

 

------  注意事項 !必讀!  ------- 

因為這是用分支的替代方案,所以會有一些限制。

以下的動作請務必遵守

  1. 當時上線的程式碼有做「標籤」( Baseline )
  2. 未完成的程式和未測試通過的程式決不「簽入」
  3. Undo 後跟上線的版本一致
  4. 若是超過兩位同時在開發的話,建議請用分支。

---------------------------------------------------

 

若是以上任何有一點沒有符合,請不要執行以下的動作。

Tip:若是 3 沒有的話!請自行透過 1 所建立的標籤取得後再合併一次!

 

 

 

來看看怎麼做吧!

  1. 擱置程式碼,還原成 Production 的版本
  2. 修改 Bug 、測試、過版
  3. 解除擱置程式碼、進行合併

 

------------ 1 --------------------------------------

image
可以利用「擱置」將寫到一半的程式碼,先暫時備份到 TFS 中。 ( 別人是看不到你的修改 )

 

 image
記得擱置集的名稱要寫,註解也要寫呀!因為是要做原來版本的修改,所以「在本機保留暫止的變更」可以不用勾選

 

------------ 2 --------------------------------------

image
這時所有的檔案都會被還原了 ( 有遵守前面的原則的話,這時還原的版本就應該是上線時的版本 )

 

接下來就可以開始修改一些臨時性的小功能改版,或是 Bug Fix 。

 

通通都 測試完成、上線過版後就可以把這次的項目 簽入!

 

------------ 3 --------------------------------------

image 
在「暫止的變更」視窗中可以進行「解除擱置」的動作。

或是從 檔案-->原始檔控制-->解除擱置

 

image
選定指定的擱置集,進行取回當初改到一半的程式碼。

請特別注意,在執行這個動作之前,請務必確認相關的檔案是否都是「未被簽出」的狀態

image
不然會出現 TF203015 的錯誤喔!!

 

取出後若是有程式碼衝突的部分,請依實際的情況來決定要保留那一邊的程式 ( 通常都是手上的不要 )

image
最後一定要確認是否所有的「衝突」都被解決

 

這時候就會發現,手上新的功能的程式碼,已經有包含之前已經改好的程式碼了!

 

接下來就可以專心進行後續新功能的開發啦!!

 

 

 

 

 

當時簡報下載的地方  ( 因為智財權所以當時很多圖片是沒辦法放上去的 )

http://www.microsoft.com/taiwan/events/slides/download_1010.aspx