Subversion 十分鐘上手

一.      什麼是Subversion?

Subversion是一個被設計成爲CVS繼任者的新版本控制系統。

二.      軟件下載

首先到http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91下載安裝包,這是windows系統下的,其他系統的請到 http://subversion.tigris.org/project_packages.html 去找對應的來下載。

三.      搭建服務器

如果你並不關心服務器端,那你可以直接看使用客戶端

STEP 1:創建版本庫(repository)

命令行運行:

svnadmin create d:/svndatabase

D:/svndatabase 就是我指定的版本庫的位置了

STEP2:建立用戶

打開d:/svndatabase/conf 目錄,這個conf目錄是第一步建立版本庫時創建的。打開svnserve.conf 找到以下兩句:

#[general]

#[password-db = passwd]

去掉每行開頭的註釋符#,其中第二行是指定身份驗證的文件名,即passwd文件。打開passwd文件,找到

#[users]

# harry = harryssecret

# sally = sallyssecret

去掉#[users]前的#,下面就是用戶了,一行一個,格式是 用戶名 = 密碼。

STEP3:啓動SVN服務

命令行執行

svnserve --daemon --root d:/svndatabase

開着個command窗口總是讓人不爽,沒關係,你可以用 svnservice.exe 這個程序把svnserve作成服務。

STEP4:svn作爲服務運行(Windows NT)

寫到這裏發現svnservice.exe 官方網站居然沒有了,原來 subversion 1.4開始本身就集成了Windows服務的工具。詳細介紹請參看http://www.subversion.org.cn/index.php?option=com_content&task=view&id=83&Itemid=9 http://svn.collab.net/repos/svn/tags/1.4.0/notes/windows-service.txt

 

四.      使用客戶端

客戶端有純命令行客戶端,也有GUI客戶端。

作爲初學者,我認爲首先應該使用命令行方式,這樣有助於理解,在命令行方式比較熟悉之後再轉用GUI客戶端。

STEP1:建立項目

首先在一個臨時目錄下規劃好項目的主目錄結構:

/temp/project

/temp/project/branches/

/temp/project/tags/

/temp/project/trunk/

/temp/project/trunk/main.cpp

/temp/project/trunk/toolbar.cpp

                …………

                makefile

 

現在可以將目錄結構和數據導入版本庫了

svn import project svn://svnserveraddress/project –m “init import”

如果服務器就是你的本地機器你也可以這樣寫

svn import project file:///d:/svndatabase/project -m”init import”

執行上面的命令,你當然都要在temp 下。第一次使用 svn 命令時,由於你沒有指定username,所以會提示你輸入用戶名和密碼,當然你也可以通過 –username –password 參數來提供。Subversion 會在本機緩存你的用戶名和密碼,下次使用時就無需再提供用戶名和密碼了,如果你覺的這樣不安全,可以通過 –no-auth-cache參數指定不要緩存用戶名和密碼。注意上面提到的幾個參數都是兩個橫槓哦。

當屏幕出現

Committed revision 1

說明版本庫已經包含你的目錄和數據了。現在可以刪除這個temp目錄了。現在進入下一步了。

STEP2:獲取工作拷貝

選擇你的工作目錄,比如 d:/myproject,命令行執行:

svn checkout svn://svnserveraddress/project/trunck AppName

這樣在d:/myproject 目錄下就有了一個AppName的目錄,他對應的就是版本庫裏project/trunk目錄。現在你就可以在這個目錄下開始修改文件了。修改完成以後就可以進入下一步。

STEP3:提交修改

d:/project/appname 目錄下執行

svn commit

 

當另外的用戶對這個項目作了修改並提交後,你就使用下面的命令使你的工作拷貝和版本庫同步。

svn update

當你增加了新的文件和目錄時可以使用 svn add 命令。

 

警告

你可以使用任何你喜歡的工具編輯文件,但你不可以在修改目錄結構時不通知subversion,需要使用 svn copy svn deletesvn move命令修改工作拷貝的結構,使用 svn add 增加版本控制的新文件或目錄。

至於GUI客戶端,我目前使用TortoiseSVN

五.      分支、標籤和合並

爲什麼要在這裏講分支、標籤和合並?很多人包括一些使用版本控制系統有一段時間的人,幾乎從來沒有用過分支和標籤功能,他們實際上只是把版本控制系統當成一個代碼備份系統再使用。

以下兩種情況都需要使用分支

u       大多數軟件存在這樣一個生命週期:編碼、測試、發佈然後重複。這樣有兩個問題,第一,開發者需要在質量保證小組測試假定穩定版本時繼續開發新特性,新工作在軟件測試時不可以中斷;第二,小組必須一直支持老的發佈版本和軟件,如果一個bug在最新的代碼中發現,它一定也存在已發佈的版本中,客戶希望立刻得到錯誤修正而不必等到新版本發佈。

u       你可能要對項目做一些複雜的修改,整個修改可能會持續一週或更長的時間,這時團隊中其他人還要繼續工作,不能應爲你的修改導致團隊其他人只能停止工作。

上面兩種情況版本控制都可以幫助你。具體的介紹請看svn-book. .

 

六.      網上資源

官方網站

Subversion官方網站

Subversion中文站

客戶端

TortoiseSVN

 

注:本文部分內容摘抄於 http://www.duduwolf.com/post/setting_up_subversion.asp 

http://www.duduwolf.com/cmd.asp?act=tb&id=296

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章