我的Ubuntu服务器安装了Apache和Subversion。 我将此服务器用作登台服务器,纯粹用于testing目的。 我使用Apache来托pipeWeb应用程序,Subversion保留源代码的版本化副本。
我目前的工作stream程
如果我的工作stream程如下所示,我会更加快乐:
我有很less的服务器pipe理经验,任何帮助或指针表示赞赏。 我听说后提交的钩子是我需要的,而且我可以写bash脚本来做到这一点,但我不知道从哪里开始,并没有真正find任何东西后,谷歌search很多。
谢谢!
“官方”的答案就在这里。
我正在管理我的存储库中的一个网站。 如何在每次提交之后使活动站点自动更新?
可以这样做,但是自动将每个提交都推送到生产网站并不总是一个好主意。 有时候还有其他需要改进的地方,因为新代码在那里而破坏了网站,但是数据库模式还没有被更新,这只是令人尴尬的。
我倾向于做的是使服务器结帐svn的副本,然后,一旦我准备好与其他一切必须发生的事情,我做一个svn更新。
但是如果你真的想要的话,你可以把命令放在提交后触发器中,它会自动为你做任何事情。 这可能包括在服务器上运行迁移脚本(如果存在此更改的话),以处理任何需要发生的非代码更改。
我认为你应该问自己的一个真正的 ,首要的问题—你当然可能已经问过自己—这是:“在部署之前我怎样才能最容易地测试我的代码呢?
我认为一个很好的答案就是在你的开发盒上安装Apache,然后运行它作为你自己的用户,在/home/richardhenry/src/mywebsite
webroot和/或cgi路径下(或者你检查你的代码)。
这样,你可以测试你的代码,甚至不提交。 因此,你不会用破碎或无用的提交来清理你的主干。 一般来说,保持独立的事物独立往往是一个好主意(TM)。
或者,使用rsync将Web服务器与工作目录同步,或者编写一个脚本,将文件从开发箱中推送到登台服务器,并添加运行脚本(或调用rsync)的Makefile规则。 如果你想要真的很花哨,可以使用inotify或其他文件通知监视器来自动运行你的脚本。