+\r
+ typedef enum\r
+ {\r
+ BRANCH_LOCAL=0x1,\r
+ BRANCH_REMOTE=0x2,\r
+ BRANCH_ALL=BRANCH_LOCAL|BRANCH_REMOTE,\r
+ }BRANCH_TYPE;\r
+\r
+ typedef enum\r
+ {\r
+ LOG_INFO_STAT=0x1,\r
+ LOG_INFO_FILESTATE=0x2,\r
+ LOG_INFO_PATCH=0x4,\r
+ LOG_INFO_FULLHISTORY=0x8,\r
+ LOG_INFO_BOUNDARY=0x10,\r
+ LOG_INFO_ALL_BRANCH=0x20,\r
+ LOG_INFO_ONLY_HASH=0x40,\r
+ LOG_INFO_DETECT_RENAME=0x80,\r
+ LOG_INFO_DETECT_COPYRENAME=0x100,\r
+ LOG_INFO_FIRST_PARENT = 0x200,\r
+ LOG_INFO_NO_MERGE = 0x400,\r
+ LOG_INFO_FOLLOW = 0x800\r
+ }LOG_INFO_MASK;\r
+\r
+ int GetRemoteList(STRING_VECTOR &list);\r
+ int GetBranchList(STRING_VECTOR &list, int *Current,BRANCH_TYPE type=BRANCH_LOCAL);\r
+ int GetTagList(STRING_VECTOR &list);\r
+ int GetMapHashToFriendName(MAP_HASH_NAME &map);\r
+ \r
+ //hash is empty means all. -1 means all\r
+\r
+ int GetLog(CGitCall* pgitCall, CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME,\r
+ CString *from=NULL,CString *to=NULL);\r
+ int GetLog(BYTE_VECTOR& logOut,CString &hash, CTGitPath *path = NULL,int count=-1,int InfoMask=LOG_INFO_STAT|LOG_INFO_FILESTATE|LOG_INFO_BOUNDARY|LOG_INFO_DETECT_COPYRENAME,\r
+ CString *from=NULL,CString *to=NULL);\r
+\r
+ BOOL EnumFiles(const char *pszProjectPath, const char *pszSubPath, unsigned int nFlags, WGENUMFILECB *pEnumCb, void *pUserData);\r
+\r