您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 > cvs
從CVS到SVN
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/7 17:20:27 ] 推薦標(biāo)簽:CVS SVN

集中式代碼管理的核心是服務(wù)器,事實(shí)上,SVN的版本庫(kù)的確是一種文件服務(wù)器,但不是“一般”的文件服務(wù)器。SVN版本庫(kù)的特別之處在于,它會(huì)記錄每一次改變:每個(gè)文件的改變,甚至是目錄樹(shù)本身的改變,例如文件和目錄的添加、刪除和重新組織。一般情況下,客戶(hù)端從版本庫(kù)中獲取的數(shù)據(jù)是文件系統(tǒng)樹(shù)中的新數(shù)據(jù)。但是客戶(hù)端也具備查看文件系統(tǒng)樹(shù)以前任何一個(gè)狀態(tài)的能力。版本控制系統(tǒng)的核心問(wèn)題,設(shè)計(jì)用來(lái)記錄和跟蹤數(shù)據(jù)變化的系統(tǒng)。

二、在Windows下使用Subversion的客戶(hù)端程序SVN

1,Subversion體系結(jié)構(gòu)
采用了B/S與C/S相結(jié)合的方式。B/S結(jié)構(gòu),通過(guò)瀏覽器訪問(wèn)倉(cāng)庫(kù)。C/S結(jié)構(gòu),安裝Tortoise SVN后,訪問(wèn)倉(cāng)庫(kù)。
2, 安裝SVN時(shí)注意
svn服務(wù)器有獨(dú)立服務(wù)器和借助apache運(yùn)行2種運(yùn)行方式。存儲(chǔ)版本數(shù)據(jù)有BDB(一種事務(wù)安全型表類(lèi)型)和FSFS(一種不需要數(shù)據(jù)庫(kù)的存儲(chǔ)系統(tǒng)) 兩種方式。因?yàn)锽DB方式在服務(wù)器中斷時(shí),有可能鎖住數(shù)據(jù),所以還是FSFS方式更安全一點(diǎn)。下載安裝SVN成功后,在檔案管理內(nèi)按下鼠標(biāo)右鍵可以看到:
 
大部分的Tortoise SVN的操作都是透過(guò)檔案管理員及鼠標(biāo)右鍵可以完成了。
假設(shè)您的要放置Repository的地方是E盤(pán)。您需要先建立一個(gè)空的目錄(文件夾) svn_repo。SVN沒(méi)有限定Repository目錄名稱(chēng),您可以建立任何您自己喜歡的名稱(chēng),建議勿使用非英文的檔名。透過(guò)您的檔案管理員,在E:svn_repo的圖標(biāo)上,按鼠標(biāo)右鍵后,選擇TortoiseSVN->Create repository here,如圖:
 
使用的Repository數(shù)據(jù)庫(kù)格式選擇FSFS,直到出現(xiàn)SVN repository成功的建立的提示。接下來(lái)是要把你的檔案?jìng)浞葸M(jìn)來(lái)。日后,只要需要使用這個(gè)repository,我們可以使用file:///E:/SVN_REPO表示它。SVN是透過(guò)這種URL的方式與Repository取得聯(lián)系的。各種URL的格式如下:
file:///磁盤(pán)驅(qū)動(dòng)器|/repository所在目錄/子目錄
http://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄
https://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄
svn+ssh://賬號(hào)@服務(wù)器名稱(chēng)/ repository所在目錄/子目錄
其中,http表示使用一般的超文字傳輸通訊協(xié)議。https表示使用加密的超文字傳輸通訊協(xié)議。svn+ssh表示透過(guò)SSH加密通訊的管道,進(jìn)行存取。
3,建立一個(gè)Working目錄
所謂的Working目錄,是平常用來(lái)存放工作檔案的地方。通常我們會(huì)等到自己的工作做的一個(gè)段落的時(shí)候再進(jìn)行備份。所以我們平常都是在 Working目錄下面工作,等到適當(dāng)時(shí)機(jī)在commit到repository中。舉例來(lái)說(shuō),我們?cè)贒盤(pán)下面建立一個(gè)名為working的空的文件夾,在檔案管理員中按右鍵,選擇SVN checkout,看到如下的畫(huà)面:
 
