1. 程式人生 > >SVN詳細配置與使用 ——一步步教會您使用

SVN詳細配置與使用 ——一步步教會您使用

  專案管理在專案開發活動中起到非常重要的作用,而對於初學者來說學習有一定的難度,且不說如何使用,就是搭建過程恐怕也要費一般周折,介於此下面就通過圖解的方式一步一步詳細的教大家如何使用SVN,你只要耐心的一步步去實踐就能掌握

目錄:

一、SVN介紹

二、SVN伺服器安裝

三、SVN客戶端安裝

四、SVN服務配置

五、SVN客戶使用

六、Eclipse SVN客戶端外掛安裝

一、SVN介紹

  SVN是個自由、開源的版本控制系統,絕大多數開源軟體都使用SVN作為程式碼版本管理軟體。

  SVN的官方網站http://subversion.apache.org/

。目前SVN在開源社群中非常流行的一款版本控制軟體,它是CVS的替代產物。

二、SVN伺服器安裝

  1、下載CollabNetSubversion-server-1.5.6-2.win32

  2、執行安裝程式CollabNetSubversion-server-1.5.6-2.win32 ---------SVN伺服器軟體

  安裝完成後,右鍵選單出現”SNV Checkout”(可將伺服器中的專案簽出到本地),如圖所示

 

三、SVN客戶端安裝

  1、 下載TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi

  2、 執行TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi---------SVN客戶端軟體

  執行LanguagePack_1.5.9.15518-win32-zh_CN.msi------------SVN客戶端軟體漢化包(可選)安裝完成後,右鍵選單出現”TortoiseSVN”,如上圖所示

四、SVN服務配置

方案1:使用命令和手動修改配置檔案

  如果感覺麻煩,可跳過後面的使用方案2

  1、 執行建立目錄  svnadmin create c:\ Repositories

  2、 開啟conf目錄下的authz檔案

  新增組及其使用者accp=user01,user02

  為組使用者設定目錄的讀寫許可權,組前面要用@符,第一個[/]表示目錄,[/]@accp=rw

  3、 編輯passwd檔案

  格式:使用者名稱=密碼

     user01=1234

     user02=1234

  4、開啟svnserverconf

   取消以下幾個註釋

    password-db = passwd

    authz-db = authz

  5、 開機自動啟動SVN

    sc create MySVNServer binpath= "\"C:\ProgramFilesSubversion\svnserve\svnserve\svnserve.exe" --service  -r c:\ Repositories" displayname= "SVNService" depend= Tcpip start= auto

  注意之處

(1)sc是windows自帶的服務配置程式,MySVNServer 是服務的名稱,沒什麼用。

 

(2)引數binPath表示svnserve可執行檔案的安裝路徑,由於路徑中的"Program Files"帶有空格,因此整個路徑需要用雙引號引起來。而雙引號本身是個特殊字元,需要進行轉移,因此在路徑前後的兩個雙引號都需要寫成\" 。

 

(3)--service引數表示以windows服務的形式執行,--r指明svn repository的位置,service引數與r引數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中,而這對雙引號不需要進行轉義。

 

(4)displayname表示在windows服務列表中顯示的名字, depend =Tcpip 表示svnserve服務的執行需要tcpip服務,start=auto表示開機後自動執行。安裝服務後,svnserve要等下次開機時才會自動執行。

 

(5)binPath的等號前面無空格,等號後面有空格 displayname depend start也都一樣。 service前面是--,不是- ,而r前面是-

 

(6)若要解除安裝svn服務,則執行 sc delete svnserve 即可。

 

(7)從“sc”到“auto”是在同一個命令sc,必須寫在同一行。

  6、啟動服務:

    C:\>net start svnservice

    SVNService 服務正在啟動 .

    SVNService 服務已經啟動成功。

  停止服務:

    C:\>net stop svnservice

    SVNService 服務正在停止.

    SVNService 服務已成功停止。

  刪除建立的服務

    C:\>sc delete svn svnservice

方案2:使用視覺化工具

  方案1的確比較麻煩,我們可以使用VisualSVN-Server-1.6.3.msi----------SVN服務配置視覺化工具

  1、下載

  2、執行VisualSVN-Server-1.6.3.msi安裝程式

  3、VisualSVN-Server的使用

  (1)建立版本庫

  主鍵面,表明SVN服務已執行,

 

  Repositories表示版本庫是svn檔案共享的核心,它儲存所有的資料,並對資料進行版本化管理。按照檔案樹形式儲存資料——包括檔案和目錄。安裝SVN Server 時設定版本庫的路徑,預設c:\ Repositories。SVN使用URL來識別版本庫中的資源

  在Repositories下建立Repository組織不同專案的版本庫,例如:

  (2)建立組和使用者

  建立使用者並設定密碼,如圖所示:

  建立組並新增使用者,如圖所示:

  為使用者設定版本庫的讀/寫許可權,選擇其中某個版本庫—>右鍵屬性,彈出許可權設定視窗

  如圖所示:

  選擇組或使用者設定讀/寫許可權,建議刪除預設的Everyone的讀寫許可權

