#pragma once\r
+#include "gittype.h"\r
#include "GitStatus.h"\r
#include "AtlTime.h"\r
\r
#define LOG_REV_ITEM_BEGIN _T('B')\r
#define LOG_REV_ITEM_END _T('C')\r
\r
-\r
+class CGit;\r
\r
class GitRev\r
{\r
// GitRev(GitRev &rev);\r
// GitRev &operator=(GitRev &rev);\r
~GitRev(void);\r
+ \r
enum\r
{\r
REV_HEAD = -1, ///< head revision\r
REV_WC = -3, ///< revision of the working copy\r
REV_UNSPECIFIED = -4, ///< unspecified revision\r
};\r
+ \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
+ \r
CString m_AuthorName;\r
CString m_AuthorEmail;\r
CTime m_AuthorDate;\r
GIT_REV_LIST m_ParentHash;\r
CTGitPathList m_Files;\r
int m_Action;\r
- int ParserFromLog(CString &log);\r
+ TCHAR m_Mark;\r
+ \r
+ BOOL IsBoundary(){return m_Mark == _T('-');}\r
+\r
+ void Clear();\r
+ int ParserFromLog(BYTE_VECTOR &log,int start=0);\r
CTime ConverFromString(CString input);\r
+ inline int ParentsCount(){return m_ParentHash.size();}\r
+ \r
+ //Show version tree Graphic\r
+ std::vector<int> m_Lanes;\r
+\r
+ volatile LONG m_IsFull;\r
+ volatile LONG m_IsUpdateing;\r
+ \r
+ int SafeFetchFullInfo(CGit *git);\r
};\r