有没有一种方法可以直接从代码(Matlab)中获取特定文件(.m)的 svn 修订号?
我需要类似 Matlab 函数 getSVNRevisionNumber(file.m)
谢谢
有没有一种方法可以直接从代码(Matlab)中获取特定文件(.m)的 svn 修订号?
我需要类似 Matlab 函数 getSVNRevisionNumber(file.m)
谢谢
没有内置命令可以做到这一点。获取该信息的最简单方法可能是发出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 并且愿意使用第三方软件,您也可以svnkit
在 MATLAB 中轻松使用。
SVN 支持关键字,因此您需要类似:
x='$Rev$'
http://svnbook.red-bean.com/en/1.4/svn.advanced.props.special.keywords.html