【问题标题】:Using Subversion and Apache使用 Subversion 和 Apache
【发布时间】:2010-09-19 21:02:11
【问题描述】:

虽然我理解这个概念,但我以前从未使用过任何类型的源代码控制。我感到困惑(也许只是不知道)是我能获得什么好处和/或为什么要配置 Subversion 和 Apache?我是否需要使用 Apache 对其进行配置才能通过网络从其他计算机访问我的存储库?请随时提供您认为相关的任何其他详细信息?

我现在的设置是一台笔记本电脑 (Windows XP Pro) 和一台虚拟机 (Windows XP Pro)。在我的虚拟机上,我有 Apache 2.2、MySQL 5 和 PHP 5。这个设置是我主要关心的问题,尽管我很高兴听到与我的场景不同的示例/情况。

【问题讨论】:

  • 我认为你在非 wiki 模式下很好 - 这不是一个真正的主观/民意调查类型的问题。

标签: svn version-control apache2 webdav


【解决方案1】:

查看SVNBook Entry: Choosing a Server Configuration。它讨论了访问 Subversion 服务器的不同方式的优缺点。

SVN 协议的设置和管理最简单,但可能无法跨企业防火墙工作(但 Apache 可以,通过 HTTP)。

【讨论】:

    【解决方案2】:

    当需要关闭端口 3690 时会很有用。它还允许用户使用浏览器浏览代码,这有利有弊。您不需要 Subversion 客户端即可查看代码,但 Web 浏览器会成为糟糕的存储库浏览器。

    设置它并不太难。 I found this page to be useful.

    但是,如果您只是在本地 VM 环境中使用它,svnserve 就可以了。

    【讨论】:

      【解决方案3】:

      如果您希望在您的存储库中使用 ACL,那么通过 Apache 托管您的 SVN 存储库的优势就会发挥作用。

      您可以配置基本身份验证,并在每个目录(或每个文件,如果您觉得需要)的基础上限制权限。例如,您可以将存储库配置为允许访客签出,但任何写入存储库都需要特定的有效用户。

      使用 Apache 对您的用户进行身份验证意味着您不必在 .htpasswd 中定义您的用户。 Apache 可以连接到 LDAP、大多数任何类型的 SQL 服务器,甚至可以使用 Kerberos 身份验证。

      使用简单的svnserve 可能就足够了。但是,无法应用细粒度权限,并且您将无法挂钩到另一个用户数据库进行身份验证。

      但根据您的描述,以上所有内容都可能是矫枉过正。 Apache 提供的优势在很大程度上对单个用户来说毫无用处,而且不值得麻烦。

      【讨论】:

      • 您还可以使用 Apache 获得其他一些“免费”功能,例如 Web 浏览器中的存储库目录列表以及 Apache 日志文件中的大量日志信息
      【解决方案4】:

      无需使用 Apache 设置 Subversion。我使用 Subversion 已经很多年了,而且从来没有这样做过(尽管你会这样做是有原因的,主要是与身份验证基础设施有关)。由于您处于 Windows 世界,我已经看到强烈推荐使用 VisualSVN Server,并且易于设置和使用。

      【讨论】:

        【解决方案5】:

        我认为您遇到的情况是,如果您想使用 WebDAV 协议访问您的 SVN 存储库。在这种情况下,您基本上允许 Apache 作为 SVN 本身的中介来处理文件访问(与存储库没有直接连接)。

        我听说这很有效,但有几种选择。查看 SVN Book(查看 Google)作为起点。

        【讨论】:

          【解决方案6】:

          我们在一个小团队(6 人)环境中使用 Subversion,使用 Visual SVN 存储库。最初我们没有 Apache Web 服务器,只有 IIS,但现在我们也运行 Apache,但没有令人信服的理由将 Apache 用于存储库。

          【讨论】:

            【解决方案7】:

            使用 Apache,您可以通过 WebDAV 访问您的存储库,即通过标准端口上的 HTTP,因此您可以在例如可能不允许 svnserve 端口的企业防火墙后面访问/发布您的存储库。

            【讨论】:

              【解决方案8】:

              SVN 可以是一个客户端-服务器系统,如果您希望与其他人共享您的代码。但是,如果您想单独处理您的代码(即使在多台计算机上!)您根本不需要任何服务器!

              您可以在几乎所有 SVN 客户端和本地 SVN 存储库中使用 file://-protocol 构建。

              您的 SVN 存储库也可以通过网络共享工作。但是,您应该在您独自工作时使用此方法!

              【讨论】:

                【解决方案9】:

                您不必使用 Apache。有一个自定义服务器 - 可以使用 svnserve.exe 代替。它默认在 3690 端口上运行,但可以在设置时使用--port 开关将其设置为不同的端口。

                Greg Hewgill 为您提供了一个链接,该链接将告诉您要使用哪个版本的 Subversion 服务器,以及不同的用例。如果您不需要与任何类型的身份验证集成,它基本上可以归结为svnserve。如果您需要更复杂的场景,请使用 Apache。

                我有一个处理 svnserve 的商业 Windows 控制台。我的个人资料有一个链接可以查看该实用程序。如果您决定使用 Apache,我建议您使用 VisualSVN Server

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-05-31
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-01-29
                  • 1970-01-01
                  • 2011-08-04
                  相关资源
                  最近更新 更多