OSDN Git Service

Basic File diff dialog is okay to show prediff command
[tortoisegit/TortoiseGitJp.git] / src / Git / GitRev.cpp
index 2e48132..9088c7a 100644 (file)
@@ -403,4 +403,34 @@ void GitRev::DbgPrint()
                TRACE(_T("Parent %i %s"),i, m_ParentHash[i].ToString());\r
        }\r
        TRACE(_T("\n"));\r
+}\r
+\r
+int GitRev::GetCommitFromHash(CGitHash &hash)\r
+{\r
+       g_Git.CheckAndInitDll();\r
+\r
+       GIT_COMMIT commit;\r
+       if(git_get_commit_from_hash( &commit, hash.m_hash))\r
+               return -1;\r
+\r
+       this->ParserFromCommit(&commit);\r
+       git_free_commit(&commit);\r
+\r
+       this->m_CommitHash=hash;\r
+\r
+       return 0;\r
+       \r
+}\r
+\r
+int GitRev::GetCommit(CString &refname)\r
+{\r
+       g_Git.CheckAndInitDll();\r
+       CStringA rev;\r
+       rev= CUnicodeUtils::GetUTF8(refname);\r
+       GIT_HASH sha;\r
+\r
+       if(git_get_sha1(rev.GetBuffer(),sha))\r
+               return -1;\r
+\r
+       GetCommitFromHash(CGitHash((char*)sha));\r
 }
\ No newline at end of file