Windows 下 SVN 伺服器配置

來源:互聯網
上載者:User

windows系統使我們經常使用的作業系統怎麼才能使用我們現在經常使用的作業系統不變的情況下繼續我們的SVN之旅,我們在綜合了好動種方法的同時感覺這些內容非常貼近我們SVN在Windows種的應用與配置.

1.下載檔案,

下載最新版本subversion,我這裡選擇svn-1.4.5-setup.exe

下載 "Subversion Windows Service" 軟體包

下載 TortoiseSVN shell integration utility

2.安裝Subversion 伺服器

由於我下載的是setup.exe版本,安裝程式安裝後會自動化佈建系統變數.如果你下載的是zip版就需要手動設定系統變數.

setup.exe版直接安裝就可以了.安裝到D:/Program Files/Subversion

首先建立SVN儲存庫(repository)

svnadmin create F:/svn/

repository建立完畢後會在目錄下產生若干個檔案和檔案夾,dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們儲存內部資料;db目錄就是所有版本控制的資料檔案;hooks目錄放置hook指令檔的目錄;locks用來放置Subversion檔案庫鎖定資料的目錄,用來追蹤存取檔案庫的用戶端;format檔案是一個文字檔,裡面只放了一個整數,表示當前檔案庫配置的版本號碼;

3.配置SVN伺服器

(這個位置就是在你建儲存庫的地方F:/svn)

開啟/conf/目錄,開啟svnserve.conf找到一下兩句:

# [general]

# password-db = passwd

# anon-access = none

# auth-access = write

去之每行開頭的#,其中第二行是指定身分識別驗證的檔案名稱,即passwd檔案.anon-access = none 是匿名使用者不能訪問,必須要有使用者名稱和密碼。(注意:問題就出在這,一定要注意格式去掉注釋後要頂格不能有空)

同樣開啟passwd檔案,將

# [users]

# harry = harryssecret

# sally = sallyssecret

       格式為“使用者名稱 = 密碼”,如可插入一行:admin = admin888,即為系統添加一個使用者名稱為admin,密碼為admin888的使用者

4.運行SVN伺服器

運行SVN服務

在命令列執行

svnserve --daemon --root F:/svn

服務啟動,--daemon可簡寫為-d,--root可簡寫為-r,可以建立一個批次檔並放在windows啟動組中便於開機就運行SVN服務(注意:這是臨時開啟的服務,命令執行後不能關閉視窗)

也可以制定subversion工作的連接埠:svnserve -d -r f:/svn --listen-port 9999

用後台服務的方式可以設定開機自動執行。

D:/Program Files/Subversion/bin>sc create svnservice binpath= "C:/Program Files/Subversion/bin/svnserve.exe --service -r f:/svn  --listen-port 9999"

就可以用net svnservice stop 或者start來啟動服務了 也可以在Sevices.msc來啟動了。

5、用用戶端訪問

格式:svn://伺服器IP

 

---------------------------------------------------------------------------------------------------------

 

基於svnserve的伺服器,許可權檔案authz配置的常見問題及解答  
 最近在我用Subversion論壇(http://www.iUseSVN.com/bbs)經常有人提到這樣的問題: 
為什麼我的用戶端沒有寫入權限? 
為什麼我的許可權沒有起作用?

總結他們的配置,發現 
都是用svnserve作為伺服器, 
都在svnserve.conf中使用了authz-db選項

原因可能如下:

1,配置authz時,沒有注意svnserve啟動參數-r所指定的目錄。 
這裡有兩種情況: 
A:-r直接指定到版本庫(稱之為單庫svnserve方式) 
比如,有一個庫project1,位於D:/svn/project1 
使用以下命令啟動svnserve

[Copy to clipboard] [ - ]CODE: 
svnserve -d -r D:/svn/project1 
在這種情況下,一個svnserve只能為一個版本庫工作 
authz檔案如果配置成下面這樣就是錯的,

[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[project1:/] 
@admin=rw 
@doc=r 
應該配置成

[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[/] 
@admin=rw 
@doc=r 
因為[project1:/]表示庫project1的根目錄,而按上面的啟動參數,是沒有庫的概念的。 
使用類似這樣的URL:svn://192.168.0.1/ 即可訪問project1

B:-r指定到版本庫的上級目錄(稱之為多庫svnserve方式) 
同樣,有一個庫project1,位於D:/svn/project1 
如果使用以下命令啟動svnserve

[Copy to clipboard] [ - ]CODE: 
svnserve -d -r D:/svn 
這種情況,一個svnserve可以為多個版本庫工作, 
這時如果想限制指定庫的指定目錄,就應該指定具體的庫,像這樣

[Copy to clipboard] [ - ]CODE: 
[groups] 
admin=user1 
dev=user2 
[project1:/] 
@admin=rw 
@doc=r 
如果此時你還用[/],則表示所有庫的根目錄,同理,[/src]表示所有庫的根目錄下的src目錄 
使用類似這樣的URL:svn://192.168.0.1/project1 即可訪問project1 
這樣的URL:svn://192.168.0.1/project2 即可訪問project2

2,對中文目錄進行許可權控制時,沒有將許可權檔案authz改為utf-8格式。

svn對於非英文檔案名稱和目錄名使用utf-8格式編碼處理,要對中文目錄進行正確控制, 
應該使用無BOM的utf-8格式,如何將預設的檔案轉為utf-8, 
我使用的是UltraEdit的菜單"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以設定有無BOM  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: