0

我正在尝试在 svn 上执行操作,以svn log URL通过用 Perl 编写的 CGI 脚本使用命令获取日志文件。我为此使用 WAMP 服务器。我的 Perl 脚本中的所有语句都正常执行,但 svn 命令没有。同时,诸如svn --helpetc 之类的简单命令正在提供准确的输出。我认为,在执行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”变量时,它什么也没打印。

4

1 回答 1

0

不要在 Perl 中使用命令行客户端,使用Alien::SVN并直接使用 SVN 库。从 CGI 中调用外部程序是一个潜在的安全问题,并且通常比使用适当的库/模块来完成工作更麻烦。

如果这就是您所需要的,似乎还有一个专门用于检索日志的模块,但它看起来被遗弃了。

于 2013-07-05T13:59:25.593 回答