}\r
return -1;\r
}\r
+\r
+int CAppUtils::StashPop()\r
+{\r
+ CString cmd,out;\r
+ cmd=_T("git.exe stash pop ");\r
+ \r
+ if(g_Git.Run(cmd,&out,CP_ACP))\r
+ {\r
+ CMessageBox::Show(NULL,CString(_T("<ct=0x0000FF>Stash POP Fail!!!</ct>\n"))+out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+\r
+ }else\r
+ {\r
+ if(CMessageBox::Show(NULL,CString(_T("<ct=0xff0000>Stash POP Success</ct>\nDo you want to show change?"))\r
+ ,_T("TortoiseGit"),MB_YESNO|MB_ICONINFORMATION) == IDYES)\r
+ {\r
+ CChangedDlg dlg;\r
+ dlg.m_pathList.AddPath(CTGitPath());\r
+ dlg.DoModal(); \r
+ }\r
+ return 0;\r
+ }\r
+ return -1;\r
+}\r
+\r
bool CAppUtils::GetMimeType(const CTGitPath& file, CString& mimetype)\r
{\r
#if 0\r
\r
CString cleanCommandLine(sCommandLine);\r
\r
- if (CreateProcess(NULL, const_cast<TCHAR*>((LPCTSTR)cleanCommandLine), NULL, NULL, FALSE, 0, 0, sOrigCWD, &startup, &process)==0)\r
+ if (CreateProcess(NULL, const_cast<TCHAR*>((LPCTSTR)cleanCommandLine), NULL, NULL, FALSE, 0, 0, g_Git.m_CurrentDir, &startup, &process)==0)\r
{\r
if(idErrMessageFormat != 0)\r
{\r
proc += _T("TortoiseProc.exe /command:settings");\r
proc += _T(" /path:\"");\r
proc += g_Git.m_CurrentDir;\r
- proc += _T("\" /page:remote");\r
+ proc += _T("\" /page:gitremote");\r
return LaunchApplication(proc, IDS_ERR_EXTDIFFSTART, false);\r
}\r
/**\r
return file;\r
}\r
\r
-bool CAppUtils::ConflictEdit(CTGitPath &path,bool bAlternativeTool)\r
+bool CAppUtils::ConflictEdit(CTGitPath &path,bool bAlternativeTool,bool revertTheirMy)\r
{\r
bool bRet = false;\r
\r
if(b_local && b_remote )\r
{\r
merge.SetFromWin(g_Git.m_CurrentDir+_T("\\")+merge.GetWinPathString());\r
- bRet = !!CAppUtils::StartExtMerge(base, theirs, mine, merge,_T("BASE"),_T("REMOTE"),_T("LOCAL"));\r
+ if( revertTheirMy )\r
+ bRet = !!CAppUtils::StartExtMerge(base,mine, theirs, merge,_T("BASE"),_T("LOCAL"),_T("REMOTE"));\r
+ else\r
+ bRet = !!CAppUtils::StartExtMerge(base, theirs, mine, merge,_T("BASE"),_T("REMOTE"),_T("LOCAL"));\r
\r
}else\r
{\r
CString cmd,out;\r
if(dlg.m_bIsDelete)\r
{\r
- cmd.Format(_T("git.exe rm \"%s\""),merge.GetGitPathString());\r
+ cmd.Format(_T("git.exe rm -- \"%s\""),merge.GetGitPathString());\r
}else\r
- cmd.Format(_T("git.exe add \"%s\""),merge.GetGitPathString());\r
+ cmd.Format(_T("git.exe add -- \"%s\""),merge.GetGitPathString());\r
\r
if(g_Git.Run(cmd,&out,CP_ACP))\r
{\r
}\r
return false;\r
}\r
+\r
+bool CAppUtils::SendPatchMail(CString &cmd,CString &formatpatchoutput,bool autoclose)\r
+{\r
+ CTGitPathList list;\r
+ CString log=formatpatchoutput;\r
+ int start=log.Find(cmd);\r
+ if(start >=0)\r
+ CString one=log.Tokenize(_T("\n"),start);\r
+ else\r
+ start = 0;\r
+\r
+ while(start>=0)\r
+ {\r
+ CString one=log.Tokenize(_T("\n"),start);\r
+ one=one.Trim();\r
+ if(one.IsEmpty())\r
+ continue;\r
+ one.Replace(_T('/'),_T('\\'));\r
+ CTGitPath path;\r
+ path.SetFromWin(one);\r
+ list.AddPath(path);\r
+ }\r
+ return SendPatchMail(list,autoclose);\r
+}\r
+\r
+\r
int CAppUtils::GetLogOutputEncode(CGit *pGit)\r
{\r
CString cmd,output;\r