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