//#include "CachedLogInfo.h"\r
//#include "RepositoryInfo.h"\r
//#include "EditPropertiesDlg.h"\r
-\r
+#include "FileDiffDlg.h"\r
\r
#if (NTDDI_VERSION < NTDDI_LONGHORN)\r
\r
#endif\r
}\r
\r
-void CLogDlg::DoDiffFromLog(INT_PTR selIndex, git_revnum_t rev1, git_revnum_t rev2, bool blame, bool unified)\r
+void CLogDlg::DoDiffFromLog(INT_PTR selIndex, GitRev* rev1, GitRev* rev2, bool blame, bool unified)\r
{\r
-#if 0\r
DialogEnableWindow(IDOK, FALSE);\r
- SetPromptApp(&theApp);\r
+// SetPromptApp(&theApp);\r
theApp.DoWaitCursor(1);\r
+\r
+ CString temppath;\r
+ GetTempPath(temppath);\r
+ \r
+ CString file1;\r
+ file1.Format(_T("%s%s_%s%s"),\r
+ temppath, \r
+ (*m_currentChangedArray)[selIndex].GetBaseFilename(),\r
+ rev1->m_CommitHash.Left(6),\r
+ (*m_currentChangedArray)[selIndex].GetFileExtension());\r
+\r
+ CString file2;\r
+ file2.Format(_T("%s\\%s_%s%s"),\r
+ temppath, \r
+ (*m_currentChangedArray)[selIndex].GetBaseFilename(),\r
+ rev2->m_CommitHash.Left(6),\r
+ (*m_currentChangedArray)[selIndex].GetFileExtension());\r
+\r
+ CString cmd;\r
+\r
+ cmd.Format(_T("git.cmd cat-file -p %s:%s"),rev1->m_CommitHash,(*m_currentChangedArray)[selIndex].GetGitPathString());\r
+ g_Git.RunLogFile(cmd,file1);\r
+ cmd.Format(_T("git.cmd cat-file -p %s:%s"),rev2->m_CommitHash,(*m_currentChangedArray)[selIndex].GetGitPathString());\r
+ g_Git.RunLogFile(cmd,file2);\r
+\r
+ CAppUtils::DiffFlags flags;\r
+ CAppUtils::StartExtDiff(file1,file2,_T("A"),_T("B"),flags);\r
+\r
+#if 0\r
//get the filename\r
CString filepath;\r
if (Git::PathIsURL(m_path))\r
}\r
}\r
}\r
+\r
+#endif\r
+\r
theApp.DoWaitCursor(-1);\r
EnableOKButton();\r
-#endif\r
}\r
\r
BOOL CLogDlg::Open(bool bOpenWith,CString changedpath, git_revnum_t rev)\r
\r
case ID_COMPARETWO:\r
{\r
- //GitRev * r1 = reinterpret_cast<GitRev*>((*m_arShownList)[FirstSelect]);\r
- //GitRev * r2 = reinterpret_cast<GitRev*>((*m_arShownList)[LastSelect]);\r
- //if (m_LogList.GetSelectedCount() > 2)\r
- //{\r
- // r1 = revHighest;\r
- // r2 = revLowest;\r
- //}\r
- //user clicked on the menu item "compare revisions"\r
- //if (PromptShown())\r
- //{\r
- // GitDiff diff(this, m_hWnd, true);\r
- // diff.SetAlternativeTool(!!(GetAsyncKeyState(VK_SHIFT) & 0x8000));\r
- // diff.SetHEADPeg(m_LogRevision);\r
- // diff.ShowCompare(CTGitPath(pathURL), r2, CTGitPath(pathURL), r1);\r
- //}\r
- //else\r
- // CAppUtils::StartShowCompare(m_hWnd, CTGitPath(pathURL), r2, CTGitPath(pathURL), r1, GitRev(), m_LogRevision, !!(GetAsyncKeyState(VK_SHIFT) & 0x8000));\r
+ GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));\r
+ GitRev * r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));\r
+ CFileDiffDlg dlg;\r
+ dlg.SetDiff(NULL,*r1,*r2);\r
+ dlg.DoModal();\r
+ \r
}\r
break;\r
\r
return; // nothing is selected, get out of here\r
\r
bool bOneRev = true;\r
+ int sel=m_LogList.GetNextSelectedItem(pos);\r
+ GitRev * pLogEntry = reinterpret_cast<GitRev *>(m_arShownList.GetAt(sel));\r
+ GitRev * rev1 = pLogEntry;\r
+ GitRev * rev2 = reinterpret_cast<GitRev *>(m_arShownList.GetAt(sel+1));\r
#if 0\r
- GitRev * pLogEntry = reinterpret_cast<GitRev *>(m_arShownList.GetAt(m_LogList.GetNextSelectedItem(pos)));\r
- git_revnum_t rev1 = pLogEntry;\r
- git_revnum_t rev2 = rev1;\r
bool bOneRev = true;\r
if (pos)\r
{\r
bool bOpenWith = false;\r
bool bMergeLog = false;\r
m_bCancelled = false;\r
-#if 0\r
+ \r
switch (cmd)\r
{\r
case ID_DIFF:\r
DoDiffFromLog(selIndex, rev1, rev2, false, false);\r
}\r
break;\r
+#if 0\r
case ID_BLAMEDIFF:\r
{\r
DoDiffFromLog(selIndex, rev1, rev2, true, false);\r
ShellExecute(this->m_hWnd, _T("open"), url, NULL, NULL, SW_SHOWDEFAULT); \r
}\r
break;\r
+#endif\r
default:\r
break;\r
} // switch (cmd)\r
-#endif\r
+\r
} // if (popup.CreatePopupMenu())\r
}\r
\r