是否有方法直接从代码(Matlab)获取特定文件(.m)的svn修订号?
我需要像Matlab函数getSVNRevisionNumber(file.m)
这样的东西由于
答案 0 :(得分: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
。
答案 1 :(得分:2)
SVN支持关键字,因此您需要以下内容:
x='$Rev$'
http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html