使用 Subversion 伺服器配置 SVN 訪問
快速背景。我們在沒有 Web 訪問的 Windows 機器上執行 Subversion Server 1.6.5(沒有 Apache,只有 SVN 伺服器)。我們只使用 TortoiseSVN 和 AnkhSVN,為了持續集成,我們使用 svn 客戶端命令行。
好的,所以我在 NET 上環顧四周並閱讀了一些 SVN 書,但我不明白為什麼這個使用者設置不起作用。
authz(SVN授權文件)內容:
### Sanitized version [groups] devUsers = user1 qaUsers = user2 [/] @devUsers = r @qaUsers = r [/Dev/SourceCode] @devUsers = rw ~devUsers = ### QA Projects [/Dev/testCases] @qaUsers = rw ~qaUsers =
根據我的閱讀,您必須授予所有使用者對儲存庫根目錄的最低讀取權限。好的。這樣可行。接下來我的 /Dev/SourceCode 目錄應該只有 @devUsers 可以訪問,但由於某種原因,在 TortoiseSVN 的 repo-browser 中,
@qaUsers
可以看到這個文件夾。我猜全域讀取訪問權限/
覆蓋~devUsers =
了 authz 文件中的行?/Dev/TestCases 文件夾也是如此,它只能訪問@qaUsers
,但@devUsers
也可以查看此文件夾。這是我的問題之一。但主要問題是 /Dev/SourceCode 的子文件夾只是只讀的。我知道這一點,因為當我嘗試將某些內容簽入子文件夾時,它說授權失敗。但是,在根文件夾中,如果您簽入文件,它可以正常工作。
我猜這又是
/
只讀訪問覆蓋的東西。這是否意味著每個子文件夾都必須被賦予明確的 rw 權限?無論如何,從這一點來說,使用目前父文件夾的權限?,即 /Dev/SourceCode 的權限。如果您想在有許多子文件夾時向所有子文件夾授予 rw 權限,這似乎真的很不方便。
當我看到您的授權文件時,我最初的想法是,“路徑聲明中沒有缺少儲存庫名稱嗎?”
我的意思是,
[/Dev/SourceCode] @devUsers = rw @qaUsers =
應該看起來像,
[<repo-name>:/Dev/SourceCode] @devUsers = rw @qaUsers =
或者,如果 `Dev’是儲存庫的名稱,
[Dev:/SourceCode] @devUsers = rw @qaUsers =
我將 apache 用於我們的儲存庫,但無論是 httpd 還是 svnserve,語法看起來都一樣:基於路徑的授權
我希望這有幫助。
謝謝你,
扎卡里