From: Frank Li Date: Tue, 8 Sep 2009 14:52:34 +0000 (+0800) Subject: Fixed issue #158: Rebase can act on the wrong branch X-Git-Url: http://git.sourceforge.jp/view?p=tortoisegit%2FTortoiseGitJp.git;a=commitdiff_plain;h=289a7f35ae927990c0d863fb8eb0b454e46ad796;hp=792c594816a39170f40bdb458e7b5f4c9adb316c Fixed issue #158: Rebase can act on the wrong branch Can't checkout current branch when fast forward case. Signed-off-by: Frank Li --- diff --git a/ext/apr b/ext/apr index 4853979..c08bb4d 160000 --- a/ext/apr +++ b/ext/apr @@ -1 +1 @@ -Subproject commit 48539798dcea5a2669e59bc8036910cb3a294c13 +Subproject commit c08bb4df7085ef655aea0fb7f79b41e055fc99b9 diff --git a/src/TortoiseProc/RebaseDlg.cpp b/src/TortoiseProc/RebaseDlg.cpp index 51b15de..034221d 100644 --- a/src/TortoiseProc/RebaseDlg.cpp +++ b/src/TortoiseProc/RebaseDlg.cpp @@ -694,10 +694,26 @@ void CRebaseDlg::OnBnClickedContinue() if( m_RebaseStage == REBASE_DONE) { OnOK(); + return; } if( this->m_IsFastForward ) { + CString cmd,out; + CString oldbranch = g_Git.GetCurrentBranch(); + if( oldbranch != m_BranchCtrl.GetString() ) + { + cmd.Format(_T("git.exe checkout %s"),m_BranchCtrl.GetString()); + AddLogString(cmd); + if( g_Git.Run(cmd,&out,CP_ACP) ) + { + this->m_ctrlTabCtrl.SetActiveTab(REBASE_TAB_LOG); + AddLogString(out); + return; + } + } + AddLogString(out); + out.Empty(); m_OrigBranchHash = g_Git.GetHash(m_BranchCtrl.GetString()); m_OrigUpstreamHash = g_Git.GetHash(this->m_UpstreamCtrl.GetString()); @@ -707,7 +723,7 @@ void CRebaseDlg::OnBnClickedContinue() AddLogString(_T("No fast forward\r\nMaybe repository changed")); return; } - CString cmd,out; + cmd.Format(_T("git.exe reset --hard %s"),this->m_UpstreamCtrl.GetString()); this->AddLogString(CString(_T("Fast forward to "))+m_UpstreamCtrl.GetString());