2014-06-20 29 views
0

我試圖通過系統調用perl中的git log命令將其輸出到文件,但我一直說「不是git存儲庫」。我的代碼如下。有什麼建議麼?不能在系統調用中克隆perl

該perl片段:

Readonly my $CLONE_COMMAND => 'git_clone.bat'; 
Readonly my $GIT_LOG_COMMAND => 'git_log_pretty'; 

system("$GIT_LOG_COMMAND > $GIT_REPO_XML_FILE"); 

git_clone.bat:(回購URL傳遞作爲%1,回購爲%的名稱2)

@echo off 
cd "c:\MyGit" 
git clone "%1" 
cd "c:\MyGit\%2" 

git_log_pretty.bat:

git log --pretty="format:<author>%an</author>%n<date>%ai</date>%n<msg>don't care</msg>%n" --name-only 
+0

什麼是錯誤,'git_clone'或'git_log_pretty'?如果是前者,你怎麼稱呼'git_clone'?如果是後者,'使用Cwd的輸出是多少?打印getcwd(),「\ n」;'在系統調用之前? – ikegami

+0

git_log_pretty是導致錯誤的那個。當我打印目錄時,使用你的建議它會打印出「C:\ MyGit \ hone(hone是它克隆的回購) – Busch

回答

0

Busch,你知道Perl的當前工作目錄是什麼嗎?

你可以試試:

use Cwd; 
$dir = getcwd(); 
print $dir; 

確保它從你的倉庫中運行時,你所要求的「git的日誌」,並嘗試「CHDIR」到那裏的腳本中,如果它不是。

+0

工作目錄設置在C:\ MyGit \ hone(我是克隆的回購庫) – Busch