搭建SVN服務

搭建SVN服務,有效的管理代碼,以下三步可以快速搞定。
1、安裝

#yum install subversion

判斷是否安裝成功
#subversion -v

svnserve, version 1.6.11 (r934486)
出現上面的提示,說明安裝成功。

如果提示如下:-bash: subversion: command not found
經過查找發現:
[root@]# svnserve --version
svnserve, version 1.6.11 (r934486)
compiled Apr 11 2013, 16:13:51

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

  • fs_base : Module for working with a Berkeley DB repository.
  • fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

有了SVN軟件後還需要建立SVN庫。
#mkdir /opt/svn/repos
#svnadmin create /opt/svn/repos
執行上面的命令後,自動在repos下建立多個文件, 分別是conf, db,format,hooks, locks, README.txt。

2、配置

 上面的操作很簡單,幾個命令就搞定, 下面的操作也不難。
 進入上面生成的文件夾conf下,進行配置,   有以下幾個文件authz, passwd, svnserve.conf
  其中authz 是權限控制,可以設置哪些用戶可以訪問哪些目錄,   passwd是設置用戶和密碼的,    svnserve是設置svn相關的操作。

2.1先設置passwd

[users]

harry = harryssecret

sally = sallyssecret

hello=123
用戶名=密碼

這樣我們就建立了hello用戶, 123密碼

2.2 再設置權限authz

[/]
hello= rw

意思是hello用戶對所有的目錄有讀寫權限,當然也可以限定。
如果是自己用,就直接是讀寫吧。

2.3最後設定snvserv.conf

anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = password
authz-db = authz # 訪問控制文件
realm = /opt/svn/repos # 認證命名空間,subversion會在認證提示裏顯示,並且作爲憑證緩存的關鍵字。
採用默認配置. 以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.

好了,通過以上配置,你的svn就可以了。

3、連接

啓動svn: svnserve -d -r /opt/svn/repos

如果已經有svn在運行,可以換一個端口運行
svnserve -d -r /opt/svn/repos --listen-port 3391

這樣同一臺服務器可以運行多個svnserver

好了,啓動成功後,就可以使用了。
建議採用TortoiseSVN, 連接地址爲: svn://your server address (如果指定端口需要添加端口 :端口號)

連接後可以上傳本地的文件,有效的管理你的代碼。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////

一,Subversion有兩種運行方式
一種是基於Apache Http Server,另外一種是Subversion Standalone Server。

以下是基於httpd的svn的安裝

二,安裝svn

yum install subversion mod_dav_svn

1),確定已經安裝了svn模塊:mod_dav_svn

[root@svn zhangying]# cd /etc/httpd/modules/
[root@svn modules]# ls |grep svn
mod_authz_svn.so
mod_dav_svn.so
[root@svn modules]#

2),看一下svn是否已安裝成功

[root@svn modules]# svn --version
svn, version 1.4.2 (r22196)
compiled Aug 10 2009, 18:00:04

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

  • ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  • handles 'http' scheme
  • handles 'https' scheme
  • ra_svn : Module for accessing a repository using the svn network protocol.
  • handles 'svn' scheme
  • ra_local : Module for accessing a repository on local disk.
  • handles 'file' scheme

三,創建倉庫,修改svn配置文件

1),加載模塊

[root@svn conf.d]#cd /etc/httpd/conf.d

[root@svn conf.d]# vi subversion.conf

添加以下二行

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

2),創建倉庫,以及倉庫目錄的設置

mkdir -p /var/www/svn

cd /var/www/svn

svnadmin create test

chown -R apache.apache test

vi /etc/httpd/conf.d/subversion.conf

<Location /svn>
DAV svn
#注意,下面的路徑,子文件夾名不能和父文件名重複,不然就會出問題

SVNParentPath /var/www/svn
#

Limit write permission to list of valid users.

<LimitExcept GET PROPFIND OPTIONS REPORT>

Require SSL connection for password protection.

SSLRequireSSL

#
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile /var/www/svn/repository/authz.conf
AuthUserFile /var/www/svn/repository/authfile
Require valid-user

</LimitExcept>

</Location>

3),添加用戶

下面建立可訪問用戶文件

htpasswd -c /var/www/svn/repository/authfile 用戶名要增加用戶,則使用下面命令

htpasswd /var/www/svn/repository/authfile 用戶名

//第一次設置用戶時使用-c表示新建一個用戶文件。回車後輸入用戶密碼,完成對用戶的增加
當你用頁面訪問svn時,apache要進行的密碼確認

4),權限分限

nano /var/www/svn/repository/authz.conf

[test:/] //這表示,倉庫test的根目錄下的訪問權限
zhangy = rw //test倉庫zhangy用戶具有讀和寫權限
hunk = r //test倉庫hunk用戶具有讀權限
[/] //這個表示在所有倉庫的根目錄下

  • = r //這個表示對所有的用戶都具有讀權限
    #[groups] //這個表示羣組設置
    #svn1-developers = zhangy, hunk //這個表示某羣組裏的成員
    #svn2-developers = zhangy
    #[svn1:/]
    #@svn1-developers = rw //如果在前面加上@符號,則表示這是個羣組權限設置
    搞好之後重起apache

    service httpd restart

5),svn的一些操作check out操作
[[email protected]] cd /var/www
[[email protected]] svn co http://127.0.0.1/svn/test /var/www/html

updatet操作
[[email protected]] cd /var/www
[[email protected]] svn update
edit和commit操作
[[email protected]] cd /var/www
[[email protected]] vi test.txt -- 修改一些東西后.
[[email protected]] svn commit -m "Added a line to test.txt."
Sending test/test.txt
Transmitting file data .
Committed revision 2.

add和delete操作[[email protected]] cd /var/www
[[email protected]] vi test2.txt -- 添加一個新文件.
[me@mylappy ~] svn add test2.txt
A test2.txt

[me@mylappy ~] svn commit -m "new one"
Adding test2.txt
Transmitting file data .
Committed revision 3.

刪除操作把add換成delete就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章