【19】切換分支
“分支”的一個(gè)重要作用就是并行開(kāi)發(fā)---在企業(yè)級(jí)開(kāi)發(fā)中,通常需要同時(shí)開(kāi)發(fā)軟件的新版本和維護(hù)軟件的舊版本,trunk目錄通常用于存放最新的代碼,而branch目錄通常用于存放某個(gè)開(kāi)發(fā)過(guò)程中的分支。
例如:在開(kāi)發(fā)ECoupon項(xiàng)目的過(guò)程中,程序員為了試驗(yàn)一個(gè)新需求或新功能是否可用,需要另外開(kāi)辟一個(gè)空間來(lái)做測(cè)試。但是這個(gè)程序員的工作不應(yīng)該影響到其他人的進(jìn)度,或者說(shuō)在主干線上工作的人員進(jìn)度不能受到這個(gè)程序員的影響。那么此時(shí)分支的作用就顯現(xiàn)出來(lái)了。
我們可以給該程序員創(chuàng)建一個(gè)分支,該分支的原始版本可以來(lái)自于主干的最新可運(yùn)行代碼,讓這個(gè)程序員工作在這個(gè)分支上,而其他人并行地進(jìn)行主干線的開(kāi)發(fā)。但是因?yàn)榇饲斑@個(gè)程序員的本地工作副本是指向主干,所以他必須重新把版本關(guān)系指向這個(gè)屬于他的最新分支。
這時(shí)他有兩種做法:
A.從分支中檢出一份拷貝到不同于原來(lái)ECoupon項(xiàng)目的位置,然后獨(dú)立開(kāi)發(fā)
B.使用svn switch命令來(lái)切換到版本庫(kù)的不同位置。
這里我們選擇方法B。svn switch命令的用法是:
svn switch [--relocate] URL。該命令有兩種用法:一種是不使用參數(shù)relocate的,一種是使用relocate參數(shù)的。它們的使用原則如下:
A.如果切換后的版本庫(kù)路徑還是在同一個(gè)版本庫(kù),只是在不同的路徑下。那么使用svn switch URL
B.如果切換后的版本庫(kù)位置已經(jīng)改變(主機(jī)遷移,版本庫(kù)遷移),但是目錄結(jié)構(gòu)不變。就需要relocate參數(shù)
因?yàn)槲覀兦袚Q的新路徑是在同一個(gè)版本庫(kù)下,只是路徑變了。所以我們用如下命令就可以了
E:\Temp\ECoupon_tmp>svn switch http://localhost:8000/svn/Workspace/Ericsson/ECoupon_GA/branches/paul --username=guest --
password=guest
U .
Updated to revision 38.
現(xiàn)在我們檢查這個(gè)本地工作副本的信息,它已經(jīng)轉(zhuǎn)向分支paul了
E:\Temp\ECoupon_tmp>svn info .
Path: .
URL: http://localhost:8000/svn/Workspace/Ericsson/ECoupon_GA/branches/paul
Repository Root: http://localhost:8000/svn/Workspace
Repository UUID: 06f3a259-b3b5-ff4e-9a70-52e8834f1976
Revision: 38
Node Kind: directory
Schedule: normal
Last Changed Author: qlinpen
Last Changed Rev: 38
Last Changed Date: 2009-12-10 18:47:59 +0800 (星期四, 10 十二月 2009)
一個(gè)簡(jiǎn)單的命令就成功地把版本庫(kù)和本地工作副本的聯(lián)系切換過(guò)了!
注意上面的例子中我們沒(méi)有使用--relocate參數(shù),這是因?yàn)槲覀兦袚Q的前后始終都是在同一個(gè)版本庫(kù),如果現(xiàn)在版本庫(kù)的主機(jī)換了那么就需要加上該參數(shù)了
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2009-12-10 19:02
Paul Lin 閱讀(398)
評(píng)論(0) 編輯 收藏 所屬分類:
項(xiàng)目管理