{\r
if(fileindex<0)\r
return;\r
- CGitDiff::Diff((CTGitPath*)GetItemData(fileindex),\r
+ if(this->m_CurrentVersion.IsEmpty() || m_CurrentVersion== GIT_REV_ZERO)\r
+ {\r
+ CGitDiff::Diff((CTGitPath*)GetItemData(fileindex),\r
CString(GIT_REV_ZERO),\r
GitRev::GetHead());\r
- \r
+ }else\r
+ {\r
+ CGitDiff::Diff((CTGitPath*)GetItemData(fileindex),\r
+ m_CurrentVersion,\r
+ m_CurrentVersion+_T("~1"));\r
+ }\r
#if 0\r
if (fileindex < 0)\r
return;\r
{\r
CString out;\r
this->m_bBusy=TRUE;\r
+ m_CurrentVersion=hash;\r
+\r
if(hash == GIT_REV_ZERO)\r
{\r
int count = 0;\r
#include "StdAfx.h"\r
#include "GitDiff.h"\r
#include "AppUtils.h"\r
+#include "git.h"\r
\r
CGitDiff::CGitDiff(void)\r
{\r
CGitDiff::~CGitDiff(void)\r
{\r
}\r
+int CGitDiff::Parser(git_revnum_t &rev)\r
+{\r
+ if(rev == GIT_REV_ZERO)\r
+ return 0;\r
+ if(rev.GetLength() > 40)\r
+ {\r
+ CString cmd;\r
+ cmd.Format(_T("git.exe rev-parse %s"),rev);\r
+ CString output;\r
+ if(!g_Git.Run(cmd,&output))\r
+ {\r
+ //int start=output.Find(_T('\n'));\r
+ rev=output.Left(40);\r
+ }\r
+ }\r
+ return 0;\r
+}\r
\r
int CGitDiff::Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2, bool blame, bool unified)\r
{\r
CString temppath;\r
GetTempPath(temppath);\r
- \r
+ Parser(rev1);\r
+ Parser(rev2);\r
CString file1;\r
CString cmd;\r
if(rev1 != GIT_REV_ZERO )\r
\r
CAppUtils::DiffFlags flags;\r
CAppUtils::StartExtDiff(file1,file2,\r
- pPath->GetGitPathString()+_T(":")+rev1.Left(6),\r
- pPath->GetGitPathString()+_T(":")+rev2.Left(6)\r
+ pPath->GetGitPathString()+_T(":")+rev2.Left(6),\r
+ pPath->GetGitPathString()+_T(":")+rev1.Left(6)\r
,flags);\r
\r
return 0;\r
public:\r
CGitDiff(void);\r
~CGitDiff(void);\r
- \r
+ static int Parser(git_revnum_t &rev);\r
\r
static int Diff(CTGitPath * pPath, git_revnum_t & rev1, git_revnum_t & rev2, bool blame=false, bool unified=false);\r
};\r
CAppUtils::FormatTextInRichEditControl(pMsgView);\r
\r
m_ChangedFileListCtrl.UpdateWithGitPathList(pLogEntry->m_Files);\r
+ m_ChangedFileListCtrl.m_CurrentVersion=pLogEntry->m_CommitHash;\r
m_ChangedFileListCtrl.Show(0);\r
\r
m_ChangedFileListCtrl.SetRedraw(TRUE);\r