0

我试过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 运行良好。

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

4

1 回答 1

2

在这里使用参数列表作为参数run(),类似于使用 perlsystem()exec()内置函数的列表形式:

my @log_cmd = ('log', ($from ? "--since=$from" : ()), ($to ? "--until=$to" : ()));
my @commits = $repo->run(@log_cmd);
于 2013-09-19T06:04:03.380 回答