我承诺颠覆时可以运行脚本吗?

时间:2008-09-26 12:56:09

标签: svn hook phpdoc

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

4 个答案:

答案 0 :(得分:14)

这是关于SVN hooks

的相当广泛的教程

答案 1 :(得分:10)

(回答我自己的问题,我只是想其他人也想知道)。是的,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来研究它 - 我只是采用了阻力最小的路径。

答案 2 :(得分:3)

使用SVN钩子的另一种方法是使用连续集成引擎。就个人而言,我是Hudson的粉丝。 CruiseControl是经典,但有others过多。

为什么要使用持续集成引擎?一般来说,它们比仅仅使用SVN钩子更强大,功能更丰富,更便携(如果你想切换到使用Mercurial,Git等,那该怎么办?)。

答案 3 :(得分:2)

您可能需要查看Phing以获取完整的构建脚本工具。您可以在一个地方管理提交,文档和其他构建相关的活动。