#include "MessageBox.h"\r
#include "PullFetchDlg.h"\r
#include "ProgressDlg.h"\r
+#include "AppUtils.h"\r
+#include "RebaseDlg.h"\r
\r
bool FetchCommand::Execute()\r
{\r
\r
if(dlg.DoModal()==IDOK)\r
{\r
+ if(dlg.m_bAutoLoad)\r
+ {\r
+ CAppUtils::LaunchPAgent(NULL,&dlg.m_RemoteURL);\r
+ }\r
+\r
CString url;\r
url=dlg.m_RemoteURL;\r
CString cmd;\r
- cmd.Format(_T("git.exe fetch \"%s\" %s"),url, dlg.m_RemoteBranchName);\r
+ cmd.Format(_T("git.exe fetch -v \"%s\" %s"),url, dlg.m_RemoteBranchName);\r
CProgressDlg progress;\r
+\r
+ if(!dlg.m_bRebase)\r
+ {\r
+ progress.m_changeAbortButtonOnSuccessTo=_T("&Rebase");\r
+ }else\r
+ {\r
+ progress.m_bAutoCloseOnSuccess = true;\r
+ }\r
+\r
progress.m_GitCmd=cmd;\r
- if(progress.DoModal()==IDOK)\r
+ int userResponse=progress.DoModal();\r
+\r
+ if( (userResponse==IDC_PROGRESS_BUTTON1) || ( progress.m_GitStatus ==0 && dlg.m_bRebase) )\r
+ {\r
+ CRebaseDlg dlg;\r
+ dlg.m_PostButtonTexts.Add(_T("Email &Patch..."));\r
+ int response = dlg.DoModal();\r
+ if(response == IDOK)\r
+ {\r
+ return TRUE;\r
+ }\r
+ if(response == IDC_REBASE_POST_BUTTON)\r
+ {\r
+ CString cmd,out;\r
+ cmd.Format(_T("git.exe format-patch -o \"%s\" %s..%s"),\r
+ g_Git.m_CurrentDir,\r
+ dlg.m_Upstream,dlg.m_Branch);\r
+ if(g_Git.Run(cmd,&out,CP_ACP))\r
+ {\r
+ CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+ return FALSE;\r
+ }\r
+\r
+ CAppUtils::SendPatchMail(cmd,out);\r
+ }\r
return TRUE;\r
+ }\r
}\r
#if 0\r
CCloneDlg dlg;\r