return GetLog(&gitCall,hash,path,count,mask,from,to);\r
}\r
\r
-CString CGit::GetLogCmd( CString &hash, CTGitPath *path, int count, int mask,CString *from,CString *to)\r
+CString CGit::GetLogCmd( CString &hash, CTGitPath *path, int count, int mask,CString *from,CString *to,bool paramonly)\r
{\r
CString cmd;\r
CString log;\r
}\r
param+=hash;\r
\r
- cmd.Format(_T("git.exe log %s -z --topo-order %s --parents --pretty=format:\""),\r
+ if(paramonly)\r
+ cmd.Format(_T("%s -z --topo-order %s --parents "),\r
+ num,param);\r
+ else\r
+ cmd.Format(_T("git.exe log %s -z --topo-order %s --parents --pretty=format:\""),\r
num,param);\r
\r
BuildOutputFormat(log,!(mask&CGit::LOG_INFO_ONLY_HASH));\r
\r
- cmd += log;\r
- cmd += CString(_T("\" "))+hash+file;\r
+ if(paramonly)\r
+ {\r
+ cmd += hash+file;\r
+ }else\r
+ {\r
+ cmd += log;\r
+ cmd += CString(_T("\" "))+hash+file;\r
+ }\r
\r
return cmd;\r
}\r
CString *from=NULL,CString *to=NULL);\r
\r
CString GetLogCmd(CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_FULL_DIFF|LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
- CString *from=NULL,CString *to=NULL);\r
+ CString *from=NULL,CString *to=NULL, bool paramonly=false);\r
\r
BOOL EnumFiles(const TCHAR *pszProjectPath, const TCHAR *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
\r
ClearText();\r
\r
this->m_logEntries.ClearAll();\r
+ git_init();\r
\r
m_LogCache.FetchCacheIndex(g_Git.m_CurrentDir);\r
\r
// if(this->m_bAllBranch)\r
mask |= m_ShowMask;\r
\r
+ this->m_arShownList.RemoveAll();\r
+\r
if(m_bShowWC)\r
+ {\r
this->m_logEntries.insert(m_logEntries.begin(),this->m_wcRev.m_CommitHash);\r
+ this->m_LogCache.m_HashMap[m_wcRev.m_CommitHash]=m_wcRev;\r
+ m_arShownList.Add(&m_wcRev);\r
+ }\r
\r
- CString cmd=g_Git.GetLogCmd(m_StartRef,path,-1,mask);\r
+ CString cmd=g_Git.GetLogCmd(m_StartRef,path,-1,mask,NULL,NULL,true);\r
\r
//this->m_logEntries.ParserFromLog();\r
if(IsInWorkingThread())\r
{\r
SetItemCountEx(this->m_logEntries.size());\r
}\r
-\r
- this->m_arShownList.RemoveAll();\r
\r
if(git_open_log(&m_DllGitLog,CUnicodeUtils::GetMulti(cmd,CP_ACP).GetBuffer()))\r
{\r
}\r
}\r
\r
+ git_get_log_firstcommit(m_DllGitLog);\r
GIT_COMMIT commit;\r
t1=GetTickCount();\r
\r
{\r
//update UI\r
oldsize = m_logEntries.size();\r
- PostMessage(LVM_SETITEMCOUNT, (WPARAM) this->m_logEntries.size(),(LPARAM) LVSICF_NOINVALIDATEALL);\r
- ::PostMessage(this->GetParent()->m_hWnd,MSG_LOAD_PERCENTAGE,(WPARAM) GITLOG_END,0);\r
+ //PostMessage(LVM_SETITEMCOUNT, (WPARAM) this->m_logEntries.size(),(LPARAM) LVSICF_NOINVALIDATEALL);\r
+ //::PostMessage(this->GetParent()->m_hWnd,MSG_LOAD_PERCENTAGE,(WPARAM) GITLOG_END,0);\r
} \r
}\r
\r
//Update UI;\r
- PostMessage(LVM_SETITEMCOUNT, (WPARAM) this->m_logEntries.size(),(LPARAM) LVSICF_NOINVALIDATEALL);\r
- ::PostMessage(this->GetParent()->m_hWnd,MSG_LOAD_PERCENTAGE,(WPARAM) GITLOG_END,0);\r
+ //PostMessage(LVM_SETITEMCOUNT, (WPARAM) this->m_logEntries.size(),(LPARAM) LVSICF_NOINVALIDATEALL);\r
+ //::PostMessage(this->GetParent()->m_hWnd,MSG_LOAD_PERCENTAGE,(WPARAM) GITLOG_END,0);\r
\r
InterlockedExchange(&m_bThreadRunning, FALSE);\r
\r