| /* |
| * Copyright (C) the libgit2 contributors. All rights reserved. |
| * |
| * This file is part of libgit2, distributed under the GNU GPL v2 with |
| * a Linking Exception. For full terms see the included COPYING file. |
| */ |
| #ifndef INCLUDE_git_refdb_h__ |
| #define INCLUDE_git_refdb_h__ |
| |
| #include "common.h" |
| #include "types.h" |
| #include "oid.h" |
| #include "refs.h" |
| |
| /** |
| * @file git2/refdb.h |
| * @brief Git custom refs backend functions |
| * @defgroup git_refdb Git custom refs backend API |
| * @ingroup Git |
| * @{ |
| */ |
| GIT_BEGIN_DECL |
| |
| /** |
| * Create a new reference database with no backends. |
| * |
| * Before the Ref DB can be used for read/writing, a custom database |
| * backend must be manually set using `git_refdb_set_backend()` |
| * |
| * @param out location to store the database pointer, if opened. |
| * Set to NULL if the open failed. |
| * @param repo the repository |
| * @return 0 or an error code |
| */ |
| GIT_EXTERN(int) git_refdb_new(git_refdb **out, git_repository *repo); |
| |
| /** |
| * Create a new reference database and automatically add |
| * the default backends: |
| * |
| * - git_refdb_dir: read and write loose and packed refs |
| * from disk, assuming the repository dir as the folder |
| * |
| * @param out location to store the database pointer, if opened. |
| * Set to NULL if the open failed. |
| * @param repo the repository |
| * @return 0 or an error code |
| */ |
| GIT_EXTERN(int) git_refdb_open(git_refdb **out, git_repository *repo); |
| |
| /** |
| * Suggests that the given refdb compress or optimize its references. |
| * This mechanism is implementation specific. For on-disk reference |
| * databases, for example, this may pack all loose references. |
| */ |
| GIT_EXTERN(int) git_refdb_compress(git_refdb *refdb); |
| |
| /** |
| * Close an open reference database. |
| * |
| * @param refdb reference database pointer or NULL |
| */ |
| GIT_EXTERN(void) git_refdb_free(git_refdb *refdb); |
| |
| /** @} */ |
| GIT_END_DECL |
| |
| #endif |