Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 如何自动将提交部署到网站?_Svn_Hook_Commit - Fatal编程技术网

Svn 如何自动将提交部署到网站?

Svn 如何自动将提交部署到网站?,svn,hook,commit,Svn,Hook,Commit,我计划为测试目的设置一个SVN服务器。 现在是我的问题。 如何将提交的文件自动部署到开发/登台网站的路径 我已经了解到我可以在SVN中使用post-commit钩子,但是我如何配置它呢 所有提交的文件必须部署在以下路径中: /主页/www/dev/staging/ 存储库位于: /home/svn/mytestscript/ 我怎样才能做到这一点呢?为部署编写提交后钩子确实不是一个好主意 更好的解决方案是使用(Ruby)或(Python)等工具 svn diff——总结提交后钩子中的 备选方案1

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

我已经了解到我可以在SVN中使用post-commit钩子,但是我如何配置它呢

所有提交的文件必须部署在以下路径中: /主页/www/dev/staging/

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


我怎样才能做到这一点呢?

为部署编写提交后钩子确实不是一个好主意

更好的解决方案是使用(Ruby)或(Python)等工具

  • svn diff——总结提交后钩子中的

  • 备选方案1(更大的传输、更多的时间和中断)-svn导出+删除所有旧数据+复制导出树

  • 备选方案2-暂存站点是额外的WC,提交后挂钩只需在其上启动
    svn up

  • Nicholas Ding:为部署编写提交后钩子确实是个坏主意


    Aar:你的理由是什么?检查一下你的网站还不错,你做了什么?你的论点是什么

    我不得不同意。问题是,当您通过post-commit钩子进行部署时,开发人员正在等待提交完成。如果您的部署只需要30秒就可以完成,那么开发人员就需要30秒等待您的post-commit钩子完成

    如果开发人员每次提交一个文件,他们必须等待30秒才能完成提交,您认为会发生什么?你认为他们会如何看待Subversion,总体上的开发过程,以及你作为CM?将部署作为提交后挂钩并不完全是一种职业提升举措


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

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

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

    即使您不必编译任何东西(假设您的整个网页只是PHP文件和Java脚本),您也可以使用Jenkins进行部署和测试,并且仍然可以从中获益匪浅


    Jenkins是一款很棒的软件,它可以真正改进您的开发过程并处理您的问题,而不会减慢Subversion的速度。此外,Jenkins非常易于使用,因此使用Jenkins可能比在提交后钩子中找出如何执行所需操作要快。

    一个解决方案(从2008年开始)仅在注释中包含
    ~~DEPLOY~~
    时才部署。虽然这并不能否定@David W.提到的问题,但时间延迟将是每次提交时部署的一种威慑。好坏取决于团队和项目

    试试Springloops,它是一款自动部署软件。我使用它,我认为这是一个伟大的工具,与BamBam任务管理系统集成。在

    上查看这一点,我认为即使在登台服务器上,部署网站的提交后钩子也是一个坏主意。有专门用于部署的构建工具,我只使用过Maven,但是还有很多其他工具,比如Ant。这个主意不好,但你有没有想法?你可以尝试这个链接,我想你无论如何都必须编写一个部署脚本:如果你的问题是正确的解决方案,请接受答案。这将为提供正确解决方案的人提供当之无愧的代表,也将帮助你在未来的问题中获得更多答案。你的理由是什么?检查一下你的网站还不错,你做了什么?你的论点是什么???尼古拉斯是正确的。请参阅我的。您可以通过让钩子分叉离开部署过程来绕过提交延迟,但是如果部署失败,您当然会失去拒绝提交的能力。我认为使用Jenkins是一个更加健壮和明智的解决方案。