我试图在svn上执行操作,通过用Perl编写的CGI脚本使用svn log URL
命令获取日志文件。我正在使用WAMP服务器。我的Perl脚本中的所有语句都正常执行,但svn命令却没有。同时,像svn --help
等简单的命令可以提供准确的输出。我认为,在执行svn log URL
命令并尝试将输出打印到HTML页面(或重定向到其他文件)之前,需要从我的CGI脚本到SVN客户端建立连接。有人可以帮助我从我的CGI脚本建立与SVN的连接吗?谢谢!
print `svn log -v --stop-on-copy --quiet https://svnmirror.XXXXX/branches/BranchName`;
#print `svn --help`;
$creatDate = substr `svn log --stop-on-copy --quiet $branchName | tail -2 | cut -f3 -d "|"`, 1, 10 ;
print "Start Date Is Creation Date(i.e. $creatDate) \n";
[正如您所看到的,我执行命令“svn log URL”的行不会打印日志文件,但是如果我取消注释第二行(即svn --help),则它会提供输出。当我试图打印“creatDate”变量时,它什么都没打印。
答案 0 :(得分:0)
不要在Perl中使用命令行客户端,使用Alien::SVN并直接使用SVN库。从CGI内部调用外部程序是一个潜在的安全问题,而且通常比使用适当的库/模块更麻烦。
如果你需要的话,似乎还有一个模块specifically for retrieving logs,但看起来已经放弃了。