From: Frank Li Date: Sun, 19 Jul 2009 05:12:40 +0000 (+0800) Subject: Fixed issue #118: Enhancement: "Git Clone" from SVN repository with additional start... X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f3c7489b0c705774be96ca6532678a0781e2d862;p=tortoisegit%2FTortoiseGitJp.git Fixed issue #118: Enhancement: "Git Clone" from SVN repository with additional start revision number option (-r xxx:HEAD) Signed-off-by: Frank Li --- diff --git a/src/Resources/TortoiseProcENG.rc b/src/Resources/TortoiseProcENG.rc index f37e399..6aea821 100644 Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ diff --git a/src/TortoiseGitSetup/VersionNumberInclude.wxi b/src/TortoiseGitSetup/VersionNumberInclude.wxi index 7f37a0c..337bf22 100644 --- a/src/TortoiseGitSetup/VersionNumberInclude.wxi +++ b/src/TortoiseGitSetup/VersionNumberInclude.wxi @@ -2,6 +2,6 @@ - + diff --git a/src/TortoiseProc/CloneDlg.cpp b/src/TortoiseProc/CloneDlg.cpp index 67c9ebc..382d3f4 100644 --- a/src/TortoiseProc/CloneDlg.cpp +++ b/src/TortoiseProc/CloneDlg.cpp @@ -24,6 +24,8 @@ CCloneDlg::CCloneDlg(CWnd* pParent /*=NULL*/) m_strSVNTrunk = _T("trunk"); m_strSVNTags = _T("tags"); m_strSVNBranchs = _T("branches"); + + m_nSVNFrom = 0; } CCloneDlg::~CCloneDlg() @@ -42,10 +44,12 @@ void CCloneDlg::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX,IDC_CHECK_SVN_TRUNK, m_bSVNTrunk); DDX_Check(pDX,IDC_CHECK_SVN_TAG, m_bSVNTags); DDX_Check(pDX,IDC_CHECK_SVN_BRANCH, m_bSVNBranch); + DDX_Check(pDX,IDC_CHECK_SVN_FROM, m_bSVNFrom); DDX_Text(pDX, IDC_EDIT_SVN_TRUNK, m_strSVNTrunk); DDX_Text(pDX, IDC_EDIT_SVN_TAG, m_strSVNTags); DDX_Text(pDX, IDC_EDIT_SVN_BRANCH, m_strSVNBranchs); + DDX_Text(pDX, IDC_EDIT_SVN_FROM, this->m_nSVNFrom); } @@ -113,6 +117,7 @@ BEGIN_MESSAGE_MAP(CCloneDlg, CResizableStandAloneDialog) ON_BN_CLICKED(IDC_CHECK_SVN_TRUNK, &CCloneDlg::OnBnClickedCheckSvnTrunk) ON_BN_CLICKED(IDC_CHECK_SVN_TAG, &CCloneDlg::OnBnClickedCheckSvnTag) ON_BN_CLICKED(IDC_CHECK_SVN_BRANCH, &CCloneDlg::OnBnClickedCheckSvnBranch) + ON_BN_CLICKED(IDC_CHECK_SVN_FROM, &CCloneDlg::OnBnClickedCheckSvnFrom) END_MESSAGE_MAP() @@ -228,6 +233,7 @@ void CCloneDlg::OnCbnEditchangeUrlcombo() this->UpdateData(); CString url; m_URLCombo.GetWindowText(url); + if(m_OldURL == url ) return; @@ -301,10 +307,36 @@ void CCloneDlg::OnCbnEditchangeUrlcombo() void CCloneDlg::OnBnClickedCheckSvn() { + this->UpdateData(); + + if(this->m_bSVN) + { + CString str; + m_URLCombo.GetWindowText(str); + + while(str.GetLength()>=1 && + str[str.GetLength()-1] == _T('\\') && + str[str.GetLength()-1] == _T('/')) + { + str=str.Left(str.GetLength()-1); + } + if(str.GetLength()>=5 && (str.Right(5).MakeLower() == _T("trunk") )) + { + this->m_bSVNBranch=this->m_bSVNTags=this->m_bSVNTrunk = FALSE; + this->UpdateData(FALSE); + }else + { + this->m_bSVNBranch=this->m_bSVNTags=this->m_bSVNTrunk = TRUE; + this->UpdateData(FALSE); + } + + } + // TODO: Add your control notification handler code here OnBnClickedCheckSvnTrunk(); OnBnClickedCheckSvnTag(); OnBnClickedCheckSvnBranch(); + OnBnClickedCheckSvnFrom(); } void CCloneDlg::OnBnClickedCheckSvnTrunk() @@ -330,3 +362,11 @@ void CCloneDlg::OnBnClickedCheckSvnBranch() this->GetDlgItem(IDC_CHECK_SVN_BRANCH)->EnableWindow(this->m_bSVN); this->GetDlgItem(IDC_EDIT_SVN_BRANCH)->EnableWindow(this->m_bSVNBranch&&this->m_bSVN); } + +void CCloneDlg::OnBnClickedCheckSvnFrom() +{ + // TODO: Add your control notification handler code here + UpdateData(TRUE); + this->GetDlgItem(IDC_CHECK_SVN_FROM)->EnableWindow(this->m_bSVN); + this->GetDlgItem(IDC_EDIT_SVN_FROM)->EnableWindow(this->m_bSVNFrom&&this->m_bSVN); +} diff --git a/src/TortoiseProc/CloneDlg.h b/src/TortoiseProc/CloneDlg.h index 0820aac..b5028cc 100644 --- a/src/TortoiseProc/CloneDlg.h +++ b/src/TortoiseProc/CloneDlg.h @@ -43,9 +43,12 @@ public: BOOL m_bSVNTrunk; BOOL m_bSVNTags; BOOL m_bSVNBranch; + BOOL m_bSVNFrom; + CString m_strSVNTrunk; CString m_strSVNTags; CString m_strSVNBranchs; + int m_nSVNFrom; afx_msg void OnBnClickedPuttykeyfileBrowse(); afx_msg void OnBnClickedPuttykeyAutoload(); @@ -58,4 +61,5 @@ public: afx_msg void OnBnClickedCheckSvnTrunk(); afx_msg void OnBnClickedCheckSvnTag(); afx_msg void OnBnClickedCheckSvnBranch(); + afx_msg void OnBnClickedCheckSvnFrom(); }; diff --git a/src/TortoiseProc/Commands/CloneCommand.cpp b/src/TortoiseProc/Commands/CloneCommand.cpp index 361748e..805de19 100644 --- a/src/TortoiseProc/Commands/CloneCommand.cpp +++ b/src/TortoiseProc/Commands/CloneCommand.cpp @@ -74,6 +74,13 @@ bool CloneCommand::Execute() if(dlg.m_bSVNTags) cmd+=_T(" -t ")+dlg.m_strSVNTags; + if(dlg.m_bSVNFrom) + { + CString str; + str.Format(_T("%d:HEAD"),dlg.m_nSVNFrom); + cmd+=_T(" -r ")+str; + } + } CProgressDlg progress; progress.m_GitCmd=cmd; diff --git a/src/TortoiseProc/resource.h b/src/TortoiseProc/resource.h index 67b1957..cd17e9d 100644 Binary files a/src/TortoiseProc/resource.h and b/src/TortoiseProc/resource.h differ