五、SVN客戶使用

  軟體開發團體的一員就是SVN的一個客戶,因此SVN客戶端的使用顯得十分重要,主要操作包括import、check out、add 、commit、update

具體操作如下:

5.1 import入庫操作

5.2 簽出操作

5.3 提交新增新檔案

5.4 提交檔案更新(修改、刪除的檔案)

5.5 更新操作(將SVN伺服器中所有版本變化更新到本地)

5.6 版本衝突的相關操作

5.7 避免衝突方法——加鎖檔案

5.8 版本還原

5.1 import入庫操作

   將初始的專案(專案目錄結構、介面、通用元件、靜態頁面等)匯入版本庫,操作如圖:

  執行import命令彈出import對話方塊,圖中Import對話方塊與Visaul SVN Server視窗

  在URL of repository中輸入或選擇URL(對應版本庫中的資源),注意URL所對應版本庫中的資源的必須存在(如上圖所示),若不存在要首先在VisualSVN中建立(或使用命令方式svnadmin create c:\ Repositories\mycrm),建立成功後c:\ Repositories\mycrm

  產生一些版本庫相關的系統檔案和目錄,如下所示:

  單擊import對話方塊的ok按鈕,按提示輸入使用者名稱和密碼(指在SVN Server設定的賬戶和密碼,可勾選Save authentication以後不再提示),完成後在VisualSVN Server可看到

  這表示你的專案已入庫,處於SVN版本控制中

5.2 簽出操作

  有兩種方式check out 和 export,區別在於:

    ① export 方式僅僅是將版本庫的檔案拷貝到本地而已。

    ② check out 方式獲得檔案後,本地檔案仍處於SVN版本控制中,這一點很重要。這也是主要的一種方式

  在本地目錄下,單擊右鍵選擇選單命令,如圖所示

 

  執行Check out 彈出對話方塊,如圖所示

 

  URL of repository指你要匯出的版本庫,Checkout Directory設定儲存的本地目錄,單擊Ok,匯出完成後可看SVN伺服器版本庫中檔案已遷出到指定的本地目錄下,並且多出.svn目錄這個表示該本地目錄是受SVN伺服器版本化控制的,圖標表示檔案或目錄處於正常狀態

5.3 提交新增新檔案

  在專案中增加一個新檔案,例如在crm專案中新增一個login.html檔案,新增的檔案的圖示為,表示該檔案沒有入庫SVN伺服器無法識別,選擇該檔案單擊滑鼠右鍵執行add命令,將檔案入庫如圖所示

  此時檔案圖示變為表示該檔案已入庫但還未更新,然後執行svn commit命令,從而完成新檔案的版本化處理,如圖所示

5.4 提交檔案更新(修改、刪除的檔案)

  操作和新增新檔案類似,實際上對於本地變化的檔案(包括新增、修改、刪除的檔案)都是執行svn commit命令提交給到SVN伺服器完成版本化處理(該版本號會遞增)。只不過對於新增檔案需要先執行add命令讓SVN伺服器識別該檔案,表示該檔案內容發生變化,可通過選單show Log命令檢視版本的變化,如圖所示

  可以看到新增login.html版本號為2。

5.5 更新操作(將SVN伺服器中所有版本變化更新到本地)

  對於其他使用者(指不是提交變化的使用者),可執行SVN update命令完成將SVN伺服器發生版本變化的檔案更新到本地

  如圖所示:

  通常我們(記住每個人就是SVN的本地客戶)在工作時,會不斷執行SVN Update命令以獲取SVN伺服器中最新的檔案,從而獲得其他人的變更。這也是作為一個專案版本管理軟體最重要的功能之一——及時通知專案的變更

5.6 版本衝突的相關操作

  衝突是指團隊協同工作時,當多人修改同一個檔案,造成本地檔案與SVN系統中的檔案版本不一致,而導致檔案無法提交的情況。例如:user01對temp.txt檔案進行編輯

