From 65cb1586c45b6ca2e74753b93e8677edcae903ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 1 Aug 2011 16:46:36 +0200 Subject: Document the indexer calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Carlos Martín Nieto --- include/git2/indexer.h | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'include/git2/indexer.h') diff --git a/include/git2/indexer.h b/include/git2/indexer.h index 9273efca7..6c31956b1 100644 --- a/include/git2/indexer.h +++ b/include/git2/indexer.h @@ -4,6 +4,10 @@ #include "git2/common.h" #include "git2/oid.h" +/** + * This is passed as the first argument to the callback to allow the + * user to see the progress. + */ typedef struct git_indexer_stats { unsigned int total; unsigned int processed; @@ -12,10 +16,51 @@ typedef struct git_indexer_stats { typedef struct git_indexer git_indexer; +/** + * Create a new indexer instance + * + * @param out where to store the indexer instance + * @param packname the absolute filename of the packfile to index + */ GIT_EXTERN(int) git_indexer_new(git_indexer **out, const char *packname); + +/** + * Iterate over the objects in the packfile and extract the information + * + * Indexing a packfile can be very expensive so this function is + * expected to be run in a worker thread and the stats used to provide + * feedback the user. + * + * @param idx the indexer instance + * @param stats storage for the running state + */ GIT_EXTERN(int) git_indexer_run(git_indexer *idx, git_indexer_stats *stats); -GIT_EXTERN(const git_oid *) git_indexer_result(git_indexer *idx); + +/** + * Write the index file to disk. + * + * The file will be stored as pack-$hash.idx in the same directory as + * the packfile. + * + * @param idx the indexer instance + */ GIT_EXTERN(int) git_indexer_write(git_indexer *idx); + +/** + * Get the packfile's hash + * + * A packfile's name is derived from the sorted hashing of all object + * names. This is only correct after the index has been written to disk. + * + * @param idx the indexer instance + */ +GIT_EXTERN(const git_oid *) git_indexer_hash(git_indexer *idx); + +/** + * Free the indexer and its resources + * + * @param idx the indexer to free + */ GIT_EXTERN(void) git_indexer_free(git_indexer *idx); -- cgit v1.2.1