首先我們要填入的是repository的位置,對(duì)于SVN來(lái)說(shuō),repository的位置都是URL。Checkout directory這個(gè)字段指向您的working目錄。確認(rèn)后按下OK按鈕即可。您將會(huì)看到working目錄下面多了一個(gè)名為.svn的目錄(這個(gè)目錄是隱藏的) 。 SVN會(huì)在您的工作目錄下,以及其子目錄下建立這個(gè).svn子目錄。注意,不要進(jìn)去或改動(dòng).svn目錄下的任何內(nèi)容,否則會(huì)造成SVN無(wú)法正常運(yùn)作。
由于原來(lái)的repository是空的,所以working目錄也是空的。如果您現(xiàn)在checkout的是一個(gè)已經(jīng)有內(nèi)容的repository,您將會(huì)看到working目錄下面現(xiàn)在多了許多目錄及檔案。如果您要在一個(gè)已經(jīng)存在的SVN Server上面checkout出上面的檔案,只需要給定正確的URL以及working目錄的名稱(chēng),可以取得指定的檔案及目錄了。
4,新增檔案及目錄到Repository中
假設(shè)您開(kāi)發(fā)的程序?qū)⒎旁谇懊娼⒌膚orking目錄下面的my_ prj子目錄。編輯好檔案后,在my_prj目錄上面,按鼠標(biāo)右鍵,選擇TortoiseSVN->Add,如圖:
 
接著,TortoiseSVN會(huì)把準(zhǔn)備要加入的檔案及目錄,顯示給您看。打勾的是等下要被加入到Repository中的。如果您有某些檔案或是目錄不想在這次加入,您可以讓該項(xiàng)目不要被勾選。如此,它不會(huì)被加入到Repository去。 注意:Add的動(dòng)作并未真正的將檔案放到Repository中。僅僅是告知SVN準(zhǔn)備要在Repository中放入這些檔案。此時(shí),查看這些檔案,應(yīng)該會(huì)看到一個(gè)白色紅底的驚嘆號(hào)在檔案文件夾的下方,表示您的working目錄中的檔案與Repository中的檔案還沒(méi)有同步。我們要多一個(gè)commit的動(dòng)作,讓這些檔案真正的放入到 Repository中。在my_prj目錄上或是my_prj目錄內(nèi)的空白處按下鼠標(biāo)右鍵,選擇SVN commit。如下的窗口出現(xiàn):
 
在這個(gè)窗口中,下半部會(huì)列出一個(gè)清單,讓您清楚的了解到哪些檔案要被commit到repository中。如果您有檔案不想在這個(gè)時(shí)候commit到Repository,您可以取消選取的檔案。 在檔案列表的上方的Message欄里輸入本次commit的目的,這是十分重要的字段,當(dāng)您commit的次數(shù)很多時(shí),可以靠這個(gè)訊息知道版本與版本之間的差異。到先前的folder中,確定所有的檔案圖標(biāo)都有綠色勾勾在上面,這樣代表您的檔案都正確無(wú)誤的到repository中。有時(shí)候,因?yàn)閃indows本身的問(wèn)題,您可能會(huì)看到有些圖標(biāo)沒(méi)有變成綠色的勾勾,多按F5幾次,可以解決這個(gè)問(wèn)題。
NOTE:新增的檔案要經(jīng)過(guò)提交(Commit)的動(dòng)作才回真正的放入Repository中。
5,更新檔案及目錄
由于版本控制系統(tǒng)多半都是由許多人共同使用,所以同樣的檔案可能還有人會(huì)去進(jìn)行編輯。為了確保您工作目錄中的檔案與Repository中的檔案是同步的,建議您在編輯前都先進(jìn)行更新的動(dòng)作。在想要更新的檔案或目錄圖標(biāo)上按鼠標(biāo)右鍵,并且選擇SVN Update。會(huì)顯示有哪些文件更新了。如果沒(méi)有看到檔案更新的相關(guān)信息,這表示您的目錄中的檔案已經(jīng)是新的,無(wú)須進(jìn)行更新。
有時(shí)我們需要回溯至特定的日期或是版本,這時(shí)可以利用SVN的Update to revision的功能。在這個(gè)Update窗口中,您可以選擇更新到新版本(HEAD)。也可以選擇更新到某個(gè)指定的版本(Revision);虬聪耂how log按鈕,回顧歷史版本。
 

上一頁(yè)12345下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd