OSDN Git Service

merge original branch.
[tortoisegit/TortoiseGitJp.git] / src / Git / GitRev.h
index 3070c8a..cc93f96 100644 (file)
@@ -1,8 +1,11 @@
 #pragma once\r
+#include "gittype.h"\r
 #include "GitStatus.h"\r
 #include "AtlTime.h"\r
+#include "GitHash.h"\r
+#include "GitDll.h"\r
 \r
-typedef std::vector<git_revnum_t> GIT_REV_LIST;\r
+typedef std::vector<CGitHash> GIT_REV_LIST;\r
 \r
 #define LOG_REV_AUTHOR_NAME    _T('0')\r
 #define LOG_REV_AUTHOR_EMAIL   _T('1')\r
@@ -36,7 +39,7 @@ public:
                REV_UNSPECIFIED = -4,   ///< unspecified revision\r
        };\r
        \r
-       int CopyFrom(GitRev &rev);\r
+       int CopyFrom(GitRev &rev,bool OmitParentAndMark=false);\r
 \r
        static CString GetHead(){return CString(_T("HEAD"));};\r
        static CString GetWorkingCopy(){return CString(GIT_REV_ZERO);};\r
@@ -49,13 +52,18 @@ public:
        CTime m_CommitterDate;\r
        CString m_Subject;\r
        CString m_Body;\r
-       git_revnum_t m_CommitHash;\r
+       CGitHash m_CommitHash;\r
        GIT_REV_LIST m_ParentHash;\r
        CTGitPathList m_Files;\r
        int     m_Action;\r
-       \r
+       TCHAR m_Mark;\r
+       CString m_Ref;\r
+       CString m_RefAction;\r
+\r
+       BOOL IsBoundary(){return m_Mark == _T('-');}\r
+\r
        void Clear();\r
-       int ParserFromLog(CString &log);\r
+       int ParserFromLog(BYTE_VECTOR &log,int start=0);\r
        CTime ConverFromString(CString input);\r
        inline int ParentsCount(){return m_ParentHash.size();}\r
        \r
@@ -66,4 +74,15 @@ public:
        volatile LONG m_IsUpdateing;\r
        \r
        int SafeFetchFullInfo(CGit *git);\r
+\r
+       int ParserFromCommit(GIT_COMMIT *commit);\r
+       int ParserParentFromCommit(GIT_COMMIT *commit);\r
+\r
+       int GetCommitFromHash(CGitHash &hash);\r
+       int GetCommit(CString &Rev);\r
+\r
+public:\r
+       void DbgPrint();\r
+private:\r
+       TIME_ZONE_INFORMATION m_TimeZone;\r
 };\r