1 // The following ifdef block is the standard way of creating macros which make exporting
\r
2 // from a DLL simpler. All files within this DLL are compiled with the GITDLL_EXPORTS
\r
3 // symbol defined on the command line. this symbol should not be defined on any project
\r
4 // that uses this DLL. This way any other project whose source files include this file see
\r
5 // GITDLL_API functions as being imported from a DLL, whereas this DLL sees symbols
\r
6 // defined with this macro as being exported.
\r
11 #define EXTERN extern "C"
\r
16 #ifdef GITDLL_EXPORTS
\r
17 #define GITDLL_API EXTERN __declspec(dllexport)
\r
19 #define GITDLL_API EXTERN __declspec(dllimport)
\r
23 // This class is exported from the gitdll.dll
\r
24 class GITDLL_API Cgitdll {
\r
27 // TODO: add your methods here.
\r
31 #define GIT_HASH_SIZE 20
\r
33 typedef unsigned char GIT_HASH[GIT_HASH_SIZE];
\r
35 typedef unsigned int GIT_HANDLE;
\r
36 typedef unsigned int GIT_LOG;
\r
38 typedef unsigned int GIT_DIFF;
\r
39 typedef unsigned int GIT_FILE;
\r
40 typedef unsigned int GIT_COMMIT_LIST;
\r
42 struct GIT_COMMIT_AUTHOR
\r
52 typedef struct GIT_COMMIT_DATA
\r
55 struct GIT_COMMIT_AUTHOR m_Author;
\r
56 struct GIT_COMMIT_AUTHOR m_Committer;
\r
61 void * m_pGitCommit; /** internal used */
\r
68 GITDLL_API int ngitdll;
\r
70 GITDLL_API int fngitdll(void);
\r
72 * Get Git Last Error string.
\r
74 GITDLL_API char * get_git_last_error();
\r
77 * @param name [IN] Reference name, such as HEAD, master, ...
\r
78 * @param sha1 [OUT] char[20] hash value. Caller prepare char[20] buffer.
\r
79 * @return 0 success.
\r
81 GITDLL_API int git_get_sha1(const char *name, GIT_HASH sha1);
\r
84 * @remark, this function must be call before other function.
\r
87 GITDLL_API int git_init();
\r
89 GITDLL_API int git_open_log(GIT_LOG * handle, char * arg);
\r
90 GITDLL_API int git_get_log_firstcommit(GIT_LOG handle);
\r
91 GITDLL_API int git_get_log_estimate_commit_count(GIT_LOG handle);
\r
95 * @param handle [IN]handle Get handle from git_open_log
\r
96 * @param commit [OUT]commit Caller need prepare buffer for this call
\r
98 * @remark Caller need call git_free_commit to free internal buffer after use it;
\r
100 GITDLL_API int git_get_log_nextcommit(GIT_LOG handle, GIT_COMMIT *commit);
\r
102 GITDLL_API int git_close_log(GIT_LOG handle);
\r
105 * Get Commit information from commit hash
\r
106 * @param commit [OUT] output commit information
\r
107 * @param hash [in] hash
\r
108 * @return 0 success
\r
110 GITDLL_API int git_get_commit_from_hash(GIT_COMMIT *commit, GIT_HASH hash);
\r
111 GITDLL_API int git_parse_commit(GIT_COMMIT *commit);
\r
113 GITDLL_API int git_get_commit_first_parent(GIT_COMMIT *commit,GIT_COMMIT_LIST *list);
\r
114 GITDLL_API int git_get_commit_next_parent(GIT_COMMIT_LIST *list, GIT_HASH hash);
\r
116 GITDLL_API int git_free_commit(GIT_COMMIT *commit);
\r
118 GITDLL_API int git_open_diff(GIT_DIFF *diff, char * arg);
\r
119 GITDLL_API int git_diff(GIT_DIFF diff, GIT_HASH hash1,GIT_HASH hash2, GIT_FILE * file, int *count);
\r
120 GITDLL_API int git_root_diff(GIT_DIFF diff, GIT_HASH hash,GIT_FILE *file, int *count);
\r
121 GITDLL_API int git_diff_flush(GIT_DIFF diff);
\r
122 GITDLL_API int git_close_diff(GIT_DIFF diff);
\r
125 GITDLL_API int git_get_diff_file(GIT_DIFF diff,GIT_FILE file, int i,char **newname, char **oldname, int *mode, int *IsBin, int *inc, int *dec);
\r