是否有一種方法直接從代碼(Matlab)中獲取特定文件(.m)的svn修訂版號?如何將SVN修訂版本號自動寫入我的Matlab代碼
我需要的東西像MATLAB函數getSVNRevisionNumber(file.m)
感謝
是否有一種方法直接從代碼(Matlab)中獲取特定文件(.m)的svn修訂版號?如何將SVN修訂版本號自動寫入我的Matlab代碼
我需要的東西像MATLAB函數getSVNRevisionNumber(file.m)
感謝
SVN支持關鍵字,因此你需要的東西,如:
x='$Rev$'
http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html
有沒有內建命令做到這一點。 最簡單的方式來獲得這些信息可能是發出命令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
。
感謝您的回答...好吧...但我可以在哪裏做到這一點?這不是一個Matlab語法!我是否在評論欄中添加該行? – Bobo87
這是有效的matlab語法,只需將它放在一個文件中,檢查它的進出。 svn服務器會用'x =「$ Rev 1.20 $」'' – Daniel
替代它,也許我錯了,但是當我寫x =「$ Rev $」時,我的Matlab會告訴我「無效字符(s) 」。但是,如果我提交併更新我的文件,則文件中不存在替換。 – Bobo87