为什么选择mod_dav_svn而不是svnserve&存储库浏览器?

时间:2011-06-03 13:46:28

标签: apache svn trac mod-dav-svn

如果我对mod_dav_svn的理解错了,请纠正我,因为它基本上有两个目的:

  1. 将SVN存储库(在文件系统上)公开给客户端,客户端可以是:
    • 存储库浏览器(例如网络)
    • 'svn'命令本身,它是一个客户端命令行程序
  2. 充当存储库浏览器,以便于以方便的方式查看存储库
  3. 现在对于第1点,我的以下假设是否正确?

    • 无论何时使用mod_dav_svn公开存储库,都会使用访问存储库的 http:// https:// 形式
    • 如果使用svnserve,则使用访问存储库的 svn:// 形式
      • 在这种情况下,mod_dav_svn将不再使用

    对于第2点,如果使用Trac的存储库浏览功能,mod_dav_svn提供的存储库浏览功能没有其他用途吗?

    mod_dav_svn是否有任何其他目的,我在这里没有概述?问另一种方式,使用svnserve和Trac是否有任何不利之处?

    我问,因为我得到的印象是mod_dav_svn非常常用,所以我想知道我错过了什么。

1 个答案:

答案 0 :(得分:15)

忘记点#2:HTTP浏览。这只是一个小小的奖励。它不会取代您对FisheyeViewVC或(我最喜欢的)Sventon等内容的需求。

将Apache的http用于Subversion服务器有一些缺点:

  • 慢一点
  • 设置起来比较困难

然后,有一些优点:

  • 它使用的标准端口(80)通常不会被防火墙阻止。
  • 可以与LDAP和Active Directory集成
  • 您可以使用 HTTPS 来加密更新和结帐(包括用户密码)。
  • 您可以让多个存储库使用相同的Apache httpd实例。使用svnserve,每个实例只能执行一个存储库,如果在一个系统上有多个存储库,则必须在非标准端口上运行每个svnserve进程。

我个人观点:如果您正在进行企业环境,使用HTTP或HTTPS协议方式的优势将超过缺点。如果您正在谈论一个小型存储库以及您和您的朋友,我只是因为较低的开销和更容易的设置而运行svnserve。但是,在这种情况下,我只是使用Github而不用担心它。

我在我的机器上运行Subversion作为我的个人源控制系统,我在那个实例中使用了svnserve。


  

谢谢,一些跟进问题。 1)当我在svn服务器上访问svn:// server / repo的URL时,是不是也使用端口80? 2)如果无法对svnserve进行LDAP集成,那么用户可以进行身份​​验证的唯一方法是,如果它们位于svnserve.conf中的password-db所引用的svn://文件中,或者是svn的shell帐户+ SSH://? 3)https://提供的保护不能由svn + ssh://提供,还是有区别? (对不起,我不能把段落放在这里,每当我点击输入时我都会提交,我做对了。) -

  1. 默认使用端口3690。这可以在您运行svnserve时更改,但您的svn网址也必须反映这一点。

  2. 非常真实。大多数使用svnserve的地方都使用passwd文件。但是,从版本1.5开始,您可以使用SASL。但是,我从未见过有人使用它。

  3. 是的,ssh + svn://确实提供加密数据包。但是,SSH实现起来可能很棘手。基本上,必须为该特定用户生成并运行svnserve进程。这意味着每个用户都需要对存储库的直接读/写访问权限。您需要为每个用户设置umask并创建每个人都属于的Subversion Unix组。然后,由于这些用户可以直接访问存储库文件,因此请不要登录存储库服务器。 Online Manual有完整的详细信息。但是,最终,它只适用于Unix服务器和Unix客户端。 Windows客户端上没有SSH,必须安装它。我已经尝试了几次,但https://要容易得多。