如何将部署到多个服务器的现有网站转换为SVN管理而不是吹走用户文件?

时间:2008-10-23 19:01:12

标签: svn deployment

我有一个使用相同代码库的现有网站,但在不同服务器上部署了多种不同的配置。每个配置都有一组用户,他们可以上传个人文件。这些文件存储在每台服务器上的“上传文件”目录中,该目录位于运行该站点的代码旁边。

我正在尝试将代码库引入Subversion,以便我们可以更好地管理事物,并且还使用SVN来简化部署,但是,在每个服务器上,用户文件将是不同的。我知道处理此问题的最佳方法是将用户文件存储在其他位置,但此时,这不是一个选项。

因此,考虑到这一点,我如何根据这种情况使用Subversion?

3 个答案:

答案 0 :(得分:2)

不要以这种方式检查它,你不能覆盖任何东西。对于config.ini文件等,您可以在存储库中存储具有不同名称的模板版本(即.config.ini.tmpl),该版本不会覆盖实际文件。

将文件夹/文件添加到svn ignore中,这样就不会意外检查它们。

最好导出到新文件夹,然后执行快速mv或httpd.conf编辑,重新启动apache以一次更改为新版本。如果这样做,您可以复制上传文件和/或保留旧版本作为备份,以防部署或新版本代码出现问题。

答案 1 :(得分:0)

只是不要将该文件夹存储在您的存储库中,例如。永远不要检查那个文件夹。我真的没有看到这里的问题...

答案 2 :(得分:0)

这是我最终使用的方法:

我检查了开发服务器上的所有内容,包括那里的用户文件。这允许检出整个开发服务器,因此每个人都有相同的代码批。

然后,对于dev服务器以外的服务器,我复制掉服务器上的用户文件,进行干净的检查,通过将该目录更新为修订并删除,“取消”检查用户文件的目录它来自工作副本,然后从该服务器复制原始文件。

这似乎运行良好,虽然它并不理想,但它还没有引起任何问题,因为Subversion只是将这些文件视为无版本。

另外,对于配置文件,我们确实将.template附加到那些少量文件中。