1. 程式人生 > >SVN本地伺服器搭建及在Eclipse中的應用

SVN本地伺服器搭建及在Eclipse中的應用

0.說明
在程式開發的時候會有很多的版本,通過手動備份的方式不緊麻煩而且低效易出錯。使用SVN來管理版本會方便很多,雖然有一些學習成本,但是學會使用之後會使得開發更加的高效。
本文介紹如何在本地搭建svn伺服器以及在eclpise中使用svn外掛來管理原始碼。
1.安裝本地svn伺服器
=> 下載svn本地伺服器安裝程式:官網下載地址->http://tortoisesvn.net/downloads.html
=> 根據你的OS型別和版本下載對應的程式,本文介紹win32版本。
win32-1.8.8版本快捷下載連線(可使用下載工具)->http://sourceforge.net/projects/tortoisesvn/files/1.8.8/Application/TortoiseSVN-1.8.8.25755-win32-svn-1.8.10.msi
=> 安裝到本機。
=> 程式預設語言是english,如果需要其它語言,在上面的網址也能找到語言包。這裡是32位簡體中文的語言安裝包->http://downloads.sourceforge.net/tortoisesvn/LanguagePack_1.8.8.25755-win32-zh_CN.msi?download&crazycache=1
=> 如果程式或者語言包下載不了,可以嘗試使用下載工具,或者嘗試科學上網。


2.建立版本庫
=> 在本地磁碟建立一個空資料夾,作為本地版本庫(可以看作是個倉庫,裡面放各個版本的工程檔案)。如新建:F:\SVN\Repository
=> 在Repository上右擊->TortoiseSVN->create repository here->然後會彈出對話方塊告訴你The repository was successfully created.然後還問你要不要建立預設的目錄結構(trunk/branch/tags)主幹/分枝/標籤,可以選擇建立,然後會彈出對話方塊告訴你建立成功。
=> 點選OK關閉對話方塊。


3.配置使用者和許可權
=> 開啟F:\SVN\Repository\conf,其中的svnserve.conf檔案儲存伺服器的一些設定,passwd檔案儲存使用者名稱和密碼。通過修改這些配置檔案來配置使用者和許可權。
=> 通用說明:1.這些檔案可以用任意文字編輯器開啟。2.檔案內容中以#開頭的行都是註釋掉的,可以通過去掉#來啟用。3.文中的英文內容很清楚的說明了某一項是做什麼的,如果不明白可以讀一下。
=> 開啟svnserve.conf,需要配置的是[general]小節中的三個屬性。
anon-access = none
auth-access = write
password-db = passwd
含義是:
未驗證使用者無任何許可權 (如果把none修改為read就是給予讀許可權)
已驗證使用者給予寫許可權 (當然也能讀)
指定password-db的位置(賬戶密碼檔案的位置,passwd在同目錄所以直接寫passwd,如果在其它目錄,可以加上路徑,如password-db = ../account/passwd)
=>  開啟passwd檔案,設定[users]小節-> 新增一行 admin = admin
含義是:使用者名稱admin,密碼admin


4.執行獨立伺服器
=>  舊版的svn需要用到svnservice.exe,新版改在dos(cmd)操作視窗下用sc命令建立伺服器並開啟服務。
=>  建立一個批處理檔案(.bat),在其中寫上:
---------以下--------
REM ===建立svn服務===
sc create svnservice binPath= "C:\Program Files\TortoiseSVN\bin\svnserve.exe --service -r F:\SVN\Repository" DisplayName= "svnservice" depend= Tcpip start= auto
REM ===開啟svn服務===
net start svnservice
pause
---------以上--------
含義:binPath路徑代表svn的安裝目錄下的svnserve.exe檔案路徑;
-r為root的簡寫,F:\svn\repository是前面配置的版本庫路徑;
DisplayName是設定svn服務的名稱;
start=auto為將svn服務設定成開機啟動!
=> 另附:
A. 停止服務
使用"net stop svnservice"停止服務。
B.刪除服務
如果服務安裝的有問題,你可能需要刪除服務。要刪除前面新增的服務,只需要執行"sc delete svnservice"。
另:如果出錯,提示為 sc openSCManager 錯誤 5 ,原因是因為許可權不足。在執行CMD的時候使用管理員許可權,或者執行bat檔案時,使用管理員身份。

5.初始化匯入
匯入需要版本控制的工程檔案到svn版本庫:
=> 在需要匯入的工程資料夾上點右鍵-> TortoiseSVN-> Import,然後在URL欄中填入svn://localhost/folderName
=> (folderName是隨意取的,確定之後,以後svn操作路徑就是這條了!),點確定後會讓你輸入使用者名稱和密碼(第3步的設定),輸入正確後就會提示檔案正在匯入.
=> <font color="red">錯誤處理:如果在這裡遇到“由於目標計算機積極拒絕,無法連線”的錯誤,那麼肯定是你的svnserve服務沒有開啟,執行第4步就好了。</font>
=> 需要注意的是,這裡是svn檔案庫與svn服務是同一臺計算機的情況, 所以可用localhost, 其它機器如果要訪問svn服務, 應該用svn://svn伺服器的IP地址, 例如svn://192.168.1.125


6.匯出和提交
=> 在磁碟(你的workspace)中建立一個空的資料夾,用來檢出(checkout)版本庫中已經提交的最新的程式碼。例如新建 D:\workspace\myproject
=> 在新建的空資料夾上右擊-> SVN  Chcekout-> 然後選擇版本庫路徑(第5步中提交的路徑)->點選OK後會看到程式碼被檢出到當前資料夾中,並顯示版本號。
=> 修改檢出的原始檔後,在資料夾上右擊,先SVN Update,將版本庫中的內容更新到本地,然後SVN Commit,將本地版本提交到版本庫中。
=> 提交到版本庫中之後,本地檔案可以隨意刪除,在其它地方新建空資料夾,然後就可以從respository中checkout出最新程式碼。


7.Eclipse中安裝svn外掛
=> 開啟Eclipse->help->Install New Software->add
name:subclipse 1.6.x
url:http://subclipse.tigris.org/update_1.6.x
->OK
=> 選中subclipse,點選finish,一直NEXT直到安裝結束。


8.Eclipse中匯出/匯入專案
=> 在需要匯出到版本庫中的專案上點右鍵-> Team-> Share Project-> 選擇SVN(如果無效就雙擊)-> next-> 填入需要匯入庫的URL,如svn://localhost/
=> 選擇一個資料夾名(可以使用工程名),然後選擇註釋,點選next到finishe。

=> 然後可以在工程上右鍵->Team->可以選擇update或者commit,同步驟6的操作。

9.常見錯誤解答

=>在Eclipse的Svn資源研究庫中建立repository時,可能會出現 **malformedfile,svnserve.conf:12: Option expected
為什麼會出現這個錯誤呢,就是因為subversion讀取配置檔案svnserve.conf時,無法識別有前置空格的配置檔案,所以在第3步的時候,去掉#的時候,應該把#後面的空格也去掉。