From 261abf572db3f91f4d19a651b1b0321ae69d345f Mon Sep 17 00:00:00 2001 From: Frank Li Date: Thu, 17 Feb 2011 19:41:36 +0800 Subject: [PATCH] Fixed issue #715: Unable to show log when there are old version cache file Signed-off-by: Frank Li --- src/TortoiseProc/GitLogCache.cpp | 6 ++++++ src/TortoiseProc/gitlogcache.h | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/TortoiseProc/GitLogCache.cpp b/src/TortoiseProc/GitLogCache.cpp index f8fec4977..314678074 100644 --- a/src/TortoiseProc/GitLogCache.cpp +++ b/src/TortoiseProc/GitLogCache.cpp @@ -196,6 +196,8 @@ int CLogCache::FetchCacheIndex(CString GitDir) if(ret) { CloseIndexHandles(); + ::DeleteFile(GitDir+_T("\\.git\\")+INDEX_FILE_NAME); + ::DeleteFile(GitDir+_T("\\.git\\")+DATA_FILE_NAME); } return ret; @@ -329,6 +331,8 @@ int CLogCache::RebuildCacheFile() ::SetFilePointer(m_IndexFile,0,0,0); ::SetFilePointer(m_DataFile,0,0,0); + SetEndOfFile(this->m_IndexFile); + SetEndOfFile(this->m_DataFile); DWORD num; WriteFile(this->m_IndexFile,&Indexheader,sizeof(SLogCacheIndexHeader),&num,0); @@ -423,6 +427,8 @@ int CLogCache::SaveCache() } } + if(bIsRebuild) + header.m_ItemCount=0; SetFilePointer(m_DataFile,0,0,2); SetFilePointer(m_IndexFile,0,0,2); diff --git a/src/TortoiseProc/gitlogcache.h b/src/TortoiseProc/gitlogcache.h index a70abe870..a6bbf6ee7 100644 --- a/src/TortoiseProc/gitlogcache.h +++ b/src/TortoiseProc/gitlogcache.h @@ -5,11 +5,11 @@ #include "GitRev.h" #include "GitHash.h" -#define LOG_INDEX_MAGIC 0x88445566 -#define LOG_DATA_MAGIC 0x99aa0FFF -#define LOG_DATA_ITEM_MAGIC 0x0F889ACC -#define LOG_DATA_FILE_MAGIC 0x19999DFF -#define LOG_INDEX_VERSION 0xD +#define LOG_INDEX_MAGIC 0x88AA5566 +#define LOG_DATA_MAGIC 0x99BB0FFF +#define LOG_DATA_ITEM_MAGIC 0x0FCC9ACC +#define LOG_DATA_FILE_MAGIC 0x19EE9DFF +#define LOG_INDEX_VERSION 0xF #pragma pack (1) struct SLogCacheIndexHeader -- 2.11.4.GIT