svn(subversion)是一款的版本管理工具。目前,大多數開源軟體都使用svn作為代碼版本管理軟體。svn除了能記住檔案和目錄的所有修改,還能將檔案恢複到過去的某個版本,並且可以通過檢查曆史知道資料做了哪些修改。簡直是一個“時間機器”。
安裝svn程式
安裝svn
svn下載地址:http://subversion.apache.org/packages.html
本文舉例svn安裝目錄為 C:\Program Files\Subversion
安裝完成後,將 C:\Program Files\Subversion\bin 添加的系統內容變數path 中,可能系統會自動添加環境變數。
然後,重啟機子。
建立本地svn
建立svn庫
這裡樣本svn庫地址 D:\svn\repository(檔案夾要存在,否則後面的svn命令會失敗)
cmd中使用命令 svnadmin create D:\svn\repository
命令完成後,在D:\svn\repository目錄上,svn建立了多個檔案夾,如conf,dav,db等等。
添加使用者
進入D:\svn\repository\conf檔案夾,編輯svnserve.conf檔案,去除password-db = passwd 前的注釋符#(前面不能有空白),表明密碼從 passwd 中擷取。
然後再編輯 passwd 檔案,在[users]下面添加使用者名稱,比如修改如下:
複製代碼 代碼如下:
[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456
表明添加了一個使用者,使用者名稱為test,密碼為123456
註冊svn到系統服務
cmd中使用以下命令:
複製代碼 代碼如下:
sc create svnserve binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svn\repository" depend= Tcpip start= auto
sc start svnserve
到這裡,svn應該搭建完畢了。訪問地址:svn://localhost
svn的配置最佳化
匿名訪問
預設svn是可匿名訪問的,唯讀操作。修改如下:
修改D:\svn\repository\conf\svnserve.conf 檔案,將 anon-access = read 改成 anon-access = none
讀寫權限
預設svn是開放所有目錄許可權的。修改如下:
修改 D:\svn\repository\conf\svnserve.conf 檔案,去除authz-db = authz 前的注釋符#(前面不能有空白),表明授權從 authz 中擷取。
然後再編輯 authz 檔案,修改如下:
複製代碼 代碼如下:
[/]
test = rw
test2 = rw
* =
[/secret]
test2 =
表明 test 全部目錄都可以讀寫,test2 只能讀寫非secret目錄的所有內容,其他使用者則沒有授權。
svn連接埠
svn預設連接埠是3690,如何修改svn連接埠,如下:
複製代碼 代碼如下:
sc create svnserve8888 binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\svn\repository --listen-port 8888" depend= Tcpip start= auto
sc start svnserve8888
訪問地址:svn://localhost:8888/
svn列表
svn列表可以通過Apache產生,用於在瀏覽器訪問svn內容,如下:
1、將C:\Program Files\Subversion\bin下的 mod_dav_svn.so 和 mod_authz_svn.so, 複製到apache的 modules 檔案夾下
2、修改 apache 設定檔 httpd.conf:
1)去掉下面兩項前面的注釋符#:
複製代碼 代碼如下:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
2)添加下面內容:
複製代碼 代碼如下:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNPath D:/svn/repository
</Location>
重啟Apache後,Apache會產生svn列表,訪問地址:http://localhost/svn