我以前从未使用任何类型的源代码控制,尽管我理解这个概念。我感到困惑(也许只是不知道)是我实现了什么好处和/或为什么我要配置Subversion和Apache?我是否需要使用Apache配置它才能通过网络从其他计算机访问我的存储库?请随意提供您认为相关的任何其他详细信息?
我现在的设置是笔记本电脑(Windows XP Pro)和虚拟机(Windows XP Pro)。在我的虚拟机上,我有Apache 2.2,MySQL 5和PHP 5.虽然我很高兴听到偏离我的场景的示例/情况,但这个设置是我主要关注的问题。
答案 0 :(得分:7)
查看SVNBook Entry: Choosing a Server Configuration。它讨论了访问Subversion服务器的不同方式的优缺点。
SVN协议是最简单的设置和管理方式,但可能不适用于企业防火墙(但Apache会通过HTTP)。
答案 1 :(得分:3)
当需要关闭端口3690时,这可能是有益的。它还允许用户使用浏览器浏览代码,这有利有弊。您不需要使用Subversion客户端来查看代码,但是Web浏览器会生成一个糟糕的存储库浏览器。
设置它并不太棘手。 I found this page to be useful
但是,如果您只是在本地VM环境中使用它,svnserve
对您来说没问题。
答案 2 :(得分:3)
如果您希望在存储库中使用ACL,那么通过Apache托管SVN存储库的优势就会发挥作用。
您可以配置基本身份验证,并根据需要限制每个目录(或每个文件)的权限。例如,您可以将存储库配置为允许访客签出,但是对存储库的任何写入都需要特定的有效用户。
使用Apache对用户进行身份验证的结果意味着您无需在.htpasswd中定义用户。 Apache可以挂钩到LDAP,大多数类型的SQL服务器,甚至可以使用Kerberos身份验证。
使用简单的svnserve
可能已经足够了。但是,无法应用细粒度权限,您将无法挂钩到另一个用户数据库进行身份验证。
但是根据你的描述,以上所有可能都是矫枉过正的。 Apache提供的优势对单个用户来说基本无用,并且不值得麻烦。
答案 3 :(得分:2)
没有必要使用Apache设置Subversion。我已经使用Subversion多年了,而且从来没有这样做过(尽管你有理由这么做,主要是与身份验证基础设施有关)。由于您处于Windows世界,我已经看到VisualSVN Server强烈推荐,并且很容易设置和使用。
答案 4 :(得分:2)
我认为您遇到的情况是,如果您想使用WebDAV协议来访问您的SVN存储库。在这种情况下,您基本上允许Apache将文件访问作为SVN本身的中介来处理(没有直接连接到存储库)。
我听说这种方法效果很好,但有几种选择。看一下SVN Book(查看Google)的起点。
答案 5 :(得分:1)
使用Apache,您可以通过WebDAV访问您的存储库,即通过标准端口上的HTTP访问您的存储库,因此您可以在企业防火墙后面访问/发布您的存储库,例如,这可能不允许svnserve
端口。 / p>
答案 6 :(得分:1)
我们使用Visual SVN存储库在一个小团队(6人)环境中使用Subversion。最初我们没有Apache Web服务器,只有IIS,但现在我们也运行Apache,但没有令人信服的理由将Apache用于存储库。
答案 7 :(得分:1)
如果您希望与其他人共享,SVN 可以成为客户端 - 服务器系统。但是,如果您想单独使用代码(即使是来自多台计算机!),您根本不需要任何服务器!
您可以将文件:// - protocol build用于几乎所有SVN客户端和本地SVN存储库。
您的SVN存储库也可以在网络共享中运行。但是,如果您单独使用此方法,则应使用此方法 !
答案 8 :(得分:0)
您不必使用Apache。有一个自定义服务器 - 可以使用svnserve.exe代替。它默认在端口3690上运行,但在设置时可以使用--port
开关将其设置为不同的端口。
Greg Hewgill为您提供了一个链接,告诉您要使用的Subversion服务器版本以及不同的用例。如果您不需要与任何类型的身份验证集成,它基本上可以归结为svnserve
。如果您需要更复杂的方案,请使用Apache。
我有一个处理svnserve的商业Windows控制台。我的个人资料有链接可以查看该实用程序。如果您确定使用Apache,我建议您使用VisualSVN Server。