svn - 如何在实时 apache 服务器上使用 svn?

标签 svn apache

我是 SVN 新手,有些东西我一直坚持不下去。最长的时间里,我一直在本地开发网站(MAMP 设置),然后在准备好后通过 ftp 实时传输整个网站。我直接在实时站点上进行的任何小的额外更改,并且每隔一段时间我就会将实时服务器上的所有文件重新下载到我的本地主机(因为我永远记不起我更改过的所有文件)。显然这不是最好的做事方式。我很好奇如何在实时网络服务器上设置 SVN,因此我在本地所做的每项更改都会在我告诉它时推送到网站上。我在哪里创建 svn 存储库?/domain.com/www/svn ?我可以创建 www 目录作为实际的存储库吗?如果是这样,这是不好的做法吗?

最佳答案

不要在 Web 服务器目录中创建存储库!这是您问题的第一部分。

您的存储库可以位于任何地方,只是不要将其放在网络服务器的目录中。

当您设置 Apache httpd(如果您正在使用它)时,请将其设置为忽略 .svn 文件夹,如下所示:

<DirectoryMatch \.svn>
   Order allow,deny
   Deny from all
</DirectoryMatch>

现在,在 Web 服务器之外的其他地方创建一个 Subversion 存储库。从不在您的网络服务器目录中的其他地方的工作目录中的该存储库中 checkout 。您现在可以在此处导入存储库中的所有文件并将它们提交到您的 Subversion 存储库。

完成此操作后,您可以转到希望这些文件出现的网络服务器目录,然后进行 checkout 。

你应该具备三样东西:

  1. 不在您的网络服务器目录中的 Subversion 存储库。
  2. 包含网站中不在网络服务器目录中的所有文件的工作目录。
  3. 位于网络服务器目录中的工作目录。

计划是这样的:您在不在 Web 服务器目录中的工作目录中进行更改。您可以在此处进行测试,并在此处提交更改。您也可以在这里进行所有测试。

一旦您对一切感到满意,您就可以在 Web 服务器目录中的 Subversion 工作目录中执行 svn update。因此,您可以在 Web 服务器之外进行工作、测试,然后在 Web 服务器目录中执行 svn update

如果您想真正变得更奇特,您可以创建一个 Web 分支来代表您的 Web 服务器目录中的代码。然后,您可以根据需要 checkin 和 checkout 代码。当您准备好在网站中实现它时,可以将其合并到网络分支。当您更新网络服务器目录中的工作目录时,它只会提取网络分支上的代码。

事实上,您可以使用某种 cronjob 来自动化该过程。您关闭您的网站,更新 Web 服务器目录中的 Subversion 工作目录,然后重新启动您的网站。这可以确保网络用户正在查看的文件不会从其下方更改。

关于svn - 如何在实时 apache 服务器上使用 svn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4681609/

相关文章:

svn - 适合初学者的颠覆

svn - TortoiseSVN 当前基线版本

apache - 如何制作 tumblr 风格的个人资料 url

php - htaccess/htpasswd 有多安全?

php - Apache 错误 : cannot load mod_access_compat. 所以

python - 版本控制历史是如何存储和计算的?

visual-studio - SVN 预提交 Hook 以确保 .csproj 中引用的所有文件都是版本化的?

php - Phalcon 模块已加载但仍然找不到类

apache - 端口转发但仍然无法连接到 XAMPP

powershell - 如何在powershell中使用SVN-commit