\r
#include "CloneDlg.h"\r
#include "ProgressDlg.h"\r
+#include "AppUtils.h"\r
\r
bool CloneCommand::Execute()\r
{\r
dlg.m_Directory=this->orgCmdLinePath.GetWinPathString();\r
if(dlg.DoModal()==IDOK)\r
{\r
+ if(dlg.m_bAutoloadPuttyKeyFile)\r
+ {\r
+ CAppUtils::LaunchPAgent(&dlg.m_strPuttyKeyFile);\r
+ }\r
CString dir=dlg.m_Directory;\r
CString url=dlg.m_URL;\r
+ // is this a windows format UNC path, ie starts with \\ \r
+ if (url.Find(_T("\\\\")) == 0)\r
+ {\r
+ // yes, change all \ to /\r
+ // this should not be necessary but msysgit does not support the use \ here yet\r
+ url.Replace( _T('\\'), _T('/'));\r
+ }\r
CString cmd;\r
- cmd.Format(_T("git.exe clone \"%s\" \"%s\""),\r
+ cmd.Format(_T("git.exe clone -v \"%s\" \"%s\""),\r
url,\r
dir);\r
+\r
+ // Handle Git SVN-clone\r
+ if(dlg.m_bSVN)\r
+ {\r
+ WIN32_FILE_ATTRIBUTE_DATA attribs;\r
+ if(GetFileAttributesEx(dlg.m_Directory, GetFileExInfoStandard, &attribs))\r
+ {\r
+ if(!(attribs.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))\r
+ {\r
+ CString errstr;\r
+ errstr.Format(_T("%s is not valid direcotry"),dlg.m_Directory);\r
+ CMessageBox::Show(NULL,errstr,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+ return FALSE;\r
+ }\r
+ } \r
+ else\r
+ {\r
+ DWORD err = GetLastError();\r
+ if(err == ERROR_PATH_NOT_FOUND)\r
+ {\r
+ if(!CAppUtils::CreateMultipleDirectory(dlg.m_Directory))\r
+ {\r
+ CString errstr;\r
+ errstr.Format(_T("Fail create dir: %s"),dlg.m_Directory);\r
+ CMessageBox::Show(NULL,errstr,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+ return FALSE;\r
+ }\r
+\r
+ }\r
+ else\r
+ {\r
+ CMessageBox::Show(NULL,_T("Unknow ERROR"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+ return FALSE;\r
+ }\r
+ }\r
+\r
+ g_Git.m_CurrentDir=dlg.m_Directory;\r
+ cmd.Format(_T("git.exe svn clone \"%s\" "),\r
+ url);\r
+\r
+ if(dlg.m_bSVNTrunk)\r
+ cmd+=_T(" -T ")+dlg.m_strSVNTrunk;\r
+\r
+ if(dlg.m_bSVNBranch)\r
+ cmd+=_T(" -b ")+dlg.m_strSVNBranchs;\r
+\r
+ if(dlg.m_bSVNTags)\r
+ cmd+=_T(" -t ")+dlg.m_strSVNTags;\r
+\r
+ }\r
CProgressDlg progress;\r
progress.m_GitCmd=cmd;\r
if(progress.DoModal()==IDOK)\r