#include "StdAfx.h"\r
#include "GitRev.h"\r
-\r
+#include "Git.h"\r
\r
GitRev::GitRev(void)\r
{\r
m_Action=0;\r
+ m_IsFull = 0;\r
+ m_IsUpdateing = 0;\r
}\r
\r
GitRev::~GitRev(void)\r
m_CommitHash.Empty();\r
\r
}\r
+int GitRev::CopyFrom(GitRev &rev)\r
+{\r
+ m_AuthorName =rev.m_AuthorName ;\r
+ m_AuthorEmail =rev.m_AuthorEmail ;\r
+ m_AuthorDate =rev.m_AuthorDate ;\r
+ m_CommitterName =rev.m_CommitterName ;\r
+ m_CommitterEmail=rev.m_CommitterEmail;\r
+ m_CommitterDate =rev.m_CommitterDate ;\r
+ m_Subject =rev.m_Subject ;\r
+ m_Body =rev.m_Body ;\r
+ m_CommitHash =rev.m_CommitHash ;\r
+ m_ParentHash =rev.m_ParentHash ;\r
+ m_Files =rev.m_Files ; \r
+ m_Action =rev.m_Action ;\r
+ return 0;\r
+}\r
int GitRev::ParserFromLog(CString &log)\r
{\r
int pos=0;\r
_wtoi(input.Mid(20,4)));\r
return tm;\r
}\r
+\r
+int GitRev::SafeFetchFullInfo(CGit *git)\r
+{\r
+ if(InterlockedExchange(&m_IsUpdateing,TRUE) == FALSE)\r
+ {\r
+ //GitRev rev;\r
+ CString onelog;\r
+ git->GetLog(onelog,m_CommitHash,1);\r
+ CString oldhash=m_CommitHash;\r
+ ParserFromLog(onelog);\r
+ \r
+ //ASSERT(oldhash==m_CommitHash);\r
+\r
+ InterlockedExchange(&m_IsUpdateing,FALSE);\r
+ InterlockedExchange(&m_IsFull,TRUE);\r
+ return 0;\r
+ }\r
+ return -1;\r
+}
\ No newline at end of file