如何自动将SVN版本号放入我的Matlab代码中

时间:2013-11-04 09:37:01

标签: svn tortoisesvn matlab

是否有方法直接从代码(Matlab)获取特定文件(.m)的svn修订号?

我需要像Matlab函数getSVNRevisionNumber(file.m)

这样的东西

由于

2 个答案:

答案 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