Git :: Repository不会运行git log

时间:2013-09-19 05:53:44

标签: git perl

我尝试通过git log --since 2013-09-17运行Git::Repository-run,但它无效。它说明了

git: 'log --since=2013-09-17' is not a git command. See 'git --help'.

然而,当我在控制台上运行命令时,它运行得很好。这是我的代码:

 41 my $repo = Git::Repository->new(
 42         git_dir => $git_path,
 43 );
 44 my $log_cmd = 'log'.($from ? " --since=$from" : '').($to ? " --until=$to" : '');
 48 my @commits = $repo->run($log_cmd);

另请注意,log没有任何since / until-params运行正常。

你们有没有人知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

在此处使用参数 list 作为run()的参数,类似于您使用perl的system()exec()内置函数的列表形式:

my @log_cmd = ('log', ($from ? "--since=$from" : ()), ($to ? "--until=$to" : ()));
my @commits = $repo->run(@log_cmd);