#include "Git.h"\r
#include "TGitPath.h"\r
#include "GitRev.h"\r
+#include "GitHash.h"\r
\r
#define LOG_INDEX_MAGIC 0x88445566\r
#define LOG_DATA_MAGIC 0x99aa00FF\r
#define LOG_DATA_ITEM_MAGIC 0x0F8899CC\r
#define LOG_DATA_FILE_MAGIC 0x19999FFF\r
-#define LOG_INDEX_VERSION 0x6 \r
+#define LOG_INDEX_VERSION 0x7\r
\r
struct SLogCacheIndexHeader \r
{\r
\r
struct SLogCacheItem\r
{\r
- BYTE m_Hash[40];\r
+ CGitHash m_Hash;\r
ULONGLONG m_Offset;\r
};\r
\r
DWORD m_FileCount;\r
};\r
\r
+class CGitHashMap:public std::map<CGitHash,GitRev>\r
+{\r
+public:\r
+ bool IsExist(CGitHash &hash)\r
+ {\r
+ return find(hash) != end();\r
+ }\r
+};\r
+\r
#define INDEX_FILE_NAME _T("tortoisegit.index")\r
#define DATA_FILE_NAME _T("tortoisegit.data")\r
#define LOCK_FILE_NAME _T("tortoisegit.lock")\r
CLogCache();\r
~CLogCache();\r
int FetchCacheIndex(CString GitDir);\r
- std::vector<GitRev> m_NewCacheEntry;\r
- std::map<CString, ULONGLONG> m_HashMapIndex;\r
- int GetCacheData(GitRev &Rev);\r
+\r
+ CGitHashMap m_HashMap;\r
+ std::map<CGitHash, ULONGLONG> m_HashMapIndex;\r
+\r
+ GitRev * GetCacheData(CGitHash &Rev);\r
int AddCacheEntry(GitRev &Rev);\r
int SaveCache();\r
\r
+ int ClearAllParent();\r
\r
};
\ No newline at end of file