Linux

通過 http 為多個使用者設置 SVN 伺服器

  • February 19, 2012

SVN 註釋功能非常強大,它可以快速確定在特定程式碼行中跟踪特定功能的人員。如果使用者通過 http 訪問 SVN,此功能會稍微受限(但仍然有用)。沒有以這種方式交換憑據,因此註釋沒有顯示由使用 http 送出更改的開發人員修改的行的名稱。

問題是,開發人員有沒有辦法將某種憑據傳遞給伺服器上的 SVN 以唯一標識他們的送出?在此環境中需要的只是 ID 的存在。svn+ssh 和文件協議等替代方法不可用。最後,此伺服器位於內部 LAN 上,而不是公共的。也歡迎 https 的提示。

SVN 伺服器在帶有 Apache2 的 Linux 上執行。

在 Apache 配置中:

<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 / 活動目錄伺服器,則可以使用它而不是 AuthUserFile 進行 apache 身份驗證。

引用自:https://serverfault.com/questions/41382