#include "MessageBox.h"\r
#include "PullFetchDlg.h"\r
#include "ProgressDlg.h"\r
+#include "FileDiffDlg.h"\r
+#include "AppUtils.h"\r
\r
bool PullCommand::Execute()\r
{\r
{\r
CString url;\r
url=dlg.m_RemoteURL;\r
+\r
+ if(dlg.m_bAutoLoad)\r
+ {\r
+ CAppUtils::LaunchPAgent(NULL,&dlg.m_RemoteURL);\r
+ }\r
+ \r
CString cmd;\r
- cmd.Format(_T("git.exe pull \"%s\""),url);\r
+ CString hashOld = g_Git.GetHash(L"HEAD");\r
+ CString cmdRebase;\r
+ if(dlg.m_bRebase)\r
+ cmdRebase = "--rebase ";\r
+ cmd.Format(_T("git.exe pull %s\"%s\" %s"),cmdRebase, url, dlg.m_RemoteBranchName);\r
CProgressDlg progress;\r
- progress.m_GitCmd=cmd;\r
+ progress.m_GitCmd = cmd;\r
+ progress.m_bAutoCloseOnSuccess = true;\r
if(progress.DoModal()==IDOK)\r
+ {\r
+ CString hashNew = g_Git.GetHash(L"HEAD");\r
+\r
+ if(hashOld == hashNew)\r
+ {\r
+ if(progress.m_GitStatus == 0)\r
+ CMessageBox::Show(NULL, L"Already up to date.", L"Pull", MB_OK | MB_ICONINFORMATION);\r
+ return TRUE;\r
+ }\r
+\r
+ CFileDiffDlg dlg;\r
+ dlg.SetDiff(NULL, hashNew, hashOld);\r
+ dlg.DoModal();\r
+\r
return TRUE;\r
+ }\r
}\r
#if 0\r
CCloneDlg dlg;\r