#include "MessageBox.h"\r
#include "UnicodeUtils.h"\r
#include "BrowseRefsDlg.h"\r
+#include "ProgressDlg.h"\r
// CRebaseDlg dialog\r
\r
IMPLEMENT_DYNAMIC(CRebaseDlg, CResizableStandAloneDialog)\r
AddAnchor(IDC_REBASE_COMBOXEX_BRANCH,TOP_LEFT);\r
AddAnchor(IDC_REBASE_STATIC_UPSTREAM,TOP_LEFT);\r
AddAnchor(IDC_REBASE_STATIC_BRANCH,TOP_LEFT);\r
+ AddAnchor(IDHELP, BOTTOM_RIGHT);\r
this->AddOthersToAnchor();\r
}\r
\r
\r
this->SetControlEnable();\r
\r
+ if(!this->m_PreCmd.IsEmpty())\r
+ {\r
+ CProgressDlg progress;\r
+ progress.m_GitCmd=m_PreCmd;\r
+ progress.m_bAutoCloseOnSuccess=true;\r
+ progress.DoModal();\r
+ }\r
+\r
if(m_IsCherryPick)\r
{\r
this->m_BranchCtrl.SetCurSel(-1);\r
m_UpstreamCtrl.AddString(m_Upstream);\r
m_UpstreamCtrl.SetCurSel(m_UpstreamCtrl.GetCount()-1);\r
}\r
+ else\r
+ {\r
+ //Select pull-remote from current branch\r
+ CString currentBranch = g_Git.GetSymbolicRef();\r
+ CString configName;\r
+ configName.Format(L"branch.%s.remote", currentBranch);\r
+ CString pullRemote = g_Git.GetConfigValue(configName);\r
+\r
+ //Select pull-branch from current branch\r
+ configName.Format(L"branch.%s.merge", currentBranch);\r
+ CString pullBranch = CGit::StripRefName(g_Git.GetConfigValue(configName));\r
+\r
+ CString defaultUpstream;\r
+ defaultUpstream.Format(L"remotes/%s/%s", pullRemote, pullBranch);\r
+ int found = m_UpstreamCtrl.FindStringExact(0, defaultUpstream);\r
+ if(found >= 0)\r
+ m_UpstreamCtrl.SetCurSel(found);\r
+ }\r
}\r
\r
void CRebaseDlg::OnCbnSelchangeBranch()\r
m_CommitList.Clear();\r
this->m_CommitList.FillGitLog(NULL,0,&m_UpstreamCtrl.GetString(),&m_BranchCtrl.GetString());\r
if( m_CommitList.GetItemCount() == 0 )\r
- m_CommitList.ShowText(_T("Nothing Rebase"));\r
+ m_CommitList.ShowText(_T("Nothing to Rebase"));\r
\r
CString hash=g_Git.GetHash(m_UpstreamCtrl.GetString());\r
\r
return;\r
}\r
\r
- if(CMessageBox::Show(NULL,_T("Are you sure abort rebase"),_T("TortoiseGit"),MB_YESNO) != IDYES)\r
+ if(CMessageBox::Show(NULL,_T("Are you sure you want to abort the rebase process?"),_T("TortoiseGit"),MB_YESNO) != IDYES)\r
return;\r
\r
cmd.Format(_T("git.exe checkout -f %s"),this->m_UpstreamCtrl.GetString());\r
\r
void CRebaseDlg::OnBnClickedButtonBrowse()\r
{\r
- CString origRef;\r
- m_UpstreamCtrl.GetLBText(m_UpstreamCtrl.GetCurSel(), origRef);\r
- CString resultRef = CBrowseRefsDlg::PickRef(false,origRef,gPickRef_NoTag);\r
- if(resultRef.IsEmpty())\r
- return;\r
- if(wcsncmp(resultRef,L"refs/",5)==0)\r
- resultRef = resultRef.Mid(5);\r
- if(wcsncmp(resultRef,L"heads/",6)==0)\r
- resultRef = resultRef.Mid(6);\r
- m_UpstreamCtrl.SetCurSel(m_UpstreamCtrl.FindStringExact(0,resultRef));\r
-\r
+ if(CBrowseRefsDlg::PickRefForCombo(&m_UpstreamCtrl, gPickRef_NoTag))\r
+ OnCbnSelchangeUpstream();\r
}\r