我正在寻找能够为网站使用修订控制系统的能力,但也有修订版立即生效。
示例:开发人员提交到存储库,这些更改会立即从存储库中提取。
有关可用软件的任何建议吗?
答案 0 :(得分:3)
Subversion +触发器。
您可以设置一个触发器,以便脚本在任何签入时立即将主干推送到开发系统。
The redbook for SVN covers subversion triggers/hooks
类似的stackoverflow question here涵盖了当repo事件发生时如何执行脚本。
警告强>: 我不会为生产系统执行此操作,但对于始终具有trunk实时的开发服务器的连续测试可能很有用。
答案 1 :(得分:0)
cron job,每分钟运行svn update
或git pull
。
或在{svn repo上发布commit hook
。
注意:实际上两者都是个坏主意。一旦构建过去,至少从持续集成服务器中提取结果。
答案 2 :(得分:0)
我自己还没有尝试过,但我听说过有关Mercurial的好消息。
我认为谷歌最近开始在他们的一些项目中使用Mercurial。
他们在这里有一篇有趣的文章比较GIT和Mercurial: http://code.google.com/p/support/wiki/DVCSAnalysis
然后有关于他们最终决定在这里使用Mercurial for Google Code的消息: http://arstechnica.com/open-source/news/2009/04/google-code-adds-mercurial-version-control-system.ars
答案 3 :(得分:0)
也许不是“拉”,你可以采取推动的方式。网站本身可能是git(或选择你的scm,我更喜欢git)存储库,作者将他们的代码提交到他们的本地存储库,通过git push
将其推送到Web服务器并且它是实时的。从作者的角度来看,这是一个额外的步骤,但你可以写一些方便的脚本,使它对它们透明。
答案 4 :(得分:0)
assembla.com项目托管服务将此作为与GIT或SVN存储库相关联的功能提供。
除了满意的客户之外,我与他们没有任何联系;我没有使用上述功能,因此无法证明其有效性。我认为它需要普通的ftp(而不是sftp)访问Web服务器。
答案 5 :(得分:0)
这是一件难以可靠的事情,但如果执行得当,可以带来很大的好处。
我建议你研究一下continuous integration。要正确地执行此操作,您需要结合良好的编码实践,测试大量开发和自动部署。
基本上,我们的想法是开发人员进行小的更改,并通过架构迁移进行充分测试。然后自动测试和部署它。