bool RevertCommand::Execute() { CRevertDlg dlg; dlg.m_pathList = pathList; if (dlg.DoModal() == IDOK) { // g_Git.Revert(dlg.m_selectedPathList,true); CGitProgressDlg progDlg; theApp.m_pMainWnd = &progDlg; progDlg.SetCommand(CGitProgressDlg::GitProgress_Revert); if (parser.HasVal(_T("closeonend"))) progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); progDlg.SetOptions(dlg.m_bRecursive ? ProgOptRecursive : ProgOptNonRecursive); progDlg.SetPathList(dlg.m_pathList); progDlg.SetItemCount(dlg.m_selectedPathList.GetCount()); progDlg.SetSelectedList(dlg.m_selectedPathList); progDlg.DoModal(); return true; } return false; }
bool AddCommand::Execute() { bool bRet = false; if (parser.HasKey(_T("noui"))) { #if 0 SVN svn; ProjectProperties props; props.ReadPropsPathList(pathList); bRet = !!svn.Add(pathList, &props, svn_depth_empty, FALSE, FALSE, TRUE); CShellUpdater::Instance().AddPathsForUpdate(pathList); #endif } else { #if 0 if (pathList.AreAllPathsFiles()) { SVN svn; ProjectProperties props; props.ReadPropsPathList(pathList); bRet = !!svn.Add(pathList, &props, svn_depth_empty, FALSE, FALSE, TRUE); CShellUpdater::Instance().AddPathsForUpdate(pathList); } else { #endif CAddDlg dlg; dlg.m_pathList = pathList; if (dlg.DoModal() == IDOK) { #if 0 CString cmd,out; int success=0; for(int i=0;i<dlg.m_pathList.GetCount();i++) { cmd.Format(_T("git.exe add -- \"%s\""),dlg.m_pathList[i].GetGitPathString()); if(g_Git.Run(cmd,&out,CP_ACP)) { CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR); } success++; } CString message; message.Format(_T("%d file added"),success); CMessageBox::Show(NULL,message,_T("TortoiseGit"),MB_OK); return TRUE; #endif if (dlg.m_pathList.GetCount() == 0) return FALSE; CGitProgressDlg progDlg; theApp.m_pMainWnd = &progDlg; progDlg.SetCommand(CGitProgressDlg::GitProgress_Add); if (parser.HasVal(_T("closeonend"))) progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); progDlg.SetPathList(dlg.m_pathList); //ProjectProperties props; //props.ReadPropsPathList(dlg.m_pathList); //progDlg.SetProjectProperties(props); progDlg.SetItemCount(dlg.m_pathList.GetCount()); progDlg.DoModal(); CShellUpdater::Instance().AddPathsForUpdate(dlg.m_pathList); bRet = !progDlg.DidErrorsOccur(); } // } } CShellUpdater::Instance().Flush(); return bRet; }
bool DropCopyAddCommand::Execute() { bool bRet = false; CString droppath = parser.GetVal(_T("droptarget")); if (CTGitPath(droppath).IsAdminDir()) return FALSE; if(!CTGitPath(droppath).HasAdminDir(&g_Git.m_CurrentDir)) return FALSE; orgPathList.RemoveAdminPaths(); CTGitPathList copiedFiles; for(int nPath = 0; nPath < orgPathList.GetCount(); nPath++) { if (!orgPathList[nPath].IsEquivalentTo(CTGitPath(droppath))) { //copy the file to the new location CString name = orgPathList[nPath].GetFileOrDirectoryName(); if (::PathFileExists(droppath+_T("\\")+name)) { CString strMessage; strMessage.Format(IDS_PROC_OVERWRITE_CONFIRM, (LPCTSTR)(droppath+_T("\\")+name)); int ret = CMessageBox::Show(hwndExplorer, strMessage, _T("TortoiseGit"), MB_YESNOCANCEL | MB_ICONQUESTION); if (ret == IDYES) { if (!::CopyFile(orgPathList[nPath].GetWinPath(), droppath+_T("\\")+name, FALSE)) { //the copy operation failed! Get out of here! ShowErrorMessage(); return FALSE; } } if (ret == IDCANCEL) { return FALSE; //cancel the whole operation } } else if (!CopyFile(orgPathList[nPath].GetWinPath(), droppath+_T("\\")+name, FALSE)) { //the copy operation failed! Get out of here! ShowErrorMessage(); return FALSE; } copiedFiles.AddPath(CTGitPath(droppath+_T("\\")+name)); //add the new filepath } } //now add all the newly copied files to the working copy CGitProgressDlg progDlg; theApp.m_pMainWnd = &progDlg; progDlg.SetCommand(CGitProgressDlg::GitProgress_Add); if (parser.HasVal(_T("closeonend"))) progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend"))); progDlg.SetPathList(copiedFiles); ProjectProperties props; props.ReadPropsPathList(copiedFiles); progDlg.SetProjectProperties(props); progDlg.DoModal(); bRet = !progDlg.DidErrorsOccur(); return bRet; }