bool SubmoduleAddCommand::Execute() { bool bRet = false; CSubmoduleAddDlg dlg; dlg.m_strPath = cmdLinePath.GetDirectory().GetWinPathString(); dlg.m_strProject = g_Git.m_CurrentDir; if( dlg.DoModal() == IDOK ) { CString cmd; if(dlg.m_strPath.Left(g_Git.m_CurrentDir.GetLength()) == g_Git.m_CurrentDir) dlg.m_strPath = dlg.m_strPath.Right(dlg.m_strPath.GetLength()-g_Git.m_CurrentDir.GetLength()-1); CString branch; if(dlg.m_bBranch) branch.Format(_T(" -b %s "), dlg.m_strBranch); dlg.m_strPath.Replace(_T('\\'),_T('/')); dlg.m_strRepos.Replace(_T('\\'),_T('/')); cmd.Format(_T("git.exe submodule add %s -- \"%s\" \"%s\""), branch, dlg.m_strRepos, dlg.m_strPath); CProgressDlg progress; progress.m_GitCmd=cmd; progress.DoModal(); bRet = TRUE; } return bRet; }
bool SubmoduleAddCommand::Execute() { bool bRet = false; CSubmoduleAddDlg dlg; dlg.m_strPath = cmdLinePath.GetDirectory().GetWinPathString(); dlg.m_strProject = g_Git.m_CurrentDir; if( dlg.DoModal() == IDOK ) { if (dlg.m_bAutoloadPuttyKeyFile) CAppUtils::LaunchPAgent(&dlg.m_strPuttyKeyFile); CString cmd; if(dlg.m_strPath.Left(g_Git.m_CurrentDir.GetLength()) == g_Git.m_CurrentDir) dlg.m_strPath = dlg.m_strPath.Right(dlg.m_strPath.GetLength()-g_Git.m_CurrentDir.GetLength()-1); CString branch; if(dlg.m_bBranch) branch.Format(_T(" -b %s "), (LPCTSTR)dlg.m_strBranch); CString force; if (dlg.m_bForce) force = _T("--force"); dlg.m_strPath.Replace(_T('\\'),_T('/')); dlg.m_strRepos.Replace(_T('\\'),_T('/')); cmd.Format(_T("git.exe submodule add %s %s -- \"%s\" \"%s\""), (LPCTSTR)branch, (LPCTSTR)force, (LPCTSTR)dlg.m_strRepos, (LPCTSTR)dlg.m_strPath); CProgressDlg progress; progress.m_GitCmd=cmd; progress.DoModal(); if (progress.m_GitStatus == 0) { if (dlg.m_bAutoloadPuttyKeyFile) { SetCurrentDirectory(g_Git.m_CurrentDir); CGit subgit; dlg.m_strPath.Replace(_T('/'), _T('\\')); subgit.m_CurrentDir = PathIsRelative(dlg.m_strPath) ? g_Git.CombinePath(dlg.m_strPath) : dlg.m_strPath; if (subgit.SetConfigValue(_T("remote.origin.puttykeyfile"), dlg.m_strPuttyKeyFile, CONFIG_LOCAL)) { CMessageBox::Show(NULL, _T("Fail set config remote.origin.puttykeyfile"), _T("TortoiseGit"), MB_OK| MB_ICONERROR); return FALSE; } } } bRet = TRUE; } return bRet; }