
SVN 註解功能非常強大,可以快速追蹤特定程式碼行上的特定功能。如果使用者透過 http 存取 SVN,則此功能會受到一些限制(但仍然有用)。由於沒有以這種方式交換憑證,因此註解不會顯示使用 http 提交更改的開發人員修改的行的名稱。
問題是,開發人員是否有辦法將某種憑證傳遞給伺服器上的 SVN 以唯一標識他們的提交?此環境中所需要的僅僅是 ID 的存在。 svn+ssh 和文件協定等替代方法不可用。最後,該伺服器位於內部 LAN 上,而不是公共的。也歡迎提供 https 提示。
SVN 伺服器在具有 Apache2 的 Linux 上運作。
答案1
在阿帕奇配置中:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
/etc/apache2/svn_authz 可以包含誰可以存取什麼內容的細粒度管理:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
如果您手邊有 ldap / Active Directory 伺服器,您可以使用它來取代 AuthUserFile 進行 apache 驗證。
答案2
由於您透過 Apache 運行 SVN,因此您可以利用 Apache 的內建驗證方法來控制對儲存庫的存取/追蹤變更。下面的範例將使用 htaccess 樣式設定:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
您可以在 htaccess 檔案或 VirtualHost 設定檔中進行設定。
答案3
簡短回答:mod_authz_svn
您可以了解一些關於 apache + svn + mod_autz_svn 的信息,以及我向國際 PHP 會議 '09 提交的幻燈片中的更多內容,請訪問:http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
答案4
此答案假設您的開發人員使用 Windows 並且您有一個 Active Directory 網域控制站。
您可以按照以下步驟將Linux svn伺服器加入網域文章。
從那裡,您將 apache 設定為使用 Kerberos 向 AD 進行身份驗證。首次安裝mod_auth_kerb,然後將apache2連接到kerberos進行身份驗證。參見微軟的文件。如果您完全擔心客戶端和伺服器之間的安全性,請確保實施 SSL。
完成後,用戶可以使用其 Windows 密碼登錄,並且活動將分配給他們的用戶。
不幸的是,我現在無法為您提供具體的配置詳細信息,因為我不在辦公室並且無法訪問我們的 svn 伺服器。