结合的核心:
执行php ztcli http://禅道的访问路径/svn-run.html
如果直接运行这个页面
http://localhost:88/zentao/svn-run.html
2013-03-14 23:25:48 begin repo 1 2013-03-14 23:25:48 start from revision 0 Some error occers:
The command is C:\Program Files (x86)\Subversion\bin\svn.exe --non-interactive --username text --password tef --no-auth-cache log -r 0:HEAD -v --xml https://robinPC/svn/test/ the svn logs is。。。。。。。。。。。
问题在双引号/? 把目录加到系统那个环境变量,okay,去掉空格\Program Files (x86)
单独运行那个命令来看:
C:\Program Files (x86)\Subversion\bin\svn.exe --non-interactive --username tcccc --password txxxxx --no-auth-cache log -r 0:HEAD -v --xml https://robinPC/svn/test/
输出XML:
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="1">
<author>VisualSVN Server</author>
<date>2013-03-14T13:07:09.976274Z</date>
<paths>
<path
action="A"
prop-mods="false"
text-mods="false"
kind="dir">/tags</path>
<path
action="A"
prop-mods="false"
text-mods="false"
kind="dir">/trunk</path>
<path
action="A"
prop-mods="false"
text-mods="false"
kind="dir">/branches</path>
</paths>
<msg>Initial structure.</msg>
</logentry>
<logentry
revision="2">
<author>test</author>
<date>2013-03-14T14:28:58.437082Z</date>
<paths>
<path
action="A"
prop-mods="false"
text-mods="true"
kind="file">/branches/t1.txt</path>
</paths>
<msg>mytest</msg>
</logentry>
<logentry
revision="3">
<author>test</author>
<date>2013-03-14T14:57:36.230334Z</date>
<paths>
<path
action="M"
prop-mods="false"
text-mods="true"
kind="file">/branches/t1.txt</path>
</paths>
<msg>sfesge</msg>
</logentry>
回首再看 ztcli,主要是有个封装好的
php ztcli %*
表示可以接受参数,以下面为参数:
http://localhost:88/zentao/svn-run.html
2013-03-14 23:36:18 start from revision 0
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。Some error occers:
The command is C:\Program Files (x86)\Subversion\bin\svn.exe --non-interactive -
ztcli还蛮复杂的:
chdir(dirname(__FILE__));
include '../framework/router.class.php';
include '../framework/control.class.php';
include '../framework/model.class.php';
include '../framework/helper.class.php';
include '../config/config.php';if($config->requestType == 'PATH_INFO')
{
$_SERVER['PATH_INFO'] = str_replace($config->webRoot, '', $request['path']);
}
else
{
parse_str($request['query'], $_GET);
$_SERVER['SCRIPT_NAME'] = $_SERVER['HTTP_HOST'] . 'index.php';
$_SERVER['REQUEST_URI'] = isset($request['query']) ? $request['query'] : '';
}/* Instance the app and run it. */
$app = router::createApp('pms', dirname(dirname(__FILE__)));
$common = $app->loadCommon();
$app->parseRequest();
$app->loadModule();
相关内容
工作思路:
通过svn客户端软件的log命令,来获得所有的提交记录,然后分析,得出相应的id,写入数据库。
像上述的分析的log,svn.exe log命令获得版本号 ,服务器,时间,代码,commit msg,解析第二行 message即可,解析就需要一定的格式了,例如代码提交注释格式:
开发者在提交svn的时候,需要在备注里面注明此次修改相关的需求,或者任务,或者bug的id。比如下面的格式:
bug#1232341234,也可以是bug:123,id列表之间,用逗号和空格都可以。
story#123task#123
bugstorytask是必须标注的。:)
//第二个方案调试比较好调试,部署也相对方便,同时可以解析之前的所有记录,有比较好的灵活性。
这个方案需要搞增量。。。
注意到这个log是通过repository url获取的,所以可以是不用再svn服务器上的/
在禅道所在机器上面部署svn命令行客户端。
svn命令行客户端是指subversion自带的svn命令。windows下面是svn.exe,linux下面是没有后缀的svn。
禅道命令行接口给大家提供了另外一种控制禅道的方式,可以通过它来进行各种各样的操作。
一、何谓命令行入口
先来介绍一下禅道项目管理软件的入口。
禅道项目管理软件其实现在有很多个入口,大家平时访问的是www/index.php,这是最重要,也是大家平时都在使用的入口。还有就是www/install.php, www/upgrade.php,顾名思义,为安装的入口和升级的入口。这三个入口,index.php是有权限控制的,而install.php和upgrade.php则没有权限限制,只有在特定的情况下面才会起作用。正常安装或者升级之后,再访问install.php或者upgrade.php是无效的。
禅道的命令行入口位于bin/ztcli。其实它也是一段php代码。它主要是给禅道的系统管理员使用的。通过这个入口,可以非常方便的访问到禅道系统的每一个页面,从而为各种便利的操作提供了可能。
二、命令行入口的基本用法:
命令行入口有三个文件,分别是ztcli, ztcli.sh和ztcli.bat。其中ztcli是主体的php脚本。另外两个则是为了使用方便,做的封装。先来看主体脚本的执行。
在bin目录下面执行下面的命令(一定要在bin目录下面。)
语法格式:php ztcli http://xxxx/zentaopms/xxxxx(其中的php,如果找不到,则根据需要换成php可执行文件所在的绝对路径.)
举例来讲,我的禅道的访问路径是 http://pms.zentao.cn,我想触发燃烧图的更新程序,命令如下:
php ztcli http://pms.zentao.cn/project-computeburn.html
如果你配置的禅道访问方式是通过GET方式,那么命令则变成:
php ztcli "http://pms.zentao.cn/?m=project&f=computeburn",这时后面的url地址需要用引号引起来。
也就是说你在浏览器里面看到的是什么,通过ztcli都可以访问。
三、封装
如果你php可执行文件不在PATH路径中,那么你可以修改ztcli.sh(linux)或者ztcli.bat(windows),将其中的路径补全。
比如ztcli.bat中,我可以这样写 d:\zentao\user\local\php\php.exe ztcl %*
封装好之后,你就可以直接运行ztclibat url地址就可以了。
四、高级用法
在你访问禅道的页面时候,可以将访问的资源变化一下,比如http://pms.zentao.cn/project-task-8.html,返回的网页格式,把后面的.html改成.json,返回的是什么?对了,返回的是json格式的数据。如果是GET 方式,那么只需要将t参数改成json,http://pms.zentao.cn/?m=project&f=task&t=json.
通过这个超级的命令行入口,其实可以做很多事情了。具体如何使用,看大家灵活运用了。