2

特定のファイル (.m) の svn リビジョン番号をコード (Matlab) から直接取得する方法はありますか?

Matlab 関数 getSVNRevisionNumber(file.m) のようなものが必要です

ありがとう

4

2 に答える 2

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

これはまだバージョン管理されていないファイルを処理しません。それを行うより安全で完全な関数が存在する可能性がありますが、これは始まりです...

残念ながら、これもかなり遅いですが、コードは数行しかありません。svnkitJava を恐れず、サードパーティ ソフトウェアを使用する意思がある場合は、MATLAB 内から簡単に使用することもできます。

于 2013-11-04T10:32:52.633 に答える