demoshop

demo, trying to be the best_

利用分支(Branch)的功能可以有效隔離主線(Trunk),當開發程式時想重構、測試寫法、開發新功能,這些動作可能不會那麼快處理完畢,並且在調整的同時,可能會造成現有功能發生錯誤,以上這種行為都應該在分支(Branch)下執行,當你一切功能與測試都通過確認後再合併主線(Trunk)就可以大幅降低在開發時期對主線(Trunk)的影響,更棒的是 SVN 的分支是屬於廉價複製,也就是說在版本庫中並不會存在兩份資料有效節省空間的使用,以下舉個實際的例子
 

某日B工程師正在開發一個驚天地動鬼神的功能,扯到了專案的最核心,眼看大概再三個工作天就可以完成了,正在沾沾自喜的時候客戶來了一通電話。

客戶:「我想要改變一下流程你幫我把A功能和B功能中間差一個確認頁面,避免使用者一直打來說他不小心刪除了,叭啦叭啦...」

(這時你聽到需求感到相當簡單,不就是加個 Confirm 就可以解決的小事,於是你很有信心的回)

B工程師:「喔~這樣阿,沒問題阿我馬上幫你改好」

客戶:「嗯!快點阿,不然總機小姐快忙死了」

電話掛掉後你很自然的開啟A功能修改一下馬上就完成了客戶要的東西,你正要上傳的時候卻發生了悲劇!因為你正在修改的大功能是在主線(Trunk)中修改的,即使現在只是要一個那麼小那麼容易的功能你卻因為大功能尚未完成而卡住了你所有的修改。這時候電話又來了...

客戶:「阿不是說一下就改好?三個小時過去了電話還是一直來阿」

B工程師:「嗯…..這功能可能還要三天才可以上去…….」

客戶:「你以為我不會寫程式阿!!這麼簡單的功能你也要做三天,我去找你老闆說
 

這時候的你除了滿肚子X便,你還能怎麼辦?這種情況應該很多朋友都有發生過,但是如果當初在開發新功能的時候你就選擇了使用分支(Branch)這一切就不會發生了。
 


●在 TortoiseSVN 的幫助下分支(Branch)是相當簡單容易操作的,假設我們需要重構整個網站那就可以從根目錄開始執行分支(Branch)的動作


●跳出操作視窗(你可以看到名稱為 Copy 其實分支就是一種複製)

  1. 就是你發動的目錄
  2. 你要將分支放到哪(建議使用 SVN 的預設目錄  branches )
  3. 一樣也是很重要的 Log 建議越仔細越好
  4. 如果你希望分支建立後直接切換就把它打勾吧
  5. 確定…
     

●按下確定後就會出現 Copy 視窗


注意事項請看上圖的操作執行了 Copy 命令,並且建立分支(Branch)也會是一個版本


●Copy 完畢後看起來沒有什麼不一樣,但是其實我們現在已經在分支(Branch)內了

注意事項這時候你在這裡的一切更新、刪除、建立、什麼鬼的動作都不會影響到主線(Trunk),完全就是一個隔離區(沙盒?)阿,有一點會影響啦,就是你的送交(Commit)一樣會將整體的版本數往前推。


●如果你想要回到主線(Trunk),只需要使用 Switch 即可

注意事項主線(Trunk)和分支(Branch)切換的時候請先送交(Commit)


●選擇你要去哪就可以了

到這裡我們就可以靈活的切換主線(Trunk)與分支(Branch)的操作,有效隔離,下篇文章將會提到合併,這也是一個很重要的功能。

Subversion SVN 版本控管 系列文章

回應討論