技術指導:Widonws下Subversion如何配置
SVN技術安裝,配置下面為相應的步驟,如果又不懂的請留言大家一起來共同討論這些問題~大家的智慧是無窮的。Subversion安裝成service以前的svnserve要想成為windows服務,必須依賴于Svnservice或其他工具。從Subversion1.4開始,Subversion本身就集成Windows服務的工具。SVN技術安裝,配置下面為相應的步驟,如果又不懂的請留言大家一起來共同討論這些問題~大家的智慧是無窮的Subversion安裝成service。
以前的svnserve要想成為windows服務,必須依賴于Svnservice或其他工具。從Subversion1.4開始,Subversion本身就集成Windows服務的工具。
1.安裝Svnservice
在WindowsNT中(包括WindowsXP,Windows2000,Windows2003Server)本身包含了一個安裝服務的工具,叫做"ServiceControl",也就是sc.exe。
例如我的Subversion安裝在"D:\Subversion",版本庫在"D:\svnroot",而我希望對應的Subversion服務名為Svnservice,安裝這個svn服務的命令就可以這樣寫:
sccreateSvnservice
binpath="D:\Subversion\bin\svnserve.exe--service-rD:\svnroot"
displayname="Svnservice"
depend=Tcpip請注意,因為便于察看,上面的命令分為多行,但在實際執行時應該在一行里。另外,在以前啟動svnserve時會使用"-d"選項,也就是守護進程模式,在這里不能使用,會導致服務無法啟動。同樣,"-i"和"-t"選項也不能使用。
在命令行窗口執行完這個命令之后,服務還沒有啟動,你可以繼續運行"netstartSvnservice"啟動這個服務,然后使用"netstopSvnservice"停止服務。
另外還有兩點需要小心處理。首先,如果路徑中包括空格,一定要用“\”處理“"”號,例如上面的例子中如果svnserve.exe在
“c:\programfiles\subversion\”中,則命令應該寫為“binpath="\"c:\programfiles\subversion\bin\svnserve.exe\"”(“”中的內容),整個命令如下,紅色部分是改變部分:
sccreateSvnservice
binpath="\"D:\programfiles\Subversion\bin\svnserve.exe\"--service-rD:\svnroot"
displayname="Svnservice"
depend=Tcpip其次,sc對選項的格式還有要求,例如“depend=Tcpip”不能寫為“depend=Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必須有空格。
2.刪除服務
如果服務安裝的有問題,你可能需要刪除服務。要刪除前面添加的服務,只需要運行"netstartSvnservice","Svnservice"就是我們創建服務時使用的名字。
3.配置服務是自動啟動
默認情況下安裝的服務不會隨Windows的啟動而啟動,為了使svn服務能夠隨Windows啟動而啟動,需要修改一下"sccreate"命令(首先要刪除),增加"start=auto"選項:
sccreateSvnservice
binpath="D:\Subversion\bin\svnserve.exe--service-rD:\svnroot"
displayname="Svnservice"
depend=Tcpip
start=auto當然你也可以使用圖形化的工具修改服務的屬性,你可以在“開始->運行...”中執行"services.msc",然后在界面中修改。
Subversion的權限控制
1.認證(Authentication)和授權(Authorization)
這兩個術語經常一起出現。其中認證的意思就是鑒別用戶的身份,最常見的方式就是使用用戶名和密碼,授權就是判斷用戶是否具備某種操作的權限,在Subversion里提供了“authz-db”文件,實現了以路徑為基礎的授權,也就是判斷用戶是否有操作對應路徑的權限,在Subversion1.3之后,svnserve和Apache一樣都可以使用“authz-db”文件
2.svnserve下的配置文件
因為本文是以svnserve為例的,所以先介紹一下版本庫目錄的結構:
D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│├─revprops
│├─revs
│└─transactions
├─hooks
└─locks
其中conf下面有三個文件:
authz
passwd
svnserve.conf
其中的“svnserve.conf”是這個版本庫的配置文件,當使用svnserve時,這個配置文件決定了使用什么認證和授權文件:
password-db=passwd
authz-db=authz
上面的配置說明使用“svnserve.conf”同目錄的passwd和authz,其中的password-db指定了用戶密碼文件,authz-db是我們的授權文件,也就是我們本文主要介紹的文件。
注意:使用Apache作為服務器時,根本就不會參考“svnserve.conf”文件的內容,而是會參考Apache的配置。
【編輯推薦】