用 Subversion 構建版本控制環(huán)境![]() |
![]() | 劉冬 , Java自由人 2005 年 9 月 本文將介紹如何通過(guò) Subversion 來(lái)構建小組開(kāi)發(fā)過(guò)程中最為重要的版本控制環(huán)境,包括Subversion 環(huán)境的安裝配置以及如何通過(guò)各種有效的客戶(hù)端工具來(lái)提高工作的效率。 Subversion 項目的初衷是為了替換現在開(kāi)源社區最為流行的版本控制軟件 CVS,在 CVS的功能的基礎上有很多的提升同時(shí)也能較好的解決 CVS 系統的一些不足,這些提升主要包括以下的一些方面: 1. 目錄、文件以及改名等元數據的版本化 2. 提交操作是真正的原子操作 3. 可通過(guò) Apache 服務(wù)器提供基于 WebDAV/DeltaV 協(xié)議的支持 4. 可獨立運行 5. 分支(Branching)與標簽(Tagging)操作是輕量級的; 6. 客戶(hù)服務(wù)器端分層庫結構設計; 7. 資源庫可以采用數據庫(BerkeleyDB)或者是使用特定格式的文件進(jìn)行存儲; 8. 更有效的對二進(jìn)制文件進(jìn)行處理。 更多的特性可以參照 Subversion 提供的文檔(http://subversion.tigris.org/)
二. Subversion版本控制環(huán)境在Windows系統下的安裝 在Windows下安裝最為方便的辦法就是下載安裝程序,你可以到下面這個(gè)地址下載最新的二進(jìn)制壓縮版本svn-win32-1.2.3.zip ,地址是: http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 把該文件解壓到一個(gè)目錄,假定為 D:\subversion。 接下來(lái)新建一個(gè)存放項目的資源庫目錄,例如:D:\repository\project1,執行下面命令對這個(gè)項目目錄進(jìn)行初始化: D:\subversion\bin> svnadmin create D:\repository\project1 Subversion會(huì )在D:\repository\project1目錄下生成很多的子目錄以及文件,接下來(lái)我們需要設置該項目的用戶(hù)信息以及項目的基本信息,打開(kāi)D:\repository\project1\conf\passwd文件,去掉[users]的注釋?zhuān)⑻砑佑脩?hù)如下:
Subversion使用了明碼存儲用戶(hù)的口令,這應該算是它的一個(gè)不足。 接下來(lái)打開(kāi)conf\svnserve.conf修改如下
在做完這些基本的設置后就可以啟動(dòng) Subversion 了,當然最好的方式就是讓 Subversion 做為一個(gè)服務(wù)來(lái)運行,我們可以通過(guò)一個(gè)第三方的工具 SVNService 讓 Subversion 以 Windows 服務(wù)的方式運行。 到 http://dark.clansoft.dk/~mbn/svnservice/ 下載SVNService.zip并把它解壓到{Subversion}\bin目錄下,通過(guò)運行 svnservice -install -d -r D:\repository\project1 ,執行的結果顯示:SVNService installed. 這時(shí)候你可以在服務(wù)控制臺中看到名為SVNService的服務(wù),啟動(dòng)它就可以了,如果你不想用服務(wù)的方式啟動(dòng)Subversion,你可以運行 svnserve -d來(lái)啟動(dòng)Subversion。 要卸載SVNService服務(wù),只需要運行 SVNService -remove 即可。 至此,Subversion已經(jīng)安裝成功,我們將在接下來(lái)的一節中介紹如何通過(guò)各種客戶(hù)端對資源庫進(jìn)行操作。
一個(gè)版本控制軟件好不好不僅在于服務(wù)器端是否提供足夠強大的功能,同時(shí)有沒(méi)有足夠友好的客戶(hù)端也是非常重要的。 Subversion 本身提供一個(gè)基于命令行的工具 svn,基本上所有的操作都可以通過(guò)這個(gè)工具來(lái)完成,但是用戶(hù)操作界面不太友好。不過(guò)我們可以先使用這個(gè)工具來(lái)驗證一下我們之前安裝的 Subversion 服務(wù)是否已經(jīng)正常工作。接下來(lái)我們先隨便導入一個(gè)項目,并對這個(gè)項目的某些文件進(jìn)行簡(jiǎn)單的修改、提交并重新導出項目,通過(guò)這些基本的操作先來(lái)體驗一下 Subversion。(為了操作方便你最好把{subversion}\bin目錄加到系統的PATH環(huán)境變量中) 1. 導入項目 轉到你的項目所在的目錄,執行下面命令來(lái)提交整個(gè)項目 2. 檢出項目 3. 提交修改后的文件 4. 獲取最新的版本 上面四個(gè)是版本控制環(huán)境中最最基本的操作,不過(guò)這樣的操作環(huán)境你肯定覺(jué)得麻煩,對于使用Eclipse環(huán)境進(jìn)行開(kāi)發(fā)的朋友來(lái)講,接下來(lái)我們介紹一個(gè) Eclipse的插件Subclipse,該插件提供對Subversion服務(wù)的操作支持。你可以單獨下載該插件的壓縮包進(jìn)行本地更新或者通過(guò) Eclipse Update進(jìn)行遠程安裝,遠程安裝的URL是 http://subclipse.tigris.org/update ,相信大家對Eclipse Update已經(jīng)了如指掌,這里不再羅嗦。 檢查一下插件有沒(méi)有安裝成功吧,打開(kāi)菜單Windows->Preferences->Team檢查是否有SVN節點(diǎn),點(diǎn)擊SVN即可看到該插件的設置界面如下圖所示: ![]() 保持默認的設置即可,接下來(lái)我們通過(guò)該插件將一個(gè)項目導入到Subversion服務(wù)器中,右擊項目名->Team->Share Project…打開(kāi)項目共享對話(huà)框,對話(huà)框有兩個(gè)選擇,一是Eclipse內置的對CVS的支持,還有另外一個(gè)就是我們剛裝上的SVN。選擇SVN進(jìn)入服務(wù)器設置界面,入下圖 ![]() 需要填寫(xiě)的是服務(wù)器的URL以及用戶(hù)名和口令,服務(wù)器的URL不需要填寫(xiě)項目名稱(chēng),點(diǎn)擊下一步按鈕進(jìn)入項目名稱(chēng)設置 ![]() 在這里可以看到Subclipse會(huì )自動(dòng)給URL加上項目的名稱(chēng)。點(diǎn)擊結束按鈕將出現提交對話(huà)框如下圖 ![]() 選擇你所需要提交的文件或者目錄點(diǎn)擊OK按鈕即可完成項目的導入。接下來(lái)的很多操作跟CVS很類(lèi)似,但是又比CVS的功能強大得多,隨便右擊一個(gè)文件打開(kāi)Team的上下文菜單如下: ![]() 通過(guò)該菜單我們可以看到CVS有的功能在這上面都有,而且還包括可以對文件進(jìn)行加鎖和解鎖操作,同時(shí)還有可以設置文件的屬性,可以通過(guò)SVN Properties視圖查看某個(gè)文件的屬性 ![]() 與CVS不同的是當文件被修改后SVN插件顯示的是一個(gè)星號的小圖標。同樣的,當有些文件你并不想添加到資源庫中的時(shí)候,你也可以像CVS一樣把該文件添加到svn:ignore。Subclipse插件還有更多其他的功能這里不一一介紹了,大家可以在使用的過(guò)程中去發(fā)掘。 以上介紹的針對使用Eclipse開(kāi)發(fā)環(huán)境的人員,但是項目組的一些其他成員例如網(wǎng)頁(yè)設計師,他們怎么來(lái)方便的使用Subversion呢?因此接下來(lái)我們介紹一個(gè)集成在Windows Shell的客戶(hù)端工具TortoiseSVN (http://tortoisesvn.tigris.org/),利用這個(gè)工具也可以非常簡(jiǎn)單的進(jìn)行資源庫的操作。TortoiseSVN的安裝非常簡(jiǎn)單,直接運行安裝程序,按照默認方式安裝即可,安裝完畢需要重新啟動(dòng)系統。 如果沒(méi)什么意外的話(huà),隨便右擊一個(gè)文件即可看到上下文菜單多了一個(gè)菜單項是TortoiseSVN,如果是文件夾還會(huì )有另外一個(gè)項是SVN Checkout…。在使用之前你可以根據自己的喜歡對TortoiseSVN進(jìn)行一些設置,右擊任一文件選擇TortoiseSVN-> Settings即可打開(kāi)設置對話(huà)框如下: ![]() TortoiseSVN的一個(gè)非常有用的工具就是資源庫瀏覽器,在桌面空白位置單擊鼠標右鍵選擇TortoiseSVN->Repo-Browser即可打開(kāi)資源庫瀏覽器如下圖所示: ![]() 通過(guò)該瀏覽器你可以瀏覽資源庫中的所有項目以及項目中每一個(gè)文件的信息。但是怎么做一些日常的操作呢,例如提交、更新等等? 首先我們先看如何從資源庫中檢出(CheckOut)一個(gè)已有的項目,在空白處單擊鼠標右鍵選擇SVN Checkout…菜單項 ![]() 輸入存放項目的文件夾以及項目對應的SVN的URL地址如上圖,點(diǎn)擊OK按鈕后TortoiseSVN會(huì )顯示詳細的進(jìn)度信息 ![]() 轉到存放項目的文件夾即可看到整個(gè)項目的所有文件已經(jīng)被檢出,而且圖標已經(jīng)被替換成TortoiseSVN的圖標,如下圖所示: ![]() 這個(gè)時(shí)候你就可以隨意的修改文件,并在修改后右擊所修改的文件即可進(jìn)行提交或者更新操作。 以上介紹的三種不同的Subversion客戶(hù)端已經(jīng)可以滿(mǎn)足大部分用戶(hù)的要求,同時(shí)三者也可以互為補充。另外Subversion也可以與 Apache HTTP服務(wù)器結合提供基于WebDAV協(xié)議的服務(wù),其在共享方面遠遠超過(guò)了CVS,有興趣的讀者可以閱讀Subversion的文檔進(jìn)行配置。 對正在使用CVS的用戶(hù)來(lái)講,也可以通過(guò)一個(gè)名為cvs2svn的工具來(lái)將已有的項目移植到Subversion中,該工具可以在http://cvs2svn.tigris.org/ 下載。
| ||||||||||||||||||||||||
聯(lián)系客服