新增“User01的資料資訊”,User02也對temp.txt檔案進行修改新增“User02的資料資訊”,User01完成後執行SVN Commit,這時User02在執行SVN Commit提交就會產生衝突而提交失敗,如圖所示

  這時(遇到衝突時)需要執行SVN Update更新這個檔案,產生如圖所示的資訊框

  並且會看到新增了三個檔案

  原檔案的圖示變為表示內容含有衝突

    temp.txt.mine(格式:衝突檔名.副檔名.mine)記錄了你的檔名內容

    temp.txt.r7(格式:衝突檔名.副檔名.r版本號)記錄了當前版本的上一個版本內容

    temp.txt.r8(格式:衝突檔名.副檔名.r版本號)記錄了當前版本的內容

  接下來就是如何解決檔案中的衝突,你可以選擇以下方式解決衝突 

 

  5.6.1、手動合併衝突檔案

  開啟temp.txt可以看到

  說明:<<<<<.mine到 >>>>>.r8之間的就是衝突的部分,======之前的是你的內容,=====之後的是當前版本的內容可根據情況進行取捨,然後刪除註釋符號並刪除新增的新增了三個檔案,然後再提交就OK了!

  5.6.2、執行Edit conficts命令解決衝突,如圖所示

  然後彈出如下視窗

  可明顯看出第2行衝突,操作如下:

 

  1、  首先選擇衝突行

  2、單擊工具欄按鈕

    單擊按鈕:

    單擊按鈕:

    單擊按鈕:

    單擊按鈕:

  單擊儲存會看到新增的三個檔案已自動被刪除(如果仍存在手動刪除即可),這時再執行SVN Commit也OK了!

  5.6.3執行revert命令放棄所做的修改,如圖所示

  該命令會自動用當前版本替換你的變化,並刪除三個新增檔案

5.7 避免衝突方法——加鎖檔案

  多人同時操作同一個檔案是產生衝突的根本原因。

  為了減少衝突的發生避免一些不必要的麻煩,通常在變更檔案之前執對該檔案行一次SVN Update操作,但這樣衝突還是會發生的,一個比較有效的方法是對檔案加鎖。其原理很簡單在對檔案變更之前先對檔案上鎖,這是有兩種可能若檔案有鎖(表明有人在編輯)加鎖失敗,若檔案沒有鎖則加鎖成功。一個檔案上鎖後除了自己別人是不能對檔案編輯的,當我們編輯完成之後再解鎖,然後別人就可以加鎖編輯了。這樣就有效的避免了多人同時操作同一個檔案時產生衝突

  5.7.1加鎖

  執行Get Lock…命令,操作如下:

  5.7.2 解鎖

  對已加鎖的檔案執行Release lock命令,如圖所示:

5.8 版本還原

  在開發中有時我們希望將檔案的變更恢復到之前某個版本,這也是一個專案管理軟體必備的功能,對於SVN執行Update to revision.. 命令即可

  比如我們把temp.txt恢復到最初的狀態,目前檔案的內容如下圖所示:

  我們可以先執行Show log檢視temp.txt的版本資訊如圖所示

  可看出最初新增的檔案的版本號18(不是2說明該檔案被刪除過,然後又被重新建立),然後執行Update to revision..命令,如圖所示:

  單擊Ok按鈕,完成後開啟temp.txt檔案可以看到檔案已恢復到初始的內容了

六、Eclipse SVN客戶端外掛安裝

  Eclipse也提供了對SVN支援,但我個人感覺Eclipse提供的SVN客戶端外掛,不如TortoiseSVN好用,但Eclipse是我們開發的環境,因此建議兩個結合起來應用。對於Eclipse提供的SVN客戶端的使用同TortoiseSVN差不多,這裡重點介紹一下在MyEclipse安裝SVN客戶端外掛,站點地址:http://subclipse.tigris.org/

詳細步驟如下:

6.1 安裝

6.2 從SVN伺服器匯入專案

6.3 提交檔案更新

6.4 更新操作(將SVN伺服器中所有版本發生變化的更新到本地)

6.1 安裝

  具體操作:

  Step 1:選擇Help——>SoftwareUpdates——>add/Remove Soft

  單擊ADD按鈕,彈出如下視窗

  Step 2:單擊Add Site,

  在彈出的對話方塊中輸入URL: http://subclipse.tigris.org/update_1.6.x,單擊Ok即可

  Step 3:選擇內容一路Next即可

6.2 從SVN伺服器匯入專案

  具體操作:

  開啟eclipse ,選File——>import——>選SVN,如圖所示:

  在URL中輸入:版本庫的路徑比如https://jb:8433/svn/mycrm ,單擊完成即可

6.3 提交檔案更新

  選擇檔案單擊右鍵,選擇team提交,即可 

6.4 更新操作(將SVN伺服器中所有版本發生變化的更新到本地)

  選擇檔案或目錄單擊右鍵,選擇team-à更新,即可。