如何用「擱置」在沒有分支的情況下!同時開發新版本和維護線上版本?
該還的債還是要還!去年10月底有軟體開發日時,現場 Demo 時因時間的因素而少一個。
當時說會再Blog 上補,這一欠就欠到現在。 真是對不起大家!
當我們在開發的時候,常常會遇到 要維護「已上線」的程式,同時又要開發「新版本」的功能。
這時候大家會怎麼做??
沒事的時候就沒事,當客戶 (也有可能是老闆) 打電話來 X譙 時,這個問題就麻煩啦!!
程式碼沒有辦法等到下一次改版才更新!
若是團隊又沒有做版本管控的分支 ( Branch ) 的話,那這時所做的一切就要上天保佑了!
-------------------------
同樣的程式碼在「Production」改一次,回到手上的開發又要再改一次。
但往往在長期睡眠不足的情況下
程式碼 Copy 來 Copy 去的過程中
想不改錯都很難!
悲劇就這樣子發生了!
-------------------------
不然就是…
乾脆把開發到一半的程式碼也一併發佈吧!!
反正介面不要顯示!
這種更可怕,因為時間的關係根本沒辦法測試所有的功能
所以極有可能會出現隱性的 Bug 。( 傳說中 改 A 壞 B )
-------------------------
當然還有其他的問題……
難道一定要用分支的方式才能解決嗎??
那麼那些已經 Check out 的檔案怎麼辦?
其實是可以用一點點小技巧和 TFS 的擱置來達成
這對於一人專案 的團隊有相當的幫助。( 至少可以不用自已 copy 檔案,還漏掉的窘境 )
------ 注意事項 !必讀! -------
因為這是用分支的替代方案,所以會有一些限制。
以下的動作請務必遵守!
- 當時上線的程式碼有做「標籤」( Baseline )
- 未完成的程式和未測試通過的程式決不「簽入」
- Undo 後跟上線的版本一致
- 若是超過兩位同時在開發的話,建議請用分支。
---------------------------------------------------
若是以上任何有一點沒有符合,請不要執行以下的動作。
Tip:若是 3 沒有的話!請自行透過 1 所建立的標籤取得後再合併一次!
來看看怎麼做吧!
- 擱置程式碼,還原成 Production 的版本
- 修改 Bug 、測試、過版
- 解除擱置程式碼、進行合併
------------ 1 --------------------------------------
可以利用「擱置」將寫到一半的程式碼,先暫時備份到 TFS 中。 ( 別人是看不到你的修改 )
記得擱置集的名稱要寫,註解也要寫呀!因為是要做原來版本的修改,所以「在本機保留暫止的變更」可以不用勾選
------------ 2 --------------------------------------
這時所有的檔案都會被還原了 ( 有遵守前面的原則的話,這時還原的版本就應該是上線時的版本 )
接下來就可以開始修改一些臨時性的小功能改版,或是 Bug Fix 。
通通都 測試完成、上線過版後就可以把這次的項目 簽入!
------------ 3 --------------------------------------
或是從 檔案-->原始檔控制-->解除擱置
請特別注意,在執行這個動作之前,請務必確認相關的檔案是否都是「未被簽出」的狀態
取出後若是有程式碼衝突的部分,請依實際的情況來決定要保留那一邊的程式 ( 通常都是手上的不要 )
這時候就會發現,手上新的功能的程式碼,已經有包含之前已經改好的程式碼了!
接下來就可以專心進行後續新功能的開發啦!!
當時簡報下載的地方 ( 因為智財權所以當時很多圖片是沒辦法放上去的 )
http://www.microsoft.com/taiwan/events/slides/download_1010.aspx