#include "GitRev.h"\r
#include "GitStatus.h"\r
#include "GitAdminDir.h"\r
+#include "gitdll.h"\r
\r
class CGitCall\r
{\r
{\r
private:\r
GitAdminDir m_GitDir;\r
+protected:\r
+ bool m_IsGitDllInited;\r
+ GIT_DIFF m_GitDiff;\r
public:\r
+ void CheckAndInitDll()\r
+ { \r
+ if(!m_IsGitDllInited) \r
+ {\r
+ git_init();\r
+ m_IsGitDllInited=true;\r
+ } \r
+ }\r
+\r
+ GIT_DIFF GetGitDiff()\r
+ {\r
+ if(m_GitDiff)\r
+ return m_GitDiff;\r
+ else\r
+ {\r
+ git_open_diff(&m_GitDiff,"-C -M -r");\r
+ return m_GitDiff;\r
+ }\r
+ }\r
+\r
static BOOL CheckMsysGitDir();\r
static CString ms_LastMsysGitDir; // the last msysgitdir added to the path, blank if none\r
static int m_LogEncode;\r
int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_FULL_DIFF|LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
CString *from=NULL,CString *to=NULL);\r
\r
+ CString GetLogCmd(CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_FULL_DIFF|LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME|LOG_INFO_SHOW_MERGEDFILE,\r
+ CString *from=NULL,CString *to=NULL, bool paramonly=false);\r
+\r
BOOL EnumFiles(const TCHAR *pszProjectPath, const TCHAR *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
\r
git_revnum_t GetHash(const CString &friendname);\r
int ListConflictFile(CTGitPathList &list,CTGitPath *path=NULL);\r
int GetRefList(STRING_VECTOR &list);\r
\r
+ int RefreshGitIndex();\r
\r
//Example: master -> refs/heads/master\r
CString GetFullRefName(CString shortRefName);\r
static CString StripRefName(CString refName);\r
\r
int GetCommitDiffList(CString &rev1,CString &rev2,CTGitPathList &outpathlist);\r
+\r
\r
};\r
extern void GetTempPath(CString &path);\r