bool CommitCommand::Execute() { CTGitPathList selectedList; if (parser.HasKey(_T("logmsg")) && (parser.HasKey(_T("logmsgfile")))) { CMessageBox::Show(hwndExplorer, IDS_ERR_TWOLOGPARAMS, IDS_APPNAME, MB_ICONERROR); return false; } CString sLogMsg = LoadLogMessage(); bool bSelectFilesForCommit = !!DWORD(CRegStdDWORD(_T("Software\\TortoiseGit\\SelectFilesForCommit"), TRUE)); #if 0 DWORD exitcode = 0; CString error; if (CHooks::Instance().StartCommit(pathList, sLogMsg, exitcode, error)) { if (exitcode) { CString temp; temp.Format(IDS_ERR_HOOKFAILED, (LPCTSTR)error); CMessageBox::Show(hwndExplorer, temp, _T("TortoiseGit"), MB_ICONERROR); return false; } } #endif if (!GitAdminDir().HasAdminDir(g_Git.m_CurrentDir)) { CMessageBox::Show(hwndExplorer, _T("No working directory found."), _T("TortoiseGit"), MB_ICONERROR); return false; } bool autoClose = false; if (parser.HasVal(_T("closeonend"))) autoClose = !!parser.GetLongVal(_T("closeonend")); return !!CAppUtils::Commit( parser.GetVal(_T("bugid")), parser.HasKey(_T("wholeproject")), sLogMsg, pathList, selectedList, bSelectFilesForCommit, autoClose); }
bool CommitCommand::Execute() { CTGitPathList selectedList; if (parser.HasKey(_T("logmsg")) && (parser.HasKey(_T("logmsgfile")))) { CMessageBox::Show(hwndExplorer, IDS_ERR_TWOLOGPARAMS, IDS_APPNAME, MB_ICONERROR); return false; } CString sLogMsg = LoadLogMessage(); bool bSelectFilesForCommit = !!DWORD(CRegStdDWORD(_T("Software\\TortoiseGit\\SelectFilesForCommit"), TRUE)); if (!GitAdminDir::HasAdminDir(g_Git.m_CurrentDir)) { CMessageBox::Show(hwndExplorer, IDS_NOWORKINGCOPY, IDS_APPNAME, MB_ICONERROR); return false; } return !!CAppUtils::Commit( parser.GetVal(_T("bugid")), parser.HasKey(_T("wholeproject")), sLogMsg, pathList, selectedList, bSelectFilesForCommit); }
bool CommitCommand::Execute() { bool bRet = false; bool bFailed = true; CTGitPathList selectedList; if (parser.HasKey(_T("logmsg")) && (parser.HasKey(_T("logmsgfile")))) { CMessageBox::Show(hwndExplorer, IDS_ERR_TWOLOGPARAMS, IDS_APPNAME, MB_ICONERROR); return false; } CString sLogMsg = LoadLogMessage(); bool bSelectFilesForCommit = !!DWORD(CRegStdWORD(_T("Software\\TortoiseGit\\SelectFilesForCommit"), TRUE)); DWORD exitcode = 0; CString error; #if 0 if (CHooks::Instance().StartCommit(pathList, sLogMsg, exitcode, error)) { if (exitcode) { CString temp; temp.Format(IDS_ERR_HOOKFAILED, (LPCTSTR)error); CMessageBox::Show(hwndExplorer, temp, _T("TortoiseGit"), MB_ICONERROR); return false; } } #endif while (bFailed) { bFailed = false; CCommitDlg dlg; if (parser.HasKey(_T("bugid"))) { dlg.m_sBugID = parser.GetVal(_T("bugid")); } if (parser.HasKey(_T("wholeproject"))) { dlg.m_bWholeProject = TRUE; } dlg.m_sLogMessage = sLogMsg; dlg.m_pathList = pathList; dlg.m_checkedPathList = selectedList; dlg.m_bSelectFilesForCommit = bSelectFilesForCommit; if (dlg.DoModal() == IDOK) { if (dlg.m_pathList.GetCount()==0) return false; // if the user hasn't changed the list of selected items // we don't use that list. Because if we would use the list // of pre-checked items, the dialog would show different // checked items on the next startup: it would only try // to check the parent folder (which might not even show) // instead, we simply use an empty list and let the // default checking do its job. if (!dlg.m_pathList.IsEqual(pathList)) selectedList = dlg.m_pathList; pathList = dlg.m_updatedPathList; sLogMsg = dlg.m_sLogMessage; bSelectFilesForCommit = true; // CGitProgressDlg progDlg; // progDlg.SetChangeList(dlg.m_sChangeList, !!dlg.m_bKeepChangeList); // if (parser.HasVal(_T("closeonend"))) // progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); // progDlg.SetCommand(CGitProgressDlg::GitProgress_Commit); // progDlg.SetOptions(dlg.m_bKeepLocks ? ProgOptKeeplocks : ProgOptNone); // progDlg.SetPathList(dlg.m_pathList); // progDlg.SetCommitMessage(dlg.m_sLogMessage); // progDlg.SetDepth(dlg.m_bRecursive ? Git_depth_infinity : svn_depth_empty); // progDlg.SetSelectedList(dlg.m_selectedPathList); // progDlg.SetItemCount(dlg.m_itemsCount); // progDlg.SetBugTraqProvider(dlg.m_BugTraqProvider); // progDlg.DoModal(); // CRegDWORD err = CRegDWORD(_T("Software\\TortoiseGit\\ErrorOccurred"), FALSE); // err = (DWORD)progDlg.DidErrorsOccur(); // bFailed = progDlg.DidErrorsOccur(); // bRet = progDlg.DidErrorsOccur(); // CRegDWORD bFailRepeat = CRegDWORD(_T("Software\\TortoiseGit\\CommitReopen"), FALSE); // if (DWORD(bFailRepeat)==0) // bFailed = false; // do not repeat if the user chose not to in the settings. } } return bRet; }