【发布时间】:2010-01-12 12:00:40
【问题描述】:
我刚刚开始为一家新公司工作,担任内部网络开发人员。到目前为止,他们一直在外包他们网站的开发工作,并决定将他们带到内部,因此得到了我的聘用。
我每个人都只在自己的项目上工作过,从未使用过版本控制。
我们刚刚聘请了另一位网络开发人员与我一起工作,我被要求研究版本控制,因为将有多达 4 人需要访问网站文件。
在版本控制下运行时,我完全无法获得良好的 Apache 站点设置。
我们目前有一个运行 Ubuntu 和 Apache2 的本地开发 Web 服务器和一个位于数据中心的实时 Web 服务器。本地服务器托管多个网站,每个网站在 Web 根目录中都有一个子文件夹,即 /home/htdocs/sitename_com 和 /home/htdocs/sitename2_com。我们目前使用 samba 共享或 FTP 在 PC 上编辑网站文件。我想要做的是安装 SVN,以便用户可以签出单个站点代码的工作副本,进行任何更改,然后将更改提交回存储库。然后,我们需要能够测试这些站点,然后在满意时将文件通过 FTP 传输到我们的实时服务器。
现在,在考虑设置 SVN 时,我很早就意识到,当用户在他们的机器上签出工作副本时,他们实际上无法测试更改,直到将更改提交回存储库。这是因为文件是 PHP 文件,需要通过 Web 服务器执行。现在我可以将 XAMP 放在每台机器上,但是这将与开发服务器上的 Apache2 安装有不同的配置。这对我来说不是一个选择。
我猜工作副本必须不是在用户机器上创建,而是在开发服务器的 Web 根目录中创建,这与存储库本身是同一台服务器。我可以为用户的工作副本文件夹创建一个 samba 共享,以便他们可以从他们的 Windows 机器上进行更改。
我有几个问题:
- 您可以在浏览器中查看存储在存储库中的网站而无需先检查它吗?
- 如果不是,则必须将站点检出到同一服务器的 Web 根目录中的某个位置?
- 我应该为每个站点使用一个存储库还是为每个站点使用一个包含子文件夹的存储库?
- 当用户将他们对工作副本所做的更改提交回存储库时,我们需要测试这些更改以及其他所有人可能已提交的更改。是否可以让 SVN 将提交的更改复制到 Web 根目录中的暂存区域进行测试?
或者有更好的方法吗?
在为网站设置 SVN 时,我似乎无法在 Internet 上找到有关最佳做法的任何明确信息。很清楚 SVN 与 C++ 应用程序的源代码之间的关系,您只需在计算机上编译工作副本以进行测试,但网站必须在 Web 服务器上运行,并且每个工作副本都需要在 Web 服务器上进行测试,然后再进行检查进入存储库。
服务器上有多个站点,每个站点上有多个用户。我们需要能够同时在站点上工作,测试暂存区域中的所有更改,并且还想要一个实时区域,我们将在其中拥有实时站点的精确镜像,我们可以合并任何更改并在之前进行测试上传到实时服务器。
我在 Internet 上找到的所有示例都使用托管单个站点的单个服务器的示例。在我的例子中,我们的实时服务器托管了大约 10 个站点。
如果有人能给我关于如何设置、Apache 目录结构、存储库结构等方面的建议,我将不胜感激。
提前致谢!
【问题讨论】:
标签: svn version-control apache2