网站修订控制系统

时间:2009-10-30 20:34:28

标签: repository web

我正在寻找能够为网站使用修订控制系统的能力,但也有修订版立即生效。

示例:开发人员提交到存储库,这些更改会立即从存储库中提取。

有关可用软件的任何建议吗?

6 个答案:

答案 0 :(得分:3)

Subversion +触发器。

您可以设置一个触发器,以便脚本在任何签入时立即将主干推送到开发系统。

The redbook for SVN covers subversion triggers/hooks

类似的stackoverflow question here涵盖了当repo事件发生时如何执行脚本。

警告: 我不会为生产系统执行此操作,但对于始终具有trunk实时的开发服务器的连续测试可能很有用。

答案 1 :(得分:0)

cron job,每分钟运行svn updategit 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服务器。

http://www.assembla.com

答案 5 :(得分:0)

这是一件难以可靠的事情,但如果执行得当,可以带来很大的好处。

我建议你研究一下continuous integration。要正确地执行此操作,您需要结合良好的编码实践,测试大量开发和自动部署。

基本上,我们的想法是开发人员进行小的更改,并通过架构迁移进行充分测试。然后自动测试和部署它。