2016-08-24 4 views
0

Windows 7을 사용 중이며 MATLAB 2015b에 git 버전 2.6.1.windows.1이 있습니다. MATLAB/Git 통합이 효과적입니다.MATLAB 스크립트 내에서 Get Git Commit/Revision SHA 받기

나는 Git을 사용하여 소스 컨트롤로 개발중인 데이터 분석에 사용하는 MATLAB 도구 모음을 가지고있다. 이러한 도구는 날짜, 시간, 사용 된 파일, 명령 및 변수 값을 제공하는 실행시 로그 파일을 저장합니다. GIT 커밋 SHA 값을이 로그에 추가하여 데이터가 실행 된 버전으로 돌아가도록 추적 할 수 있으므로 알려진 버그로 인해 데이터의 일부가 유효하지 않을 수 있는지를 판단 할 수 있습니다.

MATLAB이 값에 액세스 할 수 있다는 것을 알고 있습니다. 제어되는 파일을 마우스 오른쪽 버튼으로 클릭하고 "소스 제어"를 선택한 다음 "수정본 표시"를 선택하고 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

위의 설명에서 언급했듯이 시스템 호출을 사용할 수 있습니다. get_git_hashobject.m로 저장

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(<filename>)처럼 실행 : 그냥 함수에 포장.