svn - 我如何自动将提交部署到网站?

标签 svn hook commit

我计划设置一个 SVN 服务器用于测试目的。 现在是我的问题。 如何将提交的文件自动部署到我的开发/暂存网站的路径?

我知道我可以在 SVN 中使用提交后 Hook ,但我该如何配置它?

所有提交的文件必须部署在 http://dev.staging.mywebsite.com 中在路径中: /home/www/dev/staging/

存储库位于: /home/svn/mytestscript/

我该怎么做?

最佳答案

Nicholas Ding: It's really a bad idea to write a post-commit hook for deployment.

Aar: And what are your reasons? It's not so bad to check your site, what you have committed? What are your arguments????

我必须同意 Nicholas Ding .问题是,当您通过提交后 Hook 进行部署时,您的开发人员正在等待提交完成。如果您的部署仅需 30 秒即可完成,则表示开发人员等待您的提交后 Hook 完成的时间为 30 秒。

如果开发人员每次提交文件时都必须等待 30 秒才能完成提交,您认为会发生什么情况?您认为他们会如何看待 Subversion、一般的开发过程以及您作为 CM?将部署作为提交后 Hook 并不完全是提升职业生涯的举措。


我建议你看看Jenkins . Jenkins 就是所谓的持续构建系统。您可以设置 Jenkins,以便每次开发人员提交时,Jenkins 都会执行构建。这样,您就不会在部署过程中占用 Subversion。

好消息是 Jenkins 也可以执行您的部署。而且,如果部署失败,它可以向执行提交的开发人员发送电子邮件。 Jenkins 甚至可以为您运行一些测试。例如,也许您的部署工作正常,但更改的代码导致错误。这可能很好检测。而且,您可以将可部署的工件存储在 Jenkins 中,以防您想在部署前对其进行测试。如果测试有效,您可以返回到 Jenkins 中的那个构建,单击一个按钮,然后进行部署。

作为另一个好处,Jenkins 允许您的开发人员查看所有更改、构建和部署的历史记录。它还可以在您开始测试后向您显示所有测试的历史记录。如果您使用问题跟踪系统,如 Jira、Bugzilla、MantisBF、Track 或任何数量的其他流行系统,Jenkins 可以与这些系统集成以帮助您跟踪处理了特定问题的构建。

即使您不需要编译任何东西(假设您的整个网页只是 PHP 文件和 JavaScript),您也可以仅使用 Jenkins 进行部署和测试,并且仍然可以从中看到很多好处。

Jenkins 是一款很棒的软件,可以真正改善您的开发过程并处理您的问题,而不会降低 Subversion 的速度。此外,Jenkins 非常易于使用,使用 Jenkins 可能比弄清楚如何在提交后 Hook 中执行您想要的操作更快。

关于svn - 我如何自动将提交部署到网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9484361/

相关文章:

Git checkout 'virtual'分支

git - 更改 Git 中的旧提交消息

svn - 将 svn 仓库添加到现有的 git 仓库?

SVN 异常 : svn: E175002: REPORT of '/svn/Repository2/!svn/vcc/default' 400 Bad Request

delphi - 到 Unix 服务器的远程 SubversionSVN 连接

c++ - boost 侵入列表 Hook

c# - 为 SVN 修改提交时的文本文件,让我的程序知道它的提交号

ruby - 每个功能前后是否有 cucumber 钩子(Hook)运行

git - 如何启用 gerrit 钩子(Hook)?

git - 如何提交/删除以 ":"开头的文件?