X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;ds=sidebyside;f=src%2FGit%2FGit.h;h=e661e8f2beab64a734be1d7dcc2e6051a8e242bf;hb=aafe33f262f0d6fa81293f574eed2c619afd910d;hp=d318dd20fd6fb9e4b0dd9e8a044afc97633e5930;hpb=16aed228a19135a197d983ea37bd93ee8ef8a2b0;p=tortoisegit%2FTortoiseGitJp.git diff --git a/src/Git/Git.h b/src/Git/Git.h index d318dd2..e661e8f 100644 --- a/src/Git/Git.h +++ b/src/Git/Git.h @@ -1,27 +1,25 @@ #pragma once +#include "GitType.h" #include "GitRev.h" #include "GitStatus.h" #include "GitAdminDir.h" -enum -{ - GIT_SUCCESS=0, - GIT_ERROR_OPEN_PIP, - GIT_ERROR_CREATE_PROCESS, - GIT_ERROR_GET_EXIT_CODE -}; -typedef std::vector STRING_VECTOR; -typedef std::map MAP_HASH_NAME; class CGit { private: GitAdminDir m_GitDir; public: - static CString m_MsysGitPath; + static BOOL CheckMsysGitDir(); + static CString ms_LastMsysGitDir; // the last msysgitdir added to the path, blank if none + +// static CString m_MsysGitPath; CGit(void); ~CGit(void); - int Run(CString cmd, CString* output); + + int Run(CString cmd, CString* output,int code); + int Run(CString cmd, BYTE_VECTOR *byte_array); + int RunAsync(CString cmd,PROCESS_INFORMATION *pi, HANDLE* hRead, CString *StdioFile=NULL); int RunLogFile(CString cmd, CString &filename); CString GetUserName(void); @@ -41,13 +39,37 @@ public: BRANCH_ALL=BRANCH_LOCAL|BRANCH_REMOTE, }BRANCH_TYPE; - int GetRemoteList(CStringList &list); - int GetBranchList(CStringList &list, int *Current,BRANCH_TYPE type=BRANCH_LOCAL); - int GetTagList(CStringList &list); + typedef enum + { + LOG_INFO_STAT=0x1, + LOG_INFO_FILESTATE=0x2, + LOG_INFO_PATCH=0x4, + LOG_INFO_FULLHISTORY=0x8, + LOG_INFO_BOUNDARY=0x10, + LOG_INFO_ALL_BRANCH=0x20, + LOG_INFO_ONLY_HASH=0x40, + LOG_INFO_DETECT_RENAME=0x80, + LOG_INFO_DETECT_COPYRENAME=0x100, + LOG_INFO_FIRST_PARENT = 0x200, + LOG_INFO_NO_MERGE = 0x400, + LOG_INFO_FOLLOW = 0x800 + }LOG_INFO_MASK; + + int GetRemoteList(STRING_VECTOR &list); + int GetBranchList(STRING_VECTOR &list, int *Current,BRANCH_TYPE type=BRANCH_LOCAL); + int GetTagList(STRING_VECTOR &list); int GetMapHashToFriendName(MAP_HASH_NAME &map); - int GetLog(CString& logOut); + //hash is empty means all. -1 means all + 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); + git_revnum_t GetHash(CString &friendname); + + int BuildOutputFormat(CString &format,bool IsFull=TRUE); + //int GetShortLog(CString &log,CTGitPath * path=NULL, int count =-1); + static void StringAppend(CString *str,BYTE *p,int code=CP_UTF8,int length=-1); + + BOOL IsInitRepos(); }; extern void GetTempPath(CString &path);