【4】在版本庫(kù)中創(chuàng)建目錄
前面第3節(jié)我們提到了使用svn list和svnlook tree命令來查看版本庫(kù)的目錄結(jié)構(gòu)。但是我們并沒有講到這些目錄是如何創(chuàng)建并被添加上去的。現(xiàn)在我來演示一下這個(gè)過程:
對(duì)應(yīng)于目錄創(chuàng)建的命令是svn mkdir,執(zhí)行如下命令:
svn mkdir http://localhost:8000/svn/Workspace/Ericsson/ECoupon
-m "Create top folder for porject ECoupon"
此時(shí)SVN會(huì)提示你輸入用戶名和密碼,輸入正確的用戶名、密碼后即可以看到如下輸出:
Authentication realm: <http://localhost:8000> Subversion repositories
Password for 'Administrator': *******
Authentication realm: <http://localhost:8000> Subversion repositories
Username: qlinpen
Password for 'qlinpen': ********
Committed revision 3.
此時(shí)我們?cè)俅问褂胹vnlook tree .查看版本庫(kù)的目錄樹:
C:\>svn list http://localhost:8000/svn/Workspace/Ericsson
ECoupon/
C:\>svnlook tree c:\Develop\MyRepository\Workspace Ericsson
Ericsson/
ECoupon/
可以看到ECoupon項(xiàng)目目錄已經(jīng)被成功地創(chuàng)建。
svn mkdir命令即可以使用PATH作為參數(shù),也可以使用URL作為參數(shù)。當(dāng)使用PATH作為參數(shù)時(shí)會(huì)在本地新建一個(gè)目錄,但不會(huì)立即加入到版本控制,需使用svn add命令顯式地添加。如果是使用URL作為參數(shù),則會(huì)立即在版本庫(kù)形成一次版本而立刻執(zhí)行,此時(shí)SVN要求用戶必須顯式地添加操作日志(通過-m 日志信息來說明)
我們可以在svn mkdir命令中使用--parents參數(shù)來連續(xù)創(chuàng)建多個(gè)父-子關(guān)系的目錄。如:
C:\>svn mkdir E:\Temp\ECoupon\parent\childen --parents
A E:\Temp\ECoupon\parent
A E:\Temp\ECoupon\parent\childen
當(dāng)我們使用了--parents參數(shù)后,將不需要手工多次調(diào)用svn mkdir命令而可以一次性創(chuàng)建多個(gè)目錄了
【5】為項(xiàng)目添加版本控制功能
在創(chuàng)建完目錄之后,接下來就可以為項(xiàng)目添加版本控制功能了,為一個(gè)項(xiàng)目添加版本控制功能一般來說需要兩個(gè)步驟:
A.Import本地項(xiàng)目到版本庫(kù)對(duì)應(yīng)路徑下
B.Check out版本庫(kù)項(xiàng)目到本地路徑
這是兩個(gè)相反的操作,我們需要記得的一點(diǎn)就是:
把項(xiàng)目import到版本庫(kù)之后,項(xiàng)目并不會(huì)立即就被加入到版本控制中,還需要再?gòu)陌姹編?kù)中check out到本地原有位置才是真正地吧項(xiàng)目加入到版本控制。這一點(diǎn)和TCP/IP協(xié)議的三次握手過程類似。必須確保雙方都知道對(duì)方的存在和聯(lián)系。
下面我們?cè)诒镜氐腅:\Temp目錄下新建一個(gè)名為ECoupon的空目錄(注意要和版本庫(kù)上面的名字一樣),然后把該目錄下的所有內(nèi)容import到版本庫(kù)的對(duì)應(yīng)路徑下:
E:\Temp>svn import ECoupon http://localhost:8000/svn/Workspace/Ericsson/ECoupon -m "import project ECoupon"
我們看到執(zhí)行該命令后DOS客戶端沒有任何輸出,這表明import成功。接下來我們?cè)購(gòu)陌姹編?kù)check out到本地:
E:\Temp>svn checkout http://localhost:8000/svn/Workspace/Ericsson/ECoupon ECoupon
Checked out revision 3.
這次我們看到控制臺(tái)輸出了“check out revision 3”,這說明SVN已經(jīng)成功把項(xiàng)目加入到版本控制中了。此時(shí)本地E:\Temp\ECoupon目錄下依然看起來沒有特別,但實(shí)際上在該項(xiàng)目根目錄下有一個(gè)隱藏的叫做“.svn”的目錄。該目錄的作用是:
A.維護(hù)當(dāng)前目錄下各個(gè)資源和版本庫(kù)的關(guān)聯(lián)
B.存儲(chǔ)了每次本地的修改,用于以后的比較和恢復(fù)
好!只需要兩步我們就可以輕松地實(shí)現(xiàn)為項(xiàng)目添加版本控制的功能了~。關(guān)于import和checkout命令,我們還有幾個(gè)要注意的地方:
A.當(dāng)執(zhí)行import命令時(shí),操作將從源路徑的下一級(jí)目錄開始。也就是說假如我們import的是E:\Temp\ECoupon目錄,那么將只有ECouopn目錄下的內(nèi)容會(huì)被import,而不包括ECoupon目錄本身,所以我們?cè)趇mport時(shí)都必須先在目標(biāo)路徑建立好頂層目錄。而checkout則會(huì)把項(xiàng)目頂層目錄一同checkout出來
B.checkout命令可以一次檢出多個(gè)項(xiàng)目,例如執(zhí)行:svn checkout URL1 URL2 ... URLn PATH 命令將會(huì)分別把這幾個(gè)URL代表的項(xiàng)目檢出到PATH目錄下
E:\Temp>svn checkout http://localhost:8000/svn/Workspace/Ericsson/ECoupon http://localhost:8000/svn/Workspace/Ericsson/Newsletter
Checked out revision 5.
Checked out revision 5.
C.checkout命令如果不指定目標(biāo)路徑,將默認(rèn)檢出到當(dāng)前路徑
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。