#include "MessageBox.h"\r
#include "GitStatus.h"\r
#include "CreateBranchTagDlg.h"\r
+#include "GitSwitchDlg.h"\r
\r
CAppUtils::CAppUtils(void)\r
{\r
CString cmd;\r
if(rev1 == GitRev::GetWorkingCopy())\r
{\r
- cmd.Format(_T("git.cmd diff --stat -p %s"),rev2);\r
+ cmd.Format(_T("git.exe diff --stat -p %s"),rev2);\r
}else\r
{ \r
- cmd.Format(_T("git.cmd diff-tree -r -p --stat %s %s"),rev1,rev2);\r
+ cmd.Format(_T("git.exe diff-tree -r -p --stat %s %s"),rev1,rev2);\r
}\r
g_Git.RunLogFile(cmd,tempfile);\r
CAppUtils::StartUnifiedDiffViewer(tempfile,rev1.Left(6)+_T(":")+rev2.Left(6));\r
if (dlg.DoModal() == IDOK)\r
{\r
CString cmd;\r
- cmd.Format(_T("git.exe archive --format=zip %s"),\r
+ cmd.Format(_T("git.exe archive --format=zip --verbose %s"),\r
dlg.m_VersionName);\r
\r
- g_Git.RunLogFile(cmd,dlg.m_strExportDirectory);\r
- //CProgressDlg pro;\r
- //pro.m_GitCmd=cmd;\r
- //pro.DoModal();\r
+ //g_Git.RunLogFile(cmd,dlg.m_strExportDirectory);\r
+ CProgressDlg pro;\r
+ pro.m_GitCmd=cmd;\r
+ pro.m_LogFile=dlg.m_strExportDirectory;\r
+ pro.DoModal();\r
return TRUE;\r
}\r
return bRet;\r
\r
}\r
return FALSE;\r
+}\r
+\r
+bool CAppUtils::Switch(CString *CommitHash)\r
+{\r
+ CGitSwitchDlg dlg;\r
+ if(CommitHash)\r
+ dlg.m_Base=*CommitHash;\r
+ \r
+ if (dlg.DoModal() == IDOK)\r
+ {\r
+ CString cmd;\r
+ CString track;\r
+ CString base;\r
+ CString force;\r
+ CString branch;\r
+\r
+ if(dlg.m_bBranch)\r
+ branch.Format(_T("-b %s"),dlg.m_NewBranch);\r
+ if(dlg.m_bForce)\r
+ force=_T("-f");\r
+ if(dlg.m_bTrack)\r
+ track=_T("--track");\r
+\r
+ cmd.Format(_T("git.exe checkout %s %s %s %s"),\r
+ force,\r
+ track,\r
+ branch,\r
+ dlg.m_Base);\r
+\r
+ CProgressDlg progress;\r
+ progress.m_GitCmd=cmd;\r
+ if(progress.DoModal()==IDOK)\r
+ return TRUE;\r
+\r
+ }\r
+ return FALSE;\r
}
\ No newline at end of file