SVN完整安裝及簡略使用

來源:互聯網
上載者:User

安裝

一、             擷取資源

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

(2)       svn-1.3.2-setup.exe    SVN 伺服器端

(3)       TortoiseSVN-1.3.2.5840-svn-1.3.0.msi   SVN 的用戶端

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

(5)       SVNService.zip    SVN 的一個第三方工具,將 SVN 用做 windows 後台服務

二、             安裝

上面的 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 進程 .

五、        開放伺服器連接埠

svn 預設連接埠是 3690 ,你需要在防火牆上開放這個連接埠。

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

六、        與 apache 的整合

各種存取 repository 的方法

SVN 設計時已經把 repository 的存取抽象化了,所以理論上,只要是可以進行資料傳送的方法或通訊協定,就可以用來存取 repository。

實際上,SVN 目前能支援的存取方法還是有限的,不過也比它的前輩 CVS 多了一些,而且未來還可以繼續擴充。 SVN 存取 repository 的方法要在 URL 的通訊協定部分指定,可以有:

file:///

直接存取本地檔案系統裡的 repository。

http://

透過支援 SVN 的 Apache 伺服器 (以 module 的形式),以 WebDAV 存取

https://

一樣是用 WebDAV,但加上 SSL

svn://

以自訂的通訊協定,連接 svnserve 來存取 repository

svn+ssh://

和 svn:// 一樣,但透過 ssh 協定作 tunnel

 

另一種比較常用的使用SVN的方式是將其與apache整合。通過http協議來存取碼,通過web介面來瀏覽察看,通過http伺服器的安全控制來進行許可權認證。

安裝要點記錄如下:

0 假設安裝Apache至D:\Apache2

1 複製%SVN_HOME%\bin\libdb42.dll、libeay32.dll、以及 ssleay32.dll到%APACHE_HOME%\bin

2 複製%SVN_HOME%\httpd\*.so到%APACHE_HOME%\modules

3 修改%APACHE_HOME%\conf\httpd.conf,增加或修改:

    LoadModule dav_module modules/mod_dav.so

    LoadModule dav_fs_module modules/mod_dav_fs.so

    LoadModule dav_svn_module modules/mod_dav_svn.so

    LoadModule authz_svn_module modules/mod_authz_svn.so 

4 在<VirtualHost>中增加/svn的<Location>

    <Location /svnserver>

DAV svn

SVNPath D:/SVNDIR/taowap

</Location>

5 重起apache,通過瀏覽器訪http://localhost/svnserver可看到Subversion的資訊。 

在存取控制的方面,可以採用windows域使用者身分識別驗證。此處也可以用mysql,passwd檔案,LDAP等其他任何Apache支援的驗證方式。

此處我採用檔案方式,首先建立一個儲存密碼的檔案,如果不需要對密碼加密,可增加-p參數產生plain text。

%APACHE_HOME%\bin\htpasswd –c -p d:\passwd\passwords user1

產生的檔案內容如下:

    # 格式username:password

    user1:123456

如果要按照Group的方式來控制許可權,可同時建立一個groups檔案,內容如下:

    # 格式:GroupName: username1 username2

    svngroup: user1 user2

在httpd.conf中的/svnserver處增加許可權控制部分:

    <Location /svnserver>

    DAV svn

    # 指向SVN Repository的ROOT

    SVNPath d:/svnrepo

   

    AuthType Basic

    AuthName "Subversion Repository"

    AuthUserFile d:/passwd/passwords

    AuthGroupFile d:/passwd/groups

    Require group svngroup

    </Location>

重起伺服器,瀏覽http://localhost/svnserver,出現安全對話方塊,輸入使用者名稱密碼即可成功。 

七: 附: svnserve [ 選項 ]
有效選項:
 -d [--daemon]            : 後台模式
 --listen-port arg        : 監聽連接埠(後台模式)
 --listen-host arg        : 監聽主機名稱或 IP 位址(後台模式)
 --foreground             : 在前台運行(調試時有用)
 -h [--help]              : 顯示這個協助
 --version                : 顯示版本資訊
 -i [--inetd]             : inetd 模式
 -r [--root] arg          : 服務根目錄
 -R [--read-only]         : 不贊成;使用檔案庫設定檔
 -t [--tunnel]            : 隧道模式
 --tunnel-user arg        : 隧道使用者名稱(模式是目前使用者 UID 的名字)
 -T [--threads]           : 使用線程代替進程
 -X [--listen-once]       : 監聽一次(調試時有用)

 

參考:http://doc.zoomquiet.org/data/20050617140221/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.