我尝试通过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运行正常。
你们有没有人知道我在这里做错了什么?
答案 0 :(得分:2)
在此处使用参数 list 作为run()
的参数,类似于您使用perl的system()
或exec()
内置函数的列表形式:
my @log_cmd = ('log', ($from ? "--since=$from" : ()), ($to ? "--until=$to" : ()));
my @commits = $repo->run(@log_cmd);