OSDN Git Service

Compare previous version ok
[tortoisegit/TortoiseGitJp.git] / src / Git / Git.h
1 #pragma once\r
2 #include "GitRev.h"\r
3 #include "GitStatus.h"\r
4 #include "GitAdminDir.h"\r
5 enum\r
6 {\r
7         GIT_SUCCESS=0,\r
8         GIT_ERROR_OPEN_PIP,\r
9         GIT_ERROR_CREATE_PROCESS,\r
10         GIT_ERROR_GET_EXIT_CODE\r
11 };\r
12 \r
13 typedef std::vector<CString> STRING_VECTOR;\r
14 typedef std::map<CString, STRING_VECTOR> MAP_HASH_NAME;\r
15 \r
16 class CGit\r
17 {\r
18 private:\r
19         GitAdminDir m_GitDir;\r
20 public:\r
21         static CString m_MsysGitPath;\r
22         CGit(void);\r
23         ~CGit(void);\r
24         int Run(CString cmd, CString* output);\r
25         int RunAsync(CString cmd,PROCESS_INFORMATION *pi, HANDLE* hRead, CString *StdioFile=NULL);\r
26         int RunLogFile(CString cmd, CString &filename);\r
27         CString GetUserName(void);\r
28         CString GetUserEmail(void);\r
29         CString GetCurrentBranch(void);\r
30 \r
31         bool SetCurrentDir(CString path)\r
32         {\r
33                 return m_GitDir.HasAdminDir(path,&m_CurrentDir);\r
34         }\r
35         CString m_CurrentDir;\r
36 \r
37         typedef enum\r
38         {\r
39                 BRANCH_LOCAL=0x1,\r
40                 BRANCH_REMOTE=0x2,\r
41                 BRANCH_ALL=BRANCH_LOCAL|BRANCH_REMOTE,\r
42         }BRANCH_TYPE;\r
43 \r
44         int GetRemoteList(CStringList &list);\r
45         int GetBranchList(CStringList &list, int *Current,BRANCH_TYPE type=BRANCH_LOCAL);\r
46         int GetTagList(CStringList &list);\r
47         int GetMapHashToFriendName(MAP_HASH_NAME &map);\r
48         \r
49         int GetLog(CString& logOut);\r
50         git_revnum_t GetHash(CString &friendname);\r
51         \r
52 };\r
53 extern void GetTempPath(CString &path);\r
54 extern CString GetTempFile();\r
55 \r
56 \r
57 extern CGit g_Git;