1:安裝svn客戶端, 而且在客戶端下,php
能創建倉庫,在本身的硬盤上,建一個庫linux
利用 file:///D:/xx/yy來管理本身的倉庫.apache
2:把svn與apache整合.windows
2.1爲何與apache一塊兒整合?app
答:由於80端口支持普遍.ide
2.2: 整合步驟svn
在windows,選取與apache相適應的subversion的壓縮包,並與apache整合.測試
下載地址:http://sf.net/projects/win32svnui
在linux下,通常是下載源碼.net
地址:http://subversion.apache.org/
2.3:具體操做
2.3-1:解壓win32svn壓縮包,推薦到apache的平級目錄,
並重命名爲svn
注意: 咱們要作的是把svn 當成apache的一個模塊來執行.
和php做爲apache來整合,有相似之處.
2.3-2:複製so
把svn/bin中的
mod_authz_svn.so
mod_dav_svn.so
到apache/modules/下面.
2.3-3: 修改配置文件
apache/conf/httpd.conf
把下面這兩行前的#號去掉
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
而後新增2行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2.3-4: 修改環境變量 ,並重啓,使環境變量生效.
在環境變量中的path裏,加上 svn/bin的路徑.
例; D:\amp\svn\bin
3.1:尋立倉庫目錄
在X盤,例D:/amp
創建倉庫目錄, 例: D:/amp/repo
3.2: 創建倉庫
在D:/amp/repo 下面創建具體的代碼倉庫.
如D:/amp/repo/orange
3.3: 修改配置文件,httpd.conf
目的:使apache可以對特定目錄轉發給svn處理.
具體:在httpd.conf後面加上以下幾句話:
<Location /svn>
DAV svn
SVNParentPath D:/amp/repo
#repo目錄是全部倉庫的上級目錄
</Location>
3.4:測試
經過客戶端 簽出 http://localost/svn/orange
便可把倉庫簽出
=====================權限控制==============
再次httpd.conf
<Location /svn>
DAV svn
SVNParentPath D:/amp/repo
AuthZSVNAccessFile D:/amp/repo/authz
AuthUserFile D:/amp/repo/passwd
# 上述兩行分別表明用戶權限表, 用戶密碼錶.
Satisfy Any
Require valid-user
AuthType Basic
AuthName "hp5qi"
#repo目錄是全部倉庫的上級目錄
</Location>
============生成用戶密碼,及配置用戶權限==========
在apache的bin目錄下面執行!
htpasswd -c D:/amp/repo/passwd stu
# -c表明新建立,若是是第2次及之後再次增長用戶,不要用-c,不然前面的用戶都丟失了.
在authz裏寫權限規則
例: 在D:/repo/orange, 和apple兩個倉庫
[orange:/]
stu = r
dev = rw
[apple:/]
stu = rw
dev = r
* = r
如上配置中,即說明
對於orange倉庫
stu 只讀權限
dev 讀寫權限
apple 倉庫
stu 讀寫權限
dev 只讀
任意用戶 讀權限