2016-08-24 4 views
0

私はWindows 7を使用していますが、gitバージョン2.6.1.windows.1のMATLAB 2015bがあります。 MATLAB/Gitの統合が機能しています。MATLABスクリプト内からGitコミット/リビジョンSHAを取得

Gitを使ってソースコントロールで開発されているデータ解析に使用するMATLABツールがあります。これらのツールは、実行時に日付、時刻、使用されたファイル、コマンド、変数の値を与えるログファイルを保存します。これらのログにGITコミットSHA値を追加して、実行されたバージョンにデータを戻すことができ、既知のバグのためにデータの一部が無効であるかどうかを判断できます。

私はMATLABが値にアクセスできることを知っています。私はGitで制御されたファイルを右クリックし、 "ソースコントロール"を選択してから "リビジョンを表示"してSHAを見ることができます。この値を取得してログに記録できるようにするためのMATLABコマンドまたはアクセス可能なオブジェクトメソッドがありますか?

+1

ねえ。 '!git hash-object 'と '!git ls-files -s '(システムコマンド)をチェックしましたか? –

+0

このスレッドをチェックしてください:http://stackoverflow.com/questions/460297/git-finding-the-sha1-of-an-individual-file-in-the-index –

+0

あなたはおそらくむしろ '! git log'または '!git rev-list'を参照してください:http://stackoverflow.com/questions/4784575/how-do-i-find-the-most-recent-git-commit-that-modified-a -ファイル。私はシステムコマンドの出力を解析するだけです。 –

答えて

1

上記のコメントのとおり、システムコールを使用できます。ただ、関数内でそれをラップ:

function hash = get_git_hashobject(filename) 
%get_git_hashobject Performs a system call to `git hash-object` and returnd 
%the hash value. 
    command = [ 'git hash-object -- ' filename ]; 
    [status,hash] = system(command); 
    if(status ~= 0) 
     error('Unable to get hash from file.'); 
    end 
end 

get_git_hashobject.mとしてそれを保存しget_git_hashobject(<filename>)ようにそれを実行します。

関連する問題