搭建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 //如果在前面加上@符號,則表示這是個羣組權限設置
搞好之後重起apacheservice 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就可以了