g_Git.StringAppend(&m_Subject, (BYTE*)commit->m_Subject,encode,commit->m_SubjectSize);\r
\r
return 0;\r
+}\r
+\r
+void GitRev::DbgPrint()\r
+{\r
+ TRACE(_T("Commit %s\r\n"), this->m_CommitHash.ToString());\r
+ for(int i=0;i<this->m_ParentHash.size();i++)\r
+ {\r
+ TRACE(_T("Parent %i %s"),i, m_ParentHash[i].ToString());\r
+ }\r
+ TRACE(_T("\n"));\r
}
\ No newline at end of file
GitRev rev;\r
if(!LoadOneItem(rev,m_HashMapIndex[hash]))\r
{\r
- rev.m_IsFull=true;\r
m_HashMap[hash].CopyFrom(rev);\r
+ rev.m_IsFull=true;\r
+ \r
return &m_HashMap[hash];\r
}\r
}\r
m_IndexFile.Close();\r
m_DataFile.Close();\r
return 0;\r
+}\r
+\r
+int CLogCache::ClearAllParent()\r
+{\r
+ CGitHashMap::iterator i;\r
+ for(i=m_HashMap.begin();i!=m_HashMap.end();i++)\r
+ {\r
+ (*i).second.m_ParentHash.clear();\r
+ (*i).second.m_Lanes.clear();\r
+ }\r
+ return 0;\r
}
\ No newline at end of file
\r
BOOL CGitLogListBase::GetShortName(CString ref, CString &shortname,CString prefix)\r
{\r
- TRACE(_T("%s %s\r\n"),ref,prefix);\r
+ //TRACE(_T("%s %s\r\n"),ref,prefix);\r
if(ref.Left(prefix.GetLength()) == prefix)\r
{\r
shortname = ref.Right(ref.GetLength()-prefix.GetLength());\r
rect.right=second.left;\r
}\r
\r
- TRACE(_T("A Graphic left %d right %d\r\n"),rect.left,rect.right);\r
+ //TRACE(_T("A Graphic left %d right %d\r\n"),rect.left,rect.right);\r
FillBackGround(pLVCD->nmcd.hdc, (INT_PTR)pLVCD->nmcd.dwItemSpec,rect);\r
\r
GitRev* data = (GitRev*)m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec);\r
GitRev* pLogEntry = reinterpret_cast<GitRev *>(m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec));\r
CRect rect;\r
GetSubItemRect(pLVCD->nmcd.dwItemSpec, pLVCD->iSubItem, LVIR_BOUNDS, rect);\r
- TRACE(_T("Action left %d right %d\r\n"),rect.left,rect.right);\r
+ //TRACE(_T("Action left %d right %d\r\n"),rect.left,rect.right);\r
// Get the selected state of the\r
// item being drawn. \r
\r
this->m_logEntries.ClearAll();\r
git_init();\r
\r
+ this->m_LogCache.ClearAllParent();\r
+\r
m_LogCache.FetchCacheIndex(g_Git.m_CurrentDir);\r
\r
CTGitPath *path;\r
if(BeginFetchLog())\r
return -1;\r
\r
+ TRACE(_T("\n===Begin===\n"));\r
//Update work copy item;\r
if( m_logEntries.size() > 0)\r
{\r
break;\r
\r
CGitHash hash = (char*)commit.m_hash ;\r
-\r
\r
GitRev *pRev = m_LogCache.GetCacheData(hash);\r
\r
{\r
pRev->ParserFromCommit(&commit);\r
pRev->ParserParentFromCommit(&commit);\r
-\r
pRev->SafeFetchFullInfo(&g_Git);\r
- git_free_commit(&commit);\r
- \r
+ \r
}else\r
{\r
ASSERT(pRev->m_CommitHash == hash);\r
pRev->ParserParentFromCommit(&commit);\r
}\r
+#ifdef DEBUG \r
+ pRev->DbgPrint();\r
+ TRACE(_T("\n"));\r
+#endif\r
+ git_free_commit(&commit);\r
\r
this->m_critSec.Lock();\r
m_logEntries.push_back(hash);\r