OSDN Git Service

Fix init repos commit\show log problem.
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / AppUtils.cpp
index 362a7af..2cdbadc 100644 (file)
@@ -39,6 +39,7 @@
 #include "MessageBox.h"\r
 #include "GitStatus.h"\r
 #include "CreateBranchTagDlg.h"\r
+#include "GitSwitchDlg.h"\r
 \r
 CAppUtils::CAppUtils(void)\r
 {\r
@@ -994,10 +995,10 @@ bool CAppUtils::StartShowUnifiedDiff(HWND hWnd, const CTGitPath& url1, const git
        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
@@ -1088,13 +1089,14 @@ bool CAppUtils::Export(CString *BashHash)
        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
@@ -1146,4 +1148,40 @@ bool CAppUtils::CreateBranchTag(bool IsTag,CString *CommitHash)
                \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