2013-11-04 96 views

回答

2

SVN支持關鍵字,因此你需要的東西,如:

x='$Rev$' 

http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html

+0

感謝您的回答...好吧...但我可以在哪裏做到這一點?這不是一個Matlab語法!我是否在評論欄中添加該行? – Bobo87

+0

這是有效的matlab語法,只需將它放在一個文件中,檢查它的進出。 svn服務器會用'x =「$ Rev 1.20 $」'' – Daniel

+0

替代它,也許我錯了,但是當我寫x =「$ Rev $」時,我的Matlab會告訴我「無效字符(s) 」。但是,如果我提交併更新我的文件,則文件中不存在替換。 – Bobo87

5

有沒有內建命令做到這一點。 最簡單的方式來獲得這些信息可能是發出命令system和分析其輸出:

function rev = getRev(mfile) 

    SVN_EXE= 'C:\Program Files\TortoiseSVN\bin\svn.exe'; 
    command = sprintf('"%s" info "%s"', SVN_EXE, mfile); 
    [status,out] = system(command); 

    % check everything went well: 
    assert(~status); 

    % parse revision from output: 
    rev = regexp(out, 'Revision: (\d+)', 'tokens', 'once'); 
    % alternatively - depending on which info you really want 
    % rev = regexp(out, 'Last Changed Rev: (\d+)', 'tokens', 'once'); 

    rev = str2double(rev{1}); 
end 

這不處理版本的文件,但是,有可能是一個更安全,更完整的功能這樣做在那裏,但這是一個開始...

不幸的是,這樣做相當慢 - 另一方面它只有幾行代碼。 如果您不害怕java並願意使用第三方軟件,您也可以在MATLAB中輕鬆使用svnkit