OSDN Git Service

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