IMPLEMENT_DYNAMIC(CGitProgressDlg, CResizableStandAloneDialog)\r
CGitProgressDlg::CGitProgressDlg(CWnd* pParent /*=NULL*/)\r
: CResizableStandAloneDialog(CGitProgressDlg::IDD, pParent)\r
+ , m_bCancelled(FALSE)\r
+ , m_pThread(NULL)\r
#if 0\r
, m_Revision(_T("HEAD"))\r
//, m_RevisionEnd(0)\r
, m_bLockWarning(false)\r
, m_bLockExists(false)\r
- , m_bCancelled(FALSE)\r
, m_bThreadRunning(FALSE)\r
, m_nConflicts(0)\r
, m_bErrorsOccurred(FALSE)\r
, m_bMergesAddsDeletesOccurred(FALSE)\r
- , m_pThread(NULL)\r
+ \r
, m_options(ProgOptNone)\r
, m_dwCloseOnEnd((DWORD)-1)\r
, m_bFinishedItemAdded(false)\r
data->color = m_Colors.GetColor(CColors::Modified);\r
break;\r
\r
+ case git_wc_notify_sendmail_retry:\r
+ data->sActionColumnText.LoadString(IDS_SVNACTION_SENDMAIL_RETRY);\r
+ data->sPathColumnText.Empty();\r
+ data->color = m_Colors.GetColor(CColors::Modified);\r
+ break;\r
+\r
\r
case git_wc_notify_resolved:\r
data->sActionColumnText.LoadString(IDS_SVNACTION_RESOLVE);\r
break;\r
\r
+ case git_wc_notify_revert:\r
+ data->sActionColumnText.LoadString(IDS_SVNACTION_REVERT);\r
+ break;\r
+\r
#if 0\r
case svn_wc_notify_commit_added:\r
data->sActionColumnText.LoadString(IDS_SVNACTION_ADDING);\r
case svn_wc_notify_restore:\r
data->sActionColumnText.LoadString(IDS_SVNACTION_RESTORE);\r
break;\r
- case svn_wc_notify_revert:\r
- data->sActionColumnText.LoadString(IDS_SVNACTION_REVERT);\r
- break;\r
+\r
case svn_wc_notify_update_replace:\r
case svn_wc_notify_commit_replaced:\r
data->sActionColumnText.LoadString(IDS_SVNACTION_REPLACED);\r
SVN svn;\r
if (!svn.Cat(data->path, SVNRev(SVNRev::REV_WC), rev, basefile))\r
{\r
- CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseSVN"), MB_ICONERROR);\r
+ CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseGit"), MB_ICONERROR);\r
DialogEnableWindow(IDOK, TRUE);\r
break;\r
}\r
SVN svn;\r
if (!svn.Cat(data->path, SVNRev(SVNRev::REV_WC), rev, tempfile))\r
{\r
- CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseSVN"), MB_ICONERROR);\r
+ CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseGit"), MB_ICONERROR);\r
DialogEnableWindow(IDOK, TRUE);\r
break;\r
}\r
{\r
if (!svn.Resolve(data->path, result, FALSE))\r
{\r
- CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseSVN"), MB_ICONERROR);\r
+ CMessageBox::Show(m_hWnd, svn.GetLastErrorMessage(), _T("TortoiseGit"), MB_ICONERROR);\r
DialogEnableWindow(IDOK, TRUE);\r
break;\r
}\r
{\r
CString msg;\r
msg.Format(IDS_SVNPROGRESS_RESOLVED, (LPCTSTR)sResolvedPaths);\r
- CMessageBox::Show(m_hWnd, msg, _T("TortoiseSVN"), MB_OK | MB_ICONINFORMATION);\r
+ CMessageBox::Show(m_hWnd, msg, _T("TortoiseGit"), MB_OK | MB_ICONINFORMATION);\r
}\r
}\r
break;\r
for(int i=0;i<m_targetPathList.GetCount();i++)\r
{\r
CString cmd,out;\r
- cmd.Format(_T("git.exe add -f \"%s\""),m_targetPathList[i].GetGitPathString());\r
+ cmd.Format(_T("git.exe add -f -- \"%s\""),m_targetPathList[i].GetGitPathString());\r
if(g_Git.Run(cmd,&out,CP_ACP))\r
{\r
CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
for(int i=0;i<m_targetPathList.GetCount();i++)\r
{\r
CString cmd,out,tempmergefile;\r
- cmd.Format(_T("git.exe add -f \"%s\""),m_targetPathList[i].GetGitPathString());\r
+ cmd.Format(_T("git.exe add -f -- \"%s\""),m_targetPathList[i].GetGitPathString());\r
if(g_Git.Run(cmd,&out,CP_ACP))\r
{\r
CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
\r
bool CGitProgressDlg::CmdRevert(CString& sWindowTitle, bool& localoperation)\r
{\r
-#if 0\r
+\r
localoperation = true;\r
sWindowTitle.LoadString(IDS_PROGRS_TITLE_REVERT);\r
SetWindowText(sWindowTitle);\r
SetBackgroundImage(IDI_REVERT_BKG);\r
\r
- CTGitPathList delList = m_selectedPaths;\r
- if (DWORD(CRegDWORD(_T("Software\\TortoiseGit\\RevertWithRecycleBin"), TRUE)))\r
- delList.DeleteAllFiles(true);\r
+ //CTGitPathList delList = m_selectedPaths;\r
+ //if (DWORD(CRegDWORD(_T("Software\\TortoiseGit\\RevertWithRecycleBin"), TRUE)))\r
+ // delList.DeleteAllFiles(true);\r
\r
ReportCmd(CString(MAKEINTRESOURCE(IDS_PROGRS_CMD_REVERT)));\r
- if (!Revert(m_targetPathList, CStringArray(), !!(m_options & ProgOptRecursive)))\r
+ for(int i=0;i<m_selectedPaths.GetCount();i++)\r
{\r
- ReportSVNError();\r
- return false;\r
+ if(g_Git.Revert((CTGitPath&)m_selectedPaths[i],true))\r
+ {\r
+ CMessageBox::Show(NULL,_T("Revert Fail"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+ m_bErrorsOccurred=true;\r
+ return false;\r
+ }\r
+ Notify(m_selectedPaths[i],git_wc_notify_revert);\r
}\r
- CShellUpdater::Instance().AddPathsForUpdate(m_targetPathList);\r
-#endif\r
+\r
+ CShellUpdater::Instance().AddPathsForUpdate(m_selectedPaths);\r
+\r
return true;\r
}\r
\r
//SetBackgroundImage(IDI_ADD_BKG);\r
ReportCmd(CString(MAKEINTRESOURCE(IDS_PROGRS_CMD_SENDMAIL)));\r
bool ret=true;\r
+ if(this->m_SendMailFlags&SENDMAIL_COMBINED)\r
+ {\r
+ CString error;\r
+ CTGitPath path;\r
+ Notify(path,git_wc_notify_sendmail_start);\r
+ CString err;\r
+ int retry=0;\r
+ while(retry <3)\r
+ {\r
+ if(CPatch::Send(m_targetPathList,m_SendMailTO,m_SendMailCC,m_SendMailSubject,this->m_SendMailFlags&SENDMAIL_ATTACHMENT,&err))\r
+ {\r
+ Notify(path,git_wc_notify_sendmail_error,ret,&err);\r
+ ret = false;\r
+ }\r
+ else\r
+ {\r
+ break; \r
+ }\r
\r
- for(int i=0;i<m_targetPathList.GetCount();i++)\r
+ retry++;\r
+ Sleep(2000);\r
+ if(m_bCancelled)\r
+ {\r
+ Notify(path,git_wc_notify_sendmail_retry,ret,&CString("User Canceled"));\r
+ return false;\r
+ }\r
+ }\r
+ Notify(path,git_wc_notify_sendmail_done,ret);\r
+\r
+ }else\r
{\r
- CPatch patch;\r
- Notify(m_targetPathList[i],git_wc_notify_sendmail_start);\r
- int ret=patch.Send((CString&)m_targetPathList[i].GetWinPathString(),this->m_SendMailTO,\r
- this->m_SendMailCC,this->m_SendMailFlags&SENDMAIL_ATTACHMENT);\r
- if(ret)\r
+ for(int i=0;i<m_targetPathList.GetCount();i++)\r
{\r
- Notify(m_targetPathList[i],git_wc_notify_sendmail_error,ret,&patch.m_LastError);\r
- ret = false;\r
+ CPatch patch;\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_start);\r
+\r
+ int retry=0;\r
+ while(retry<3)\r
+ {\r
+ int ret=patch.Send((CString&)m_targetPathList[i].GetWinPathString(),this->m_SendMailTO,\r
+ this->m_SendMailCC,this->m_SendMailFlags&SENDMAIL_ATTACHMENT);\r
+ if(ret)\r
+ {\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_error,ret,&patch.m_LastError);\r
+ ret = false;\r
+\r
+ }else\r
+ {\r
+ break;\r
+ }\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_retry,ret,&patch.m_LastError);\r
+\r
+ retry++;\r
+ Sleep(2000);\r
+ if(m_bCancelled)\r
+ {\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_retry,ret,&CString("User Canceled"));\r
+ return false;\r
+ }\r
+ }\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_done,ret);\r
+ \r
}\r
- Notify(m_targetPathList[i],git_wc_notify_sendmail_done,ret);\r
- if(m_bCancelled)\r
- return false;\r
}\r
return ret;\r
}
\ No newline at end of file