{\r
case IDSVNLC_OPEN:\r
{\r
- int ret = (int)ShellExecute(this->m_hWnd, NULL, filepath->GetWinPath(), NULL, NULL, SW_SHOW);\r
+ CString file;\r
+ if(this->m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
+ {\r
+ file= filepath->GetWinPath();\r
+ }else\r
+ {\r
+ CString temppath;\r
+ GetTempPath(temppath);\r
+ file.Format(_T("%s%s_%s%s"),\r
+ temppath, \r
+ filepath->GetBaseFilename(),\r
+ m_CurrentVersion.Left(6),\r
+ filepath->GetFileExtension());\r
+\r
+ }\r
+ int ret = (int)ShellExecute(this->m_hWnd, NULL,file, NULL, NULL, SW_SHOW);\r
if (ret <= HINSTANCE_ERROR)\r
{\r
CString cmd = _T("RUNDLL32 Shell32,OpenAs_RunDLL ");\r
- cmd += filepath->GetWinPath();\r
+ cmd += file;\r
CAppUtils::LaunchApplication(cmd, NULL, false);\r
}\r
}\r
break;\r
case IDSVNLC_OPENWITH:\r
{\r
+ CString file;\r
+ if(m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
+ {\r
+ file= filepath->GetWinPath();\r
+ }else\r
+ {\r
+ CString temppath;\r
+ GetTempPath(temppath);\r
+ file.Format(_T("%s%s_%s%s"),\r
+ temppath, \r
+ filepath->GetBaseFilename(),\r
+ m_CurrentVersion.Left(6),\r
+ filepath->GetFileExtension());\r
+\r
+ }\r
+\r
CString cmd = _T("RUNDLL32 Shell32,OpenAs_RunDLL ");\r
- cmd += filepath->GetWinPathString() + _T(" ");\r
+ cmd += file + _T(" ");\r
CAppUtils::LaunchApplication(cmd, NULL, false);\r
}\r
break;\r
// CAppUtils::StartShowUnifiedDiff(m_hWnd, entry->path, SVNRev::REV_BASE, entry->path, SVNRev::REV_WC);\r
// else\r
// CAppUtils::StartShowUnifiedDiff(m_hWnd, entry->path, SVNRev::REV_WC, entry->path, SVNRev::REV_HEAD);\r
- CAppUtils::StartShowUnifiedDiff(m_hWnd,*filepath,GitRev::GetWorkingCopy(),\r
+ if(m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
+ CAppUtils::StartShowUnifiedDiff(m_hWnd,*filepath,GitRev::GetWorkingCopy(),\r
*filepath,GitRev::GetHead());\r
+ else\r
+ CAppUtils::StartShowUnifiedDiff(m_hWnd,*filepath,m_CurrentVersion,\r
+ *filepath,m_CurrentVersion+_T("~1"));\r
}\r
break;\r
case IDSVNLC_ADD:\r