2010-08-05 69 views
0

我需要從PHP腳本svn修訂號。我用exec()使用了以下命令。但它不會返回任何東西。如何在PHP中使用exec()和命令獲取svn修訂號?

$value = exec("usr/bin/svn --username myusername--password mypassword info /home/mysite/mysite_www/mysite |grep Revision: |cut -c11-", $output, $status); 

$value = exec("svn info |grep Revision: |cut -c11-", $output, $status); 

我一直在使用份額劇本,但沒有結果也試過。 請指導我如何使用PHP和命令獲取SVN修訂版號。

+1

這並沒有真正有一個單一的事情做的Javascript內容獲取日期,不是嗎? – Pointy 2010-08-05 12:32:36

+0

你的第二個例子在這裏工作得很好(我更喜歡'| awk'/ Revision:/ {print $ 2}'',但這是個人選擇),如果它不起作用,那很可能是文件許可問題。 – Wrikken 2010-08-05 13:04:15

+0

我添加了JavaScript,所以如果解決方案在JavaScript中可用,我可以使用它。整個場景出現是因爲javascript緩存問題。 第二個例子沒有給出與我一樣的結果。無論如何,您的備註 – Dora 2010-08-05 13:37:30

回答

0

我建議從.svn/entries文件中使用類似下面的代碼片段獲取SVN修訂號。

// open .svn/entries file 
$content = file_get_contents("/path/to/your/site/.svn/entries"); 

// get revision number 
$lines = explode("\n", $content, 12); 
$revision = intval($lines[10]); 

// print out the revision number 
echo "Revision: " . $revision; 

利用這一點,你也可以通過解析的0​​

+0

Thanxs很多此解決方案工作 – Dora 2010-08-05 13:01:52

+0

依靠.svn內部(如:在條目文件中)應該被認爲是危險的:svn可能會更新它的格式,在那一刻svn仍然像一個魅力,但你的代碼休息。例如,在svn 1.1中,它曾經是XML ... – Wrikken 2010-08-05 13:07:24

+1

另外,當前第4行(索引3)包含_current_修訂版本。第11行(idx 10)將是'最後更改的修訂版'... – Wrikken 2010-08-05 13:12:53