{\r
//USES_CONVERSION;\r
//str->Append(A2W_CP((LPCSTR)p,code));\r
+ if(str == NULL)\r
+ return ;\r
+\r
WCHAR * buf;\r
\r
int len ;\r
return 0;\r
}\r
\r
-int CGit::GetLog(BYTE_VECTOR& logOut, CString &hash, CTGitPath *path ,int count,int mask)\r
+int CGit::GetLog(BYTE_VECTOR& logOut, CString &hash, CTGitPath *path ,int count,int mask,CString *from,CString *to)\r
{\r
CGitCall_ByteVector gitCall(CString(),&logOut);\r
- return GetLog(&gitCall,hash,path,count,mask);\r
+ return GetLog(&gitCall,hash,path,count,mask,from,to);\r
}\r
\r
//int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path ,int count,int mask)\r
-int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path, int count, int mask)\r
+int CGit::GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path, int count, int mask,CString *from,CString *to)\r
{\r
\r
CString cmd;\r
if(mask& CGit::LOG_INFO_FOLLOW)\r
param += _T(" --follow ");\r
\r
+ if(from != NULL && to != NULL)\r
+ {\r
+ CString range;\r
+ range.Format(_T(" %s..%s "),*from,*to);\r
+ param += range;\r
+ }\r
param+=hash;\r
\r
cmd.Format(_T("git.exe log %s -z --topo-order %s --parents --pretty=format:\""),\r
}\r
\r
if (pszSubPath)\r
- cmd.Format(_T("igit.exe %s status %s %s"), CUnicodeUtils::GetUnicode(pszProjectPath), sMode, CUnicodeUtils::GetUnicode(pszSubPath));\r
+ cmd.Format(_T("igit.exe \"%s\" status %s \"%s\""), CUnicodeUtils::GetUnicode(pszProjectPath), sMode, CUnicodeUtils::GetUnicode(pszSubPath));\r
else\r
- cmd.Format(_T("igit.exe %s status %s"), CUnicodeUtils::GetUnicode(pszProjectPath), sMode);\r
+ cmd.Format(_T("igit.exe \"%s\" status %s"), CUnicodeUtils::GetUnicode(pszProjectPath), sMode);\r
\r
W_GitCall.SetCmd(cmd);\r
// NOTE: should igit get added as a part of msysgit then use below line instead of the above one\r
\r
return TRUE;\r
}\r
+\r
+BOOL CGit::CheckCleanWorkTree()\r
+{\r
+ CString out;\r
+ CString cmd;\r
+ cmd=_T("git.exe rev-parse --verify HEAD");\r
+\r
+ if(g_Git.Run(cmd,&out,CP_UTF8))\r
+ return FALSE;\r
+\r
+ cmd=_T("git.exe update-index --ignore-submodules --refresh");\r
+ if(g_Git.Run(cmd,&out,CP_UTF8))\r
+ return FALSE;\r
+\r
+ cmd=_T("git.exe diff-files --quiet --ignore-submodules");\r
+ if(g_Git.Run(cmd,&out,CP_UTF8))\r
+ return FALSE;\r
+\r
+ cmd=_T("git diff-index --cached --quiet HEAD --ignore-submodules");\r
+ if(g_Git.Run(cmd,&out,CP_UTF8))\r
+ return FALSE;\r
+\r
+ return TRUE;\r
+}\r
+\r
+int CGit::ListConflictFile(CTGitPathList &list,CTGitPath *path)\r
+{\r
+ BYTE_VECTOR vector;\r
+\r
+ CString cmd;\r
+ if(path)\r
+ cmd.Format(_T("git.exe ls-files -u -t -z -- \"%s\""),path->GetGitPathString());\r
+ else\r
+ cmd=_T("git.exe ls-files -u -t -z");\r
+\r
+ if(g_Git.Run(cmd,&vector))\r
+ {\r
+ return -1;\r
+ }\r
+\r
+ list.ParserFromLsFile(vector);\r
+\r
+ return 0;\r
+}
\ No newline at end of file