Blame include/git2/refdb.h

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