#include "RevisionDlg.h"\r
#include ".\filediffdlg.h"\r
#include "gitdiff.h"\r
+#include "CommonResource.h"\r
\r
#define ID_COMPARE 1\r
#define ID_BLAME 2\r
m_rev2 = rev2;\r
\r
}\r
+void CFileDiffDlg::SetDiff(CTGitPath * path, CString &hash1, CString &hash2)\r
+{\r
+ if(path!=NULL)\r
+ {\r
+ m_path1 = *path;\r
+ m_path2 = *path;\r
+ }\r
+ \r
+ BYTE_VECTOR logout;\r
+\r
+ g_Git.GetLog(logout,hash1,path,1,0);\r
+ m_rev1.ParserFromLog(logout);\r
+\r
+ logout.clear();\r
+\r
+ g_Git.GetLog(logout,hash2,path,1,0);\r
+ m_rev2.ParserFromLog(logout);\r
+}\r
+void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1)\r
+{\r
+ if(path!=NULL)\r
+ {\r
+ m_path1 = *path;\r
+ m_path2 = *path;\r
+ }\r
+ m_rev1 = rev1;\r
+ m_rev2.m_CommitHash = _T("");\r
+ m_rev2.m_Subject = _T("Previou Version");\r
+\r
+ //this->GetDlgItem()->EnableWindow(FALSE);\r
+ \r
+ \r
+}\r
\r
BOOL CFileDiffDlg::OnInitDialog()\r
{\r
\r
// Start with focus on file list\r
GetDlgItem(IDC_FILELIST)->SetFocus();\r
+\r
+ if(m_rev2.m_CommitHash.IsEmpty())\r
+ m_SwitchButton.EnableWindow(FALSE);\r
return FALSE;\r
}\r
\r
{\r
rev1=+_T("");\r
if(this->m_rev1.m_CommitHash == GIT_REV_ZERO)\r
- cmd.Format(_T("git.exe diff -r --raw -C -M --numstat %s"),m_rev2.m_CommitHash);\r
+ cmd.Format(_T("git.exe diff -r --raw -C -M --numstat -z %s"),m_rev2.m_CommitHash);\r
else\r
- cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat %s"),m_rev1.m_CommitHash);\r
+ cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat -z %s"),m_rev1.m_CommitHash);\r
}else\r
{\r
- cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat %s %s"),rev1,m_rev2.m_CommitHash);\r
+ cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat -z %s %s"),m_rev2.m_CommitHash,rev1);\r
}\r
- CString out;\r
+\r
+ BYTE_VECTOR out;\r
g_Git.Run(cmd,&out);\r
this->m_arFileList.ParserFromLog(out);\r
\r
\r
CGitDiff diff;\r
CTGitPath* fd = m_arFilteredList[selIndex];\r
- diff.Diff(fd, this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE);\r
+ diff.Diff(fd, fd,this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE);\r
\r
#if 0\r
CFileDiffDlg::CTGitPath* fd = m_arFilteredList[selIndex];\r
SetDlgItemText(IDC_FIRSTURL, m_rev1.m_Subject+CString(_T("\r\n"))+m_rev1.m_CommitHash);\r
SetDlgItemText(IDC_SECONDURL,m_rev2.m_Subject+CString(_T("\r\n"))+m_rev2.m_CommitHash);\r
\r
- m_tooltips.AddTool(IDC_FIRSTURL, m_rev1.m_AuthorDate.Format(_T("%Y-%m-%d "))+m_rev1.m_AuthorName);\r
- m_tooltips.AddTool(IDC_SECONDURL, m_rev2.m_AuthorDate.Format(_T("%Y-%m-%d "))+m_rev2.m_AuthorName);\r
+ m_tooltips.AddTool(IDC_FIRSTURL, \r
+ CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev1.m_AuthorName);\r
+ m_tooltips.AddTool(IDC_SECONDURL, \r
+ CAppUtils::FormatDateAndTime( m_rev2.m_AuthorDate, DATE_SHORTDATE, false )+_T(" ")+m_rev2.m_AuthorName);\r
\r
}\r
\r