4 #include "TGitPath.h"
\r
8 #define LOG_INDEX_MAGIC 0x88445566
\r
9 #define LOG_DATA_MAGIC 0x99aa00FF
\r
10 #define LOG_DATA_ITEM_MAGIC 0x0F8899CC
\r
11 #define LOG_DATA_FILE_MAGIC 0x19999FFF
\r
12 #define LOG_INDEX_VERSION 0x7
\r
14 struct SLogCacheIndexHeader
\r
21 struct SLogCacheItem
\r
27 struct SLogCacheRevFileHeader
\r
33 struct SLogCacheRevItemHeader
\r
40 class CGitHashMap:public std::map<CGitHash,GitRev>
\r
43 bool IsExist(CGitHash &hash)
\r
45 return find(hash) != end();
\r
49 #define INDEX_FILE_NAME _T("tortoisegit.index")
\r
50 #define DATA_FILE_NAME _T("tortoisegit.data")
\r
51 #define LOCK_FILE_NAME _T("tortoisegit.lock")
\r
60 BOOL CheckHeader(SLogCacheIndexHeader &header)
\r
62 if(header.m_Magic != LOG_INDEX_MAGIC)
\r
65 if(header.m_Version != LOG_INDEX_VERSION)
\r
71 BOOL CheckHeader(SLogCacheRevFileHeader &header)
\r
73 if(header.m_Magic != LOG_DATA_MAGIC)
\r
76 if(header.m_Version != LOG_INDEX_VERSION)
\r
82 BOOL CheckHeader(SLogCacheRevItemHeader &header)
\r
84 if(header.m_Magic != LOG_DATA_ITEM_MAGIC)
\r
87 if(header.m_Version != LOG_INDEX_VERSION)
\r
93 int SaveOneItem(GitRev &Rev,ULONGLONG offset);
\r
94 int LoadOneItem(GitRev &Rev,ULONGLONG offset);
\r
96 int RebuildCacheFile();
\r
101 int FetchCacheIndex(CString GitDir);
\r
103 CGitHashMap m_HashMap;
\r
104 std::map<CGitHash, ULONGLONG> m_HashMapIndex;
\r
106 GitRev * GetCacheData(CGitHash &Rev);
\r
107 int AddCacheEntry(GitRev &Rev);
\r
110 int ClearAllParent();
\r