我的 Ubuntu 服务器安装了 Apache 和 Subversion。我使用该服务器作为临时服务器,纯粹用于测试目的。我使用 Apache 来托管 Web 应用程序,并使用 Subversion 来保存源代码的版本控制副本。

我当前的工作流程:

  • 更改文件
  • 将文件提交到 Subversion 存储库
  • 通过 SFTP 将新文件上传到 Apache 公共目录
  • 在我的网络浏览器中查看更改

如果我的工作流程是这样的,我会更高兴:

  • 更改文件
  • 将文件提交到 Subversion 存储库
  • 在后台,Subversion 将提交的文件的副本放入 Apache 公共目录中
  • 在我的网络浏览器中查看更改

我的服务器管理经验很少,非常感谢任何帮助或指示。我听说我需要提交后挂钩,并且我可以编写 bash 脚本来执行此操作,但我不知道从哪里开始,并且在大量谷歌搜索后并没有真正找到任何东西。

谢谢你!

有帮助吗?

其他提示

这是可以做到的,但自动将每个提交推送到生产网站并不总是一个好主意。有时还需要进行其他更改,并且由于新代码已存在而破坏了站点,但数据库架构尚未更新,这真是令人尴尬。

我倾向于做的是让服务器签出 svn 的副本,然后,一旦我准备好所有其他必须发生的事情,我就会对其进行 svn 更新。

但如果您确实想要,您可以将命令放入提交后触发器中,这将自动为您完成所有操作。这可能包括在服务器上运行迁移脚本(如果存在用于此更改的脚本),以处理需要发生的任何非代码更改。

我觉得 真实的, 您应该问自己的首要问题(当然您可能已经问过自己)是:“在部署代码之前如何最轻松地测试我的代码?”

我认为一个好的答案是在您的开发盒上安装 Apache 并以您自己的用户身份运行它,webroot 和/或 cgi 路径位于 /home/richardhenry/src/mywebsite (或者无论您在哪里查看代码)。

这样,您甚至可以在不提交的情况下测试您的代码。因此,您不会在主干中乱扔损坏的或无用的提交。一般来说,保持独立的事物独立往往是一个好主意(TM)。

或者,使用 rsync 将 Web 服务器与工作目录同步,或者编写一个脚本,将文件从开发盒推送到临时服务器,并添加运行脚本(或调用 rsync)的 Makefile 规则。如果你想成为 真的 奇特的是,使用 inotify 或其他一些文件通知监视器来自动运行您的脚本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top