Signed-off-by: Frank Li <lznuaa@gmail.com>
\r
BYTE_VECTOR logout;\r
\r
\r
BYTE_VECTOR logout;\r
\r
- g_Git.GetLog(logout,hash1,path,1,0);\r
- m_rev1.ParserFromLog(logout);\r
+ if(hash1 == GIT_REV_ZERO)\r
+ {\r
+ m_rev1.m_CommitHash=GIT_REV_ZERO;\r
+ m_rev1.m_Subject=_T("Working Copy");\r
+ }else\r
+ {\r
+ g_Git.GetLog(logout,hash1,path,1,0);\r
+ m_rev1.ParserFromLog(logout);\r
+ }\r
- g_Git.GetLog(logout,hash2,path,1,0);\r
- m_rev2.ParserFromLog(logout);\r
+ if(hash2 == GIT_REV_ZERO)\r
+ {\r
+ m_rev2.m_CommitHash = GIT_REV_ZERO;\r
+ m_rev2.m_Subject=_T("Working Copy");\r
+ }else\r
+ {\r
+ g_Git.GetLog(logout,hash2,path,1,0);\r
+ m_rev2.ParserFromLog(logout);\r
+ }\r
}\r
void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1)\r
{\r
}\r
void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1)\r
{\r
CString tempfile=GetTempFile();\r
CString cmd;\r
GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
CString tempfile=GetTempFile();\r
CString cmd;\r
GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
- cmd.Format(_T("git.exe diff-tree -r -p --stat %s"),r1->m_CommitHash);\r
+ if(r1->m_CommitHash != GIT_REV_ZERO)\r
+ {\r
+ cmd.Format(_T("git.exe diff-tree -r -p --stat %s"),r1->m_CommitHash);\r
+ }else\r
+ cmd.Format(_T("git.exe diff -r -p --stat"));\r
+\r
g_Git.RunLogFile(cmd,tempfile);\r
CAppUtils::StartUnifiedDiffViewer(tempfile,r1->m_CommitHash.Left(6)+_T(":")+r1->m_Subject);\r
}\r
g_Git.RunLogFile(cmd,tempfile);\r
CAppUtils::StartUnifiedDiffViewer(tempfile,r1->m_CommitHash.Left(6)+_T(":")+r1->m_Subject);\r
}\r
CString cmd;\r
GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
GitRev * r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));\r
CString cmd;\r
GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
GitRev * r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));\r
- cmd.Format(_T("git.exe diff-tree -r -p --stat %s %s"),r1->m_CommitHash,r2->m_CommitHash);\r
+ \r
+ if( r1->m_CommitHash == GIT_REV_ZERO)\r
+ {\r
+ cmd.Format(_T("git.exe diff -r -p --stat %s"),r2->m_CommitHash);\r
+ }else if( r2->m_CommitHash == GIT_REV_ZERO)\r
+ {\r
+ cmd.Format(_T("git.exe diff -r -p --stat %s"),r1->m_CommitHash);\r
+ }else\r
+ cmd.Format(_T("git.exe diff-tree -r -p --stat %s %s"),r1->m_CommitHash,r2->m_CommitHash);\r
+\r
g_Git.RunLogFile(cmd,tempfile);\r
CAppUtils::StartUnifiedDiffViewer(tempfile,r1->m_CommitHash.Left(6)+_T(":")+r2->m_CommitHash.Left(6));\r
\r
g_Git.RunLogFile(cmd,tempfile);\r
CAppUtils::StartUnifiedDiffViewer(tempfile,r1->m_CommitHash.Left(6)+_T(":")+r2->m_CommitHash.Left(6));\r
\r