From 9c691c07236e0d2118921406613c52e045e583ad Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 12 Oct 2011 01:59:49 +0200 Subject: [PATCH] allow to update submodules after switch/checkout Signed-off-by: Sven Strickroth --- src/TortoiseProc/AppUtils.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/TortoiseProc/AppUtils.cpp b/src/TortoiseProc/AppUtils.cpp index 64ac12ed0..43dd029c3 100644 --- a/src/TortoiseProc/AppUtils.cpp +++ b/src/TortoiseProc/AppUtils.cpp @@ -1228,7 +1228,21 @@ bool CAppUtils::PerformSwitch(CString ref, bool bForce /* false */, CString sNew CProgressDlg progress; progress.m_bAutoCloseOnSuccess = autoClose; progress.m_GitCmd = cmd; - if(progress.DoModal()==IDOK) + + CTGitPath gitPath = g_Git.m_CurrentDir; + if (gitPath.HasSubmodules()) + progress.m_PostCmdList.Add(_T("Update Submodules")); + + int ret = progress.DoModal(); + if (gitPath.HasSubmodules() && ret == IDC_PROGRESS_BUTTON1) + { + CString sCmd; + sCmd.Format(_T("\"%s\" /command:subupdate /bkpath:\"%s\""), (LPCTSTR)(CPathUtils::GetAppDirectory() + _T("TortoiseProc.exe")), (LPCTSTR)g_Git.m_CurrentDir); + + LaunchApplication(sCmd, NULL, false); + return TRUE; + } + else if (ret == IDOK) return TRUE; return FALSE; -- 2.11.4.GIT