2010-09-23 48 views
0

我想要做的是将webroot从我的开发web服务器指向一些dir,它以某种方式链接到svn,所以当我提交更改时,它们将自动显示在我的开发web服务器上。svn目录作为webroot

任何线索我怎么能做到这一点?

编辑

我创建一个Django项目,所以我justing Django开发服务器

+0

什么是您的开发Web服务器? IIS? Apache的? – Rohith 2010-09-23 14:27:41

回答

3

你可以让你的wwwroot来自服务器的svn库的工作拷贝,通过checking it out。要使自动更新正常工作,您必须查看post-commit hook或者有一个cron作业(或类似的作业)运行一个任务,以便每X分钟左右更新一次wwwroot。

+0

或者你可以有一个持续的整合过程监听提交并更新你的工作副本。 – Rohith 2010-09-23 14:29:10

+2

无论您选择哪种方法,使用.htaccess文件禁止访问您的.svn目录的内容将是有益的(假设您的服务器是Apache)。 – 2010-09-23 15:19:14

2

通常,您需要检查您的网站到您用作网页根目录的目录中,然后设置一个Subversion post-commit hook,每次有人提交新版本时都会检查该目录中的最新版本。

+0

确切地说,Web服务器无法查看VCS存储库并决定哪些版本将成为该网站的最新版本,甚至可以将它们读取为php或css或html文件。一种简单的方法是将从最新版本签出的过程编写到目标服务器,更复杂的方法是使用Hudson这样的工具进行CI(持续集成)。 – PurplePilot 2010-09-23 14:52:40

1

让生产服务器自动更新可能不是一个好主意。但是,如果你想用开发盒来做到这一点,请查看像哈德森这样的持续集成服务。它可以观察你的源代码库,并在你每次提交代码时自动更新一个或多个工作副本。如果你有其他需要完成的工作(例如,执行构建,重启守护进程/服务,刷新缓存等),这也可以做到这一点。