return 0;\r
}\r
\r
-int CGit::GetLog(BYTE_VECTOR& logOut, CString &hash, CTGitPath *path ,int count,int mask)\r
+int CGit::GetLog(BYTE_VECTOR& logOut, CString &hash, CTGitPath *path ,int count,int mask,CString *from,CString *to)\r
{\r
CGitCall_ByteVector gitCall(CString(),&logOut);\r
- return GetLog(&gitCall,hash,path,count,mask);\r
+ return GetLog(&gitCall,hash,path,count,mask,from,to);\r
}\r
\r
//int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path ,int count,int mask)\r
-int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path, int count, int mask)\r
+int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path, int count, int mask,CString *from,CString *to)\r
{\r
\r
CString cmd;\r
if(mask& CGit::LOG_INFO_FOLLOW)\r
param += _T(" --follow ");\r
\r
+ if(from != NULL && to != NULL)\r
+ {\r
+ CString range;\r
+ range.Format(_T(" %s..%s "),*from,*to);\r
+ param += range;\r
+ }\r
param+=hash;\r
\r
cmd.Format(_T("git.exe log %s -z --topo-order %s --parents --pretty=format:\""),\r
\r
//hash is empty means all. -1 means all\r
\r
- int GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME);\r
- int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME);\r
+ int GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME,\r
+ CString *from=NULL,CString *to=NULL);\r
+ int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME,\r
+ CString *from=NULL,CString *to=NULL);\r
\r
BOOL EnumFiles(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
\r
*pResult = -1;\r
}\r
\r
-int CGitLogListBase::FillGitLog(CTGitPath *path,int info)\r
+int CGitLogListBase::FillGitLog(CTGitPath *path,int info,CString *from,CString *to)\r
{\r
ClearText();\r
\r
this->m_logEntries.ClearAll();\r
- this->m_logEntries.ParserFromLog(path,-1,info);\r
+ this->m_logEntries.ParserFromLog(path,-1,info,from,to);\r
\r
//this->m_logEntries.ParserFromLog();\r
SetItemCountEx(this->m_logEntries.size());\r
void DiffSelectedRevWithPrevious();\r
bool IsSelectionContinuous();\r
int FillGitShortLog();\r
- int FillGitLog(CTGitPath *path,int infomask=CGit:: LOG_INFO_STAT| CGit::LOG_INFO_FILESTATE);\r
+ int FillGitLog(CTGitPath *path,int infomask=CGit:: LOG_INFO_STAT| CGit::LOG_INFO_FILESTATE,CString *from=NULL,CString *to=NULL);\r
\r
inline int ShownCountWithStopped() const { return (int)m_arShownList.GetCount() + (m_bStrictStopped ? 1 : 0); }\r
int FetchLogAsync(void * data=NULL);\r
return at(i).SafeFetchFullInfo(&g_Git);
}
//CLogDataVector Class
-int CLogDataVector::ParserFromLog(CTGitPath *path ,int count ,int infomask)
+int CLogDataVector::ParserFromLog(CTGitPath *path ,int count ,int infomask,CString *from,CString *to)
{
BYTE_VECTOR log;
GitRev rev;
CString emptyhash;
- g_Git.GetLog(log,emptyhash,path,count,infomask);
+ g_Git.GetLog(log,emptyhash,path,count,infomask,from,to);
CString begin;
begin.Format(_T("#<%c>"),LOG_REV_ITEM_BEGIN);
m_FirstFreeLane=0;\r
}\r
void ClearAll();\r
- int ParserFromLog(CTGitPath *path =NULL,int count = -1,int infomask=CGit::LOG_INFO_STAT|CGit::LOG_INFO_FILESTATE);\r
+ int ParserFromLog(CTGitPath *path =NULL,int count = -1,int infomask=CGit::LOG_INFO_STAT|CGit::LOG_INFO_FILESTATE,\r
+ CString *from=NULL,CString *to=NULL);\r
int ParserShortLog(CTGitPath *path ,CString &hash,int count=-1 ,int mask=CGit::LOG_INFO_ONLY_HASH );\r
int FetchFullInfo(int i);\r
// void AddFullInfo(\r
\r
m_FileListCtrl.Init(SVNSLC_COLEXT | SVNSLC_COLSTATUS , _T("RebaseDlg"));\r
\r
- m_ctrlTabCtrl.AddTab(&m_FileListCtrl,_T("Modified File"));\r
+ m_ctrlTabCtrl.AddTab(&m_FileListCtrl,_T("Conflict File"));\r
m_ctrlTabCtrl.AddTab(&m_LogMessageCtrl,_T("Log Message"),1);\r
AddRebaseAnchor();\r
\r
this->m_UpstreamCtrl.EnableWindow(FALSE);\r
}\r
\r
+ m_CommitList.DeleteAllItems();\r
+ m_CommitList.InsertGitColumn();\r
+\r
+ FetchLogList();\r
return TRUE;\r
}\r
// CRebaseDlg message handlers\r
\r
void CRebaseDlg::OnCbnSelchangeBranch()\r
{\r
-\r
+ FetchLogList();\r
}\r
\r
void CRebaseDlg::OnCbnSelchangeUpstream()\r
{\r
+ FetchLogList();\r
+}\r
+\r
+void CRebaseDlg::FetchLogList()\r
+{\r
+ m_CommitList.Clear();\r
+ this->m_CommitList.FillGitLog(NULL,0,&m_UpstreamCtrl.GetString(),&m_BranchCtrl.GetString());\r
+ if( m_CommitList.GetItemCount() == 0 )\r
+ m_CommitList.ShowText(_T("Nothing Rebase"));\r
\r
+ m_CommitList.Invalidate();\r
}\r
\r
void CRebaseDlg::AddBranchToolTips(CHistoryCombo *pBranch)\r
void SaveSplitterPos();\r
\r
void LoadBranchInfo();\r
+ void FetchLogList();\r
\r
CRect m_DlgOrigRect;\r
CRect m_CommitListOrigRect;\r