3 #include "GitStatus.h"
\r
8 typedef std::vector<CGitHash> GIT_REV_LIST;
\r
10 #define LOG_REV_AUTHOR_NAME _T('0')
\r
11 #define LOG_REV_AUTHOR_EMAIL _T('1')
\r
12 #define LOG_REV_AUTHOR_DATE _T('2')
\r
13 #define LOG_REV_COMMIT_NAME _T('3')
\r
14 #define LOG_REV_COMMIT_EMAIL _T('4')
\r
15 #define LOG_REV_COMMIT_DATE _T('5')
\r
16 #define LOG_REV_COMMIT_SUBJECT _T('6')
\r
17 #define LOG_REV_COMMIT_BODY _T('7')
\r
18 #define LOG_REV_COMMIT_HASH _T('8')
\r
19 #define LOG_REV_COMMIT_PARENT _T('9')
\r
20 #define LOG_REV_COMMIT_FILE _T('A')
\r
21 #define LOG_REV_ITEM_BEGIN _T('B')
\r
22 #define LOG_REV_ITEM_END _T('C')
\r
30 // GitRev(GitRev &rev);
\r
31 // GitRev &operator=(GitRev &rev);
\r
36 REV_HEAD = -1, ///< head revision
\r
37 REV_BASE = -2, ///< base revision
\r
38 REV_WC = -3, ///< revision of the working copy
\r
39 REV_UNSPECIFIED = -4, ///< unspecified revision
\r
42 int CopyFrom(GitRev &rev,bool OmitParentAndMark=false);
\r
44 static CString GetHead(){return CString(_T("HEAD"));};
\r
45 static CString GetWorkingCopy(){return CString(GIT_REV_ZERO);};
\r
47 CString m_AuthorName;
\r
48 CString m_AuthorEmail;
\r
50 CString m_CommitterName;
\r
51 CString m_CommitterEmail;
\r
52 CTime m_CommitterDate;
\r
55 CGitHash m_CommitHash;
\r
56 GIT_REV_LIST m_ParentHash;
\r
57 CTGitPathList m_Files;
\r
61 CString m_RefAction;
\r
63 BOOL IsBoundary(){return m_Mark == _T('-');}
\r
66 int ParserFromLog(BYTE_VECTOR &log,int start=0);
\r
67 CTime ConverFromString(CString input);
\r
68 inline int ParentsCount(){return m_ParentHash.size();}
\r
70 //Show version tree Graphic
\r
71 std::vector<int> m_Lanes;
\r
73 volatile LONG m_IsFull;
\r
74 volatile LONG m_IsUpdateing;
\r
76 int SafeFetchFullInfo(CGit *git);
\r
78 int ParserFromCommit(GIT_COMMIT *commit);
\r
79 int ParserParentFromCommit(GIT_COMMIT *commit);
\r
81 TIME_ZONE_INFORMATION m_TimeZone;
\r