天天看點

subversion入門

安裝

一、 擷取資源

(1)apache Http Server 2.0.55 用于和 SVN 整合

下載下傳位址 http://httpd.apache.org/download.cgi

(2)Setup-Subversion-1.6.6.msi SVN 伺服器端

下載下傳位址 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91

(3)TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi SVN 的用戶端

下載下傳位址 http://tortoisesvn.net/downloads

(4)LanguagePack_1.3.2_zh_CN.exe tortoise 的語言包

下載下傳位址

http://cdnetworks-kr-1.dl.sourceforge.net/project/tortoisesvn/Language%20Packs/1.6.6/LanguagePack_1.6.6.17493-win32-zh_CN.msi

(5)SVNService.zip SVN 的一個第三方工具,将 SVN 用做 windows 背景服務

如果是在win下,推薦 visualSVNServer 一站式服務,setup以後自動裝好apache和svn,還提供管理界面,可以友善的配置權限。

二、 安裝

上面的 1 、 2 、 3 、 4 均為直接安裝即可,注意在安裝完 3 再安裝四的時候要重新開機一下,然後将 5 解壓到 2 中安裝目錄下的 bin 目錄中。至此安裝完畢

三、 配置

沒什麼好特别配置的。基本上安裝好了就可以使用,使用方式是用 3 的用戶端工具選擇一個空的檔案夾右鍵 ---- à 在此建立檔案庫。一個 SVN 的倉庫檔案就建立完畢。因為要考慮到後面的 apache 的整合是以建議名字不要太專一性,然後轉到項目或者你想加入版本控制的檔案或者檔案夾上面,點右鍵選擇導入,在彈出的對話框裡面輸入倉庫位址,執行導入完畢後一個完整的檔案版本誕生了。

注意:在導入時 3 中的用戶端預設是導入目前檔案夾的子檔案夾,是以如果你想将目前目錄也導入的話,請将他放入一個檔案夾内再執行導入操作。

然後是倉庫的配置:轉到倉庫目錄的 conf 中,尋找 svnserve.conf 檔案并将其中的

[general]

anon-access = read

auth-access = write

password-db = passwd

realm = My First Repository

前面的 # 号去掉,然後去掉他前面的空格。儲存。

這裡的意思是: anon-access 指 匿名通路的權限,可以是 read,write,none, 預設為 read

auth-access 指 認證使用者的權限,可以是 read,write,none, 預設為 write

password-db 指 密碼資料庫的路徑,去掉前面的,存的是認證使用者的使用者名和密碼, username=passwd

然後是修改 passwd 檔案

1. 去掉 [users] 前面的 #, 否則 svn 隻能以匿名使用者登入,用戶端不會出現登入視窗,除非你的 anon 不為 none, 否則将傳回一個錯誤。

2. 添加使用者名和密碼 username=password

四、 啟動 SVN 伺服器

對于單個代碼倉庫

啟動指令 svnserve -d -r /home/svnrepo --listen-host 192.168.100.200

其中 -d 表示在背景運作, -r 指定伺服器的根目錄,這樣通路伺服器時就可以直接用 svn:// 伺服器 ip 來通路了。如果伺服器有多 ip 的話 --listen-host 來指定監聽的 ip 位址 .

我們可以在 svn 用戶端中通過 svn://192.168.100.200 來通路 svn 伺服器

對于多個代碼倉庫 , 我們在啟動時也可以用 -r 選項來指定伺服器根目錄 , 但通路時需要寫上每個倉庫相對于 svn 根目錄的相對路徑 .

比如 , 我們有兩個代碼倉庫 /home/repoa 和 /home/repob, 我們用 svnserve -d -r /home --listen-host 192.168.100.200 來啟動 , 那麼在用戶端通路時可以用 svn://192.168.100.200/repoa 和 svn://192.168.1.200/repob 來分别通路兩個項目

啟動完成以後 , 我們可以用 ps aux|grep svnserv 來檢視是否存在 svnserve 程序 .

在server端,建立一個目錄用來存放所有的倉庫。比如E:\svnrepos。然後在這個目錄下建立每個項目獨立的倉庫。

svnadmin create "E:\svnrepos\xm1"

svnadmin create "E:\svnrepos\xm2"

五、 開放伺服器端口

svn 預設端口是 3690 ,你需要在防火牆上開放這個端口。

也可以通過 svnserve 的 --listen-port 選項來指定一個已經開放的其他端口 , 不過這樣的話用戶端使用也必須家上端口 , 如 svn://192.168.100.200:9999/ 。

六、SVNService(将svn作為windows服務運作的工具)

SVN Service Wrapper for Windows

This is my Win32 Service wrapper for SVN. Source is included, and its in the public domain. No need to copyright this stuff.

Usage instructions:

SVNService -? to display this list

SVNService -install <svnserve parameters> to install the service

SVNService -setup <svnserve parameters> to change command line parameters for svnserve

SVNService -remove to remove the service

SVNService -debug to run as a console app for debugging

将svnservice.exe放在subversion的bin目錄下

Example:

比如,你的所有項目都在c:\svnrepo下,你可以如下

安裝時用 SVNService -install -d -r c:\svnrepo

更改時用 SVNService -setup -d -r c:\otherplace\svnrepo

如果通路其中的一個項目c:\svnrepo\project1,可以指定路徑

svn://localhost/project1 (注:作為url時用/)

第一次安裝完後要到服務中手動啟動它,

或者到服務中将它設為自動啟動,讓每次機器啟動時自動啟動這個服務。