#include "CacheInterface.h"\r
#include "registry.h"\r
\r
-DWORD cachetimeout = (DWORD)CRegStdWORD(_T("Software\\TortoiseSVN\\Cachetimeout"), CACHETIMEOUT);\r
+DWORD cachetimeout = (DWORD)CRegStdWORD(_T("Software\\TortoiseGit\\Cachetimeout"), CACHETIMEOUT);\r
\r
CStatusCacheEntry::CStatusCacheEntry()\r
: m_bSet(false)\r
, m_bSVNEntryFieldSet(false)\r
-// , m_kind(svn_node_unknown)\r
+ , m_kind(git_node_unknown)\r
, m_bReadOnly(false)\r
, m_highestPriorityLocalStatus(git_wc_status_none)\r
{\r
CStatusCacheEntry::CStatusCacheEntry(const git_wc_status2_t* pGitStatus, __int64 lastWriteTime, bool bReadOnly, DWORD validuntil /* = 0*/)\r
: m_bSet(false)\r
, m_bSVNEntryFieldSet(false)\r
-// , m_kind(svn_node_unknown)\r
+ , m_kind(git_node_unknown)\r
, m_bReadOnly(false)\r
, m_highestPriorityLocalStatus(git_wc_status_none)\r
{\r
WRITEVALUETOFILE(m_lastWriteTime);\r
WRITEVALUETOFILE(m_bSet);\r
WRITEVALUETOFILE(m_bSVNEntryFieldSet);\r
- WRITEVALUETOFILE(m_commitRevision);\r
+ CStringA srev(m_commitRevision); WRITESTRINGTOFILE(srev);\r
WRITESTRINGTOFILE(m_sUrl);\r
WRITESTRINGTOFILE(m_sOwner);\r
WRITESTRINGTOFILE(m_sAuthor);\r
-// WRITEVALUETOFILE(m_kind);\r
+ WRITEVALUETOFILE(m_kind);\r
WRITEVALUETOFILE(m_bReadOnly);\r
WRITESTRINGTOFILE(m_sPresentProps);\r
\r
// now save the status struct (without the entry field, because we don't use that) WRITEVALUETOFILE(m_GitStatus.copied);\r
// WRITEVALUETOFILE(m_GitStatus.locked);\r
-// WRITEVALUETOFILE(m_GitStatus.prop_status);\r
+ WRITEVALUETOFILE(m_GitStatus.prop_status);\r
// WRITEVALUETOFILE(m_GitStatus.repos_prop_status);\r
// WRITEVALUETOFILE(m_GitStatus.repos_text_status);\r
// WRITEVALUETOFILE(m_GitStatus.switched);\r
-// WRITEVALUETOFILE(m_GitStatus.text_status);\r
+ WRITEVALUETOFILE(m_GitStatus.text_status);\r
return true;\r
}\r
\r
LOADVALUEFROMFILE(m_lastWriteTime);\r
LOADVALUEFROMFILE(m_bSet);\r
LOADVALUEFROMFILE(m_bSVNEntryFieldSet);\r
- LOADVALUEFROMFILE(m_commitRevision);\r
+ LOADVALUEFROMFILE(value);\r
+ if (value != 0)\r
+ {\r
+ CStringA s;\r
+ if (fread(s.GetBuffer(value+1), sizeof(char), value, pFile)!=value)\r
+ {\r
+ s.ReleaseBuffer(0);\r
+ m_commitRevision.Empty();\r
+ return false;\r
+ }\r
+ s.ReleaseBuffer(value);\r
+ m_commitRevision = s;\r
+ }\r
LOADVALUEFROMFILE(value);\r
if (value != 0)\r
{\r
}\r
m_sAuthor.ReleaseBuffer(value);\r
}\r
-// LOADVALUEFROMFILE(m_kind);\r
+ LOADVALUEFROMFILE(m_kind);\r
LOADVALUEFROMFILE(m_bReadOnly);\r
LOADVALUEFROMFILE(value);\r
if (value != 0)\r
SecureZeroMemory(&m_GitStatus, sizeof(m_GitStatus));\r
// LOADVALUEFROMFILE(m_GitStatus.copied);\r
// LOADVALUEFROMFILE(m_GitStatus.locked);\r
-// LOADVALUEFROMFILE(m_GitStatus.prop_status);\r
+ LOADVALUEFROMFILE(m_GitStatus.prop_status);\r
// LOADVALUEFROMFILE(m_GitStatus.repos_prop_status);\r
// LOADVALUEFROMFILE(m_GitStatus.repos_text_status);\r
// LOADVALUEFROMFILE(m_GitStatus.switched);\r
-// LOADVALUEFROMFILE(m_GitStatus.text_status);\r
+ LOADVALUEFROMFILE(m_GitStatus.text_status);\r
// m_GitStatus.entry = NULL;\r
m_discardAtTime = GetTickCount()+cachetimeout;\r
}\r
m_GitStatus = *pGitStatus;\r
\r
// Currently we don't deep-copy the whole entry value, but we do take a few members\r
-#if 0\r
- if(pGitStatus->entry != NULL)\r
+/* if(pGitStatus->entry != NULL)\r
{\r
m_sUrl = pGitStatus->entry->url;\r
m_commitRevision = pGitStatus->entry->cmt_rev;\r
if (pGitStatus->entry->present_props)\r
m_sPresentProps = pGitStatus->entry->present_props;\r
}\r
- else\r
+ else*/\r
{\r
m_sUrl.Empty();\r
- m_commitRevision = 0;\r
+ m_commitRevision = GIT_INVALID_REVNUM;\r
m_bSVNEntryFieldSet = false;\r
}\r
- m_GitStatus.entry = NULL;\r
-#endif\r
+// m_GitStatus.entry = NULL;\r
}\r
m_discardAtTime = GetTickCount()+cachetimeout;\r
m_bSet = true;\r
if(m_bSVNEntryFieldSet)\r
{\r
response.m_status = m_GitStatus;\r
-// response.m_entry.cmt_rev = m_commitRevision;\r
+ wcscpy_s(response.m_entry.cmt_rev, 41, m_commitRevision.GetString());\r
\r
// There is no point trying to set these pointers here, because this is not \r
// the process which will be using the data.\r
// response.m_status.entry = NULL;\r
// response.m_entry.url = NULL;\r
\r
-// response.m_kind = m_kind;\r
+ response.m_kind = m_kind;\r
response.m_readonly = m_bReadOnly;\r
\r
if (m_sPresentProps.Find("svn:needs-lock")>=0)\r