2011-09-23 120 views
0

我刚刚建立了一个开发Web服务器,在这里人们将在生产Web服务器上进行这些更改之前测试一些更改。目前,Web开发团队习惯于使用Subversion在生产服务器上进行更改。我想在开发Web服务器上建立一个SVN服务器。开发Web服务器上的基本Subversion服务器问题

我的问题是这样的:我怎样才能让它变成这样,Subversion将存储库存储在Apache文档根目录中,以便他们检入存储库的文件将直接进入文档根目录并由Web服务器提供服务。

因为我现在已经设置好了,看起来当文件被提交时,它们变成了svn repo目录下的虚拟文件(只能用“svn ls file:/// repo/file”显示,而不是“ LS的/ var/WWW /文件”。

谢谢

+0

请参阅http://stackoverflow.com/questions/7182034/svn-setup-of-existing-directory/7182056#7182056。您的Apache服务器需要有自己的工作目录,在提交文件后进行更新。 –

+1

Subversion版本库不包含项目文件的实际当前版本,而是包含重现它们所需的更改列表。这是设计。 –

+0

此外,为单个代码库维护两个不同的存储库看起来非常受虐待...... –

回答

2

这不是颠覆是如何工作的,它通常不会存储文件的格式的直接访问。你想要做的就是添加一个什么后提交它会更新Web目录中的签出副本Google搜索“subversion post-commit update”以获取更多信息

0

您可以控制源代码de使用颠覆,但真正的问题是,你正在改变你的安装,然后归档它,而不是“正常”的开发例程;这是为了进行更改,然后安装更改​​。

最好的方法是让Subversion服务器远离生产Web服务器。您的开发框会检查对Subversion服务器的更改。一个“特殊的”构建用户检查出所有的颠覆的东西,并制作一个zip文件(或更合适的东西),然后将“zip文件”复制到生产服务器并“安装”。

这将为您部署到Web服务器提供更大的灵活性,并且它允许您在部署到生产服务器之前测试其他非关键Web服务器上的更改(如果您决定变得非常喜欢)。它还可以防止你直接取下网络服务器的错误,因为你可以选择不在网络服务器上部署一个构建版本,同时检查后续“修复”引入的错误)​​。

无论哪种方式,您都可以使用crontab或其他一些类似cron的功能来做一个“夜间”包等。关键不是创造一个人必须做的更多工作,而是创造更多的工作,自动化程序可以简单地做到这一点,以便在发生最终不满情况时拥有更高的安全性。您的角色应该是决定是否要安装“this”包,并运行命令(或两个)来安装它。