OSDN Git Service

Version Tree Basic work
[tortoisegit/TortoiseGitJp.git] / src / Git / GitRev.h
1 #pragma once\r
2 #include "GitStatus.h"\r
3 #include "AtlTime.h"\r
4 \r
5 typedef std::vector<git_revnum_t> GIT_REV_LIST;\r
6 \r
7 #define LOG_REV_AUTHOR_NAME     _T('0')\r
8 #define LOG_REV_AUTHOR_EMAIL    _T('1')\r
9 #define LOG_REV_AUTHOR_DATE     _T('2')\r
10 #define LOG_REV_COMMIT_NAME     _T('3')\r
11 #define LOG_REV_COMMIT_EMAIL    _T('4')\r
12 #define LOG_REV_COMMIT_DATE             _T('5')\r
13 #define LOG_REV_COMMIT_SUBJECT  _T('6')\r
14 #define LOG_REV_COMMIT_BODY             _T('7')\r
15 #define LOG_REV_COMMIT_HASH             _T('8')\r
16 #define LOG_REV_COMMIT_PARENT   _T('9')\r
17 #define LOG_REV_COMMIT_FILE             _T('A')\r
18 #define LOG_REV_ITEM_BEGIN              _T('B')\r
19 #define LOG_REV_ITEM_END                _T('C')\r
20 \r
21 class CGit;\r
22 \r
23 class GitRev\r
24 {\r
25 public:\r
26         GitRev(void);\r
27 //      GitRev(GitRev &rev);\r
28 //      GitRev &operator=(GitRev &rev);\r
29         ~GitRev(void);\r
30         \r
31         enum\r
32         {\r
33                 REV_HEAD = -1,                  ///< head revision\r
34                 REV_BASE = -2,                  ///< base revision\r
35                 REV_WC = -3,                    ///< revision of the working copy\r
36                 REV_UNSPECIFIED = -4,   ///< unspecified revision\r
37         };\r
38         \r
39         int CopyFrom(GitRev &rev);\r
40 \r
41         static CString GetHead(){return CString(_T("HEAD"));};\r
42         static CString GetWorkingCopy(){return CString(GIT_REV_ZERO);};\r
43         \r
44         CString m_AuthorName;\r
45         CString m_AuthorEmail;\r
46         CTime   m_AuthorDate;\r
47         CString m_CommitterName;\r
48         CString m_CommitterEmail;\r
49         CTime m_CommitterDate;\r
50         CString m_Subject;\r
51         CString m_Body;\r
52         git_revnum_t m_CommitHash;\r
53         GIT_REV_LIST m_ParentHash;\r
54         CTGitPathList m_Files;\r
55         int     m_Action;\r
56         TCHAR m_Mark;\r
57         \r
58         BOOL IsBoundary(){return m_Mark == _T('-');}\r
59 \r
60         void Clear();\r
61         int ParserFromLog(CString &log);\r
62         CTime ConverFromString(CString input);\r
63         inline int ParentsCount(){return m_ParentHash.size();}\r
64         \r
65         //Show version tree Graphic\r
66         std::vector<int> m_Lanes;\r
67 \r
68         volatile LONG m_IsFull;\r
69         volatile LONG m_IsUpdateing;\r
70         \r
71         int SafeFetchFullInfo(CGit *git);\r
72 };\r