\r
void CBrowseRefsDlg::Refresh()\r
{\r
- m_RefMap.clear();\r
- g_Git.GetMapHashToFriendName(m_RefMap);\r
+// m_RefMap.clear();\r
+// g_Git.GetMapHashToFriendName(m_RefMap);\r
+ \r
\r
m_RefTreeCtrl.DeleteAllItems();\r
m_TreeRoot.m_ShadowTree.clear();\r
m_TreeRoot.m_hTree=m_RefTreeCtrl.InsertItem(L"Refs",NULL,NULL);\r
m_RefTreeCtrl.SetItemData(m_TreeRoot.m_hTree,(DWORD_PTR)&m_TreeRoot);\r
\r
+ CString allRefs;\r
+ g_Git.Run(L"git for-each-ref --format="\r
+ L"%(refname)%04"\r
+ L"%(objectname)%04"\r
+ L"%(authordate:relative)%04"\r
+ L"%(subject)%04"\r
+ L"%(authorname)",\r
+ &allRefs,CP_UTF8);\r
\r
- MAP_STRING_STRING refName;\r
+ int linePos=0;\r
+ CString singleRef;\r
+\r
+ MAP_STRING_STRING refMap;\r
\r
//First sort on ref name\r
- for(MAP_HASH_NAME::iterator iterRef=m_RefMap.begin();iterRef!=m_RefMap.end();++iterRef)\r
- for(STRING_VECTOR::iterator iterRefName=iterRef->second.begin();iterRefName!=iterRef->second.end();++iterRefName)\r
- refName[*iterRefName]=iterRef->first;\r
+ while(!(singleRef=allRefs.Tokenize(L"\r\n",linePos)).IsEmpty())\r
+ {\r
+ int valuePos=0;\r
+ CString refName=singleRef.Tokenize(L"\04",valuePos);\r
+ CString refRest=singleRef.Mid(valuePos);\r
+ refMap[refName]=refRest;\r
+ }\r
+\r
+\r
+\r
+// for(MAP_HASH_NAME::iterator iterRef=m_RefMap.begin();iterRef!=m_RefMap.end();++iterRef)\r
+// for(STRING_VECTOR::iterator iterRefName=iterRef->second.begin();iterRefName!=iterRef->second.end();++iterRefName)\r
+// refName[*iterRefName]=iterRef->first;\r
\r
//Populate ref tree\r
- for(MAP_STRING_STRING::iterator iterRefName=refName.begin();iterRefName!=refName.end();++iterRefName)\r
+ for(MAP_STRING_STRING::iterator iterRefMap=refMap.begin();iterRefMap!=refMap.end();++iterRefMap)\r
{\r
- CShadowTree& treeLeaf=GetTreeNode(iterRefName->first);\r
- treeLeaf.m_csRef=iterRefName->second;\r
+ CShadowTree& treeLeaf=GetTreeNode(iterRefMap->first);\r
+ CString values=iterRefMap->second;\r
+\r
+ int valuePos=0;\r
+ treeLeaf.m_csRef= values.Tokenize(L"\04",valuePos);\r
+ treeLeaf.m_csDate= values.Tokenize(L"\04",valuePos);\r
+ treeLeaf.m_csSubject= values.Tokenize(L"\04",valuePos);\r
+ treeLeaf.m_csAuthor= values.Tokenize(L"\04",valuePos);\r
}\r
\r
CString currHead;\r
\r
m_ListRefLeafs.SetItemData(indexItem,(DWORD_PTR)pTree);\r
m_ListRefLeafs.SetItemText(indexItem,0,refNamePrefix+pTree->m_csName);\r
+ m_ListRefLeafs.SetItemText(indexItem,1,pTree->m_csDate);\r
+ m_ListRefLeafs.SetItemText(indexItem,2,pTree->m_csSubject);\r
m_ListRefLeafs.SetItemText(indexItem,3,pTree->m_csRef);\r
}\r
else\r