【问题标题】:Can I run a script when I commit to subversion?我可以在提交颠覆时运行脚本吗?
【发布时间】:2010-09-13 10:48:34
【问题描述】:

我想运行一个脚本来为我的 php 项目构建文档。它基本上只是使用 wget 来运行 phpdoc。

【问题讨论】:

    标签: svn hook phpdoc


    【解决方案1】:

    使用 SVN 挂钩的替代方法是使用持续集成引擎。就个人而言,我是Hudson 的粉丝。 CruiseControl 是经典,但others 太多了。

    为什么要使用持续集成引擎?一般来说,它们比简单地使用 SVN 钩子更强大、功能丰富且可移植(如果您想切换到使用 Mercurial、Git 等怎么办?)。

    【讨论】:

      【解决方案2】:

      您可能想查看Phing 以获取完整的构建脚本工具。您可以在一处管理提交、文档和其他与构建相关的活动。

      【讨论】:

        【解决方案3】:

        (回答我自己的问题,我只是认为其他人也想知道)。是的,而且 TortoiseSVN 也支持它。您正在寻找的词是“钩子”。

        对于 TortoiseSVN,打开设置和“挂钩脚本”。单击“添加...”并选择 post_commit_hook(用于在提交完成后运行)。然后添加您正在运行的任何脚本和脚本的工作路径。

        我使用了一个批处理文件并称为 wget(有一个 windows 版本移植,谷歌它)。要让 wget 将来自 phpdoc 的日志存储在一个特定路径中,您必须指定完整路径,否则日志将存储在您提交的当前文件夹中,因此我的批处理文件如下所示:

        SET BUILDLOG=%~dp0%build_log.html
        rem %~dp0 returns the full working path *of this script*
        SET PHPDOCURL=http://localhost/PHPDocumentor/docbuilder
        SET PHPDOCCONFIG=yourconfigfile
        
        wget -O %BUILDLOG% "%PHPDOCURL%/builder.php?setting_useconfig=%PHPDOCCONFIG%&setting_output=HTML%3ASmarty%3Adefault&ConverterSetting=HTML%3ASmarty%3Adefault&setting_title=Generated+Documentation&setting_defaultpackagename=default&setting_defaultcategoryname=default&interface=web&dataform=true"
        

        现在,无论何时提交,都会调用批处理脚本。你当然也可以使用 php 作为命令行工具,但我没有用 phpdoc 研究过——我只是选择了阻力最小的路径。

        【讨论】:

          【解决方案4】:

          这是关于SVN hooks的相当广泛的教程

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-12-01
            • 1970-01-01
            • 1970-01-01
            • 2011-02-25
            • 1970-01-01
            • 1970-01-01
            • 2011-01-11
            • 1970-01-01
            相关资源
            最近更新 更多