在Subversion 1.6中,每個工作副本目錄中都有一個.svn
目錄。我可以使用下面的代碼快速檢索當前版本號,而不需要shell訪問/執行。在PHP中可移植地檢索Subversion 1.7修訂版?
public function getSubversionRevision() {
if(file_exists("../.svn/entries")) {
$svn = File("../.svn/entries");
return (int)$svn[3];
}
return false;
}
Subversion 1.7打破了這段代碼。每個本地存儲庫現在只有一個.svn
目錄。有是和entries
文件在這個目錄中,但它不再有任何有用的東西。它看起來像我需要的一切現在在SQLite數據庫中。具體爲wc.db
。我想我可以使用PHP的SQLite函數獲取我需要的信息,但這聽起來有點過於昂貴,無法在每次(或接近每次)頁面加載時運行。
任何想法?打破exec
函數並希望安裝Subversion二進制文件(並在$ PATH!中)是最後的手段。總而言之,我需要找到一種方法來找到存儲庫根目錄下的.svn
目錄(根據您的簽出位置可能有所不同),然後以經濟高效的方式解析文件(可能爲wc.db
)。
你使用的是什麼操作系統獲取的
svnversion
? – 2012-07-27 06:06:08Linux是目標操作系統。目標是儘可能使代碼儘可能便攜,以使操作系統和該操作系統的特定配置在最大程度上無關緊要。 – 2012-07-27 06:08:38
從操作系統到操作系統,我看不到很多可移植性的使用。如果你正在嘗試在Linux上使用它,你可以每次爲你寫一個腳本到'svn update',並且將更新的輸出中的修訂版號刪除到一個文件中。 'svn - 非交互式更新..'然後 'svn - 非交互式更新.. | perl -p -e「s /.* revision([\ d] *)\ ./ \ $ 1 /」> ../ version.phtml;' – 2012-07-27 06:26:02