diff options
| author | Jason Penny <jasonpenny4@gmail.com> | 2011-06-22 18:31:20 -0400 |
|---|---|---|
| committer | Vicent Marti <tanoku@gmail.com> | 2011-07-09 13:49:50 +0200 |
| commit | 3af6b34a76cd953f485b8733981493b65becf59e (patch) | |
| tree | b921fe2e5a7ecc4865c16a23d58470a870f0abd6 /include/git2/status.h | |
| parent | 210940da841d7f796d8c98a9a1fe6efffbaf41c5 (diff) | |
| download | libgit2-3af6b34a76cd953f485b8733981493b65becf59e.tar.gz | |
status: get file statuses and run callback
Add git_status_foreach() to run a callback on each file passing the path
and a status value.
Diffstat (limited to 'include/git2/status.h')
| -rw-r--r-- | include/git2/status.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/git2/status.h b/include/git2/status.h index 97fff43e8..72912c59c 100644 --- a/include/git2/status.h +++ b/include/git2/status.h @@ -37,6 +37,20 @@ */ GIT_BEGIN_DECL +#define GIT_STATUS_CURRENT 0 +/** Flags for index status */ +#define GIT_STATUS_INDEX_NEW (1 << 0) +#define GIT_STATUS_INDEX_MODIFIED (1 << 1) +#define GIT_STATUS_INDEX_DELETED (1 << 2) + +/** Flags for worktree status */ +#define GIT_STATUS_WT_NEW (1 << 3) +#define GIT_STATUS_WT_MODIFIED (1 << 4) +#define GIT_STATUS_WT_DELETED (1 << 5) + +// TODO Ignored files not handled yet +#define GIT_STATUS_IGNORED (1 << 6) + /** * Read a file from disk and fill a git_oid with the object id * that the file would have if it were written to the Object @@ -49,6 +63,19 @@ GIT_BEGIN_DECL */ GIT_EXTERN(int) git_status_hashfile(git_oid *out, const char *path); +/** + * Gather file statuses and run a callback for each one. + * + * The callback is passed the path of the file, the status and the data pointer + * passed to this function. If the callback returns something other than + * GIT_SUCCESS, this function will return that value. + * + * @param repo a repository object + * @param callback the function to call on each file + * @return GIT_SUCCESS or the return value of the callback which did not return 0; + */ +GIT_EXTERN(int) git_status_foreach(git_repository *repo, int (*callback)(const char *, unsigned int, void *), void *payload); + /** @} */ GIT_END_DECL #endif |
