Commit 1384b688 by Russell Belfer

Move some low-level repo fns to include/git2/sys

parent 7cc3c920
...@@ -137,14 +137,6 @@ GIT_EXTERN(int) git_repository_open_ext( ...@@ -137,14 +137,6 @@ GIT_EXTERN(int) git_repository_open_ext(
GIT_EXTERN(int) git_repository_open_bare(git_repository **out, const char *bare_path); GIT_EXTERN(int) git_repository_open_bare(git_repository **out, const char *bare_path);
/** /**
* Create a new repository with neither backends nor config object
*
* Note that this is only useful if you wish to associate the repository
* with a non-filesystem-backed object database and config store.
*/
GIT_EXTERN(int) git_repository_new(git_repository **out);
/**
* Free a previously allocated repository * Free a previously allocated repository
* *
* Note that after a repository is free'd, all the objects it has spawned * Note that after a repository is free'd, all the objects it has spawned
...@@ -409,21 +401,6 @@ GIT_EXTERN(int) git_repository_is_bare(git_repository *repo); ...@@ -409,21 +401,6 @@ GIT_EXTERN(int) git_repository_is_bare(git_repository *repo);
GIT_EXTERN(int) git_repository_config(git_config **out, git_repository *repo); GIT_EXTERN(int) git_repository_config(git_config **out, git_repository *repo);
/** /**
* Set the configuration file for this repository
*
* This configuration file will be used for all configuration
* queries involving this repository.
*
* The repository will keep a reference to the config file;
* the user must still free the config after setting it
* to the repository, or it will leak.
*
* @param repo A repository object
* @param config A Config object
*/
GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *config);
/**
* Get the Object Database for this repository. * Get the Object Database for this repository.
* *
* If a custom ODB has not been set, the default * If a custom ODB has not been set, the default
...@@ -440,21 +417,6 @@ GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *con ...@@ -440,21 +417,6 @@ GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *con
GIT_EXTERN(int) git_repository_odb(git_odb **out, git_repository *repo); GIT_EXTERN(int) git_repository_odb(git_odb **out, git_repository *repo);
/** /**
* Set the Object Database for this repository
*
* The ODB will be used for all object-related operations
* involving this repository.
*
* The repository will keep a reference to the ODB; the user
* must still free the ODB object after setting it to the
* repository, or it will leak.
*
* @param repo A repository object
* @param odb An ODB object
*/
GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb);
/**
* Get the Reference Database Backend for this repository. * Get the Reference Database Backend for this repository.
* *
* If a custom refsdb has not been set, the default database for * If a custom refsdb has not been set, the default database for
...@@ -471,23 +433,6 @@ GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb); ...@@ -471,23 +433,6 @@ GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb);
GIT_EXTERN(int) git_repository_refdb(git_refdb **out, git_repository *repo); GIT_EXTERN(int) git_repository_refdb(git_refdb **out, git_repository *repo);
/** /**
* Set the Reference Database Backend for this repository
*
* The refdb will be used for all reference related operations
* involving this repository.
*
* The repository will keep a reference to the refdb; the user
* must still free the refdb object after setting it to the
* repository, or it will leak.
*
* @param repo A repository object
* @param refdb An refdb object
*/
GIT_EXTERN(void) git_repository_set_refdb(
git_repository *repo,
git_refdb *refdb);
/**
* Get the Index file for this repository. * Get the Index file for this repository.
* *
* If a custom index has not been set, the default * If a custom index has not been set, the default
...@@ -504,21 +449,6 @@ GIT_EXTERN(void) git_repository_set_refdb( ...@@ -504,21 +449,6 @@ GIT_EXTERN(void) git_repository_set_refdb(
GIT_EXTERN(int) git_repository_index(git_index **out, git_repository *repo); GIT_EXTERN(int) git_repository_index(git_index **out, git_repository *repo);
/** /**
* Set the index file for this repository
*
* This index will be used for all index-related operations
* involving this repository.
*
* The repository will keep a reference to the index file;
* the user must still free the index after setting it
* to the repository, or it will leak.
*
* @param repo A repository object
* @param index An index object
*/
GIT_EXTERN(void) git_repository_set_index(git_repository *repo, git_index *index);
/**
* Retrieve git's prepared message * Retrieve git's prepared message
* *
* Operations such as git revert/cherry-pick/merge with the -n option * Operations such as git revert/cherry-pick/merge with the -n option
......
/*
* 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_sys_git_repository_h__
#define INCLUDE_sys_git_repository_h__
/**
* @file git2/sys/repository.h
* @brief Git repository custom implementation routines
* @defgroup git_backend Git custom backend APIs
* @ingroup Git
* @{
*/
GIT_BEGIN_DECL
/**
* Create a new repository with neither backends nor config object
*
* Note that this is only useful if you wish to associate the repository
* with a non-filesystem-backed object database and config store.
*
* @param out The blank repository
* @return 0 on success, or an error code
*/
GIT_EXTERN(int) git_repository_new(git_repository **out);
/**
* Set the configuration file for this repository
*
* This configuration file will be used for all configuration
* queries involving this repository.
*
* The repository will keep a reference to the config file;
* the user must still free the config after setting it
* to the repository, or it will leak.
*
* @param repo A repository object
* @param config A Config object
*/
GIT_EXTERN(void) git_repository_set_config(git_repository *repo, git_config *config);
/**
* Set the Object Database for this repository
*
* The ODB will be used for all object-related operations
* involving this repository.
*
* The repository will keep a reference to the ODB; the user
* must still free the ODB object after setting it to the
* repository, or it will leak.
*
* @param repo A repository object
* @param odb An ODB object
*/
GIT_EXTERN(void) git_repository_set_odb(git_repository *repo, git_odb *odb);
/**
* Set the Reference Database Backend for this repository
*
* The refdb will be used for all reference related operations
* involving this repository.
*
* The repository will keep a reference to the refdb; the user
* must still free the refdb object after setting it to the
* repository, or it will leak.
*
* @param repo A repository object
* @param refdb An refdb object
*/
GIT_EXTERN(void) git_repository_set_refdb(git_repository *repo, git_refdb *refdb);
/**
* Set the index file for this repository
*
* This index will be used for all index-related operations
* involving this repository.
*
* The repository will keep a reference to the index file;
* the user must still free the index after setting it
* to the repository, or it will leak.
*
* @param repo A repository object
* @param index An index object
*/
GIT_EXTERN(void) git_repository_set_index(git_repository *repo, git_index *index);
/** @} */
GIT_END_DECL
#endif
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "git2/object.h" #include "git2/object.h"
#include "git2/refdb.h" #include "git2/refdb.h"
#include "git2/sys/repository.h"
#include "common.h" #include "common.h"
#include "repository.h" #include "repository.h"
......
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "git2/sys/repository.h"
#include "diff_helpers.h" #include "diff_helpers.h"
#include "repository.h" #include "repository.h"
#include "buf_text.h" #include "buf_text.h"
......
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "git2/sys/repository.h"
#include "buffer.h" #include "buffer.h"
#include "posix.h" #include "posix.h"
#include "util.h" #include "util.h"
......
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "git2/sys/repository.h"
#include "fileops.h" #include "fileops.h"
#include "ignore.h" #include "ignore.h"
#include "status_helpers.h" #include "status_helpers.h"
...@@ -321,10 +323,10 @@ void test_status_worktree_init__new_staged_file_must_handle_crlf(void) ...@@ -321,10 +323,10 @@ void test_status_worktree_init__new_staged_file_must_handle_crlf(void)
cl_set_cleanup(&cleanup_new_repo, "getting_started"); cl_set_cleanup(&cleanup_new_repo, "getting_started");
cl_git_pass(git_repository_init(&repo, "getting_started", 0)); cl_git_pass(git_repository_init(&repo, "getting_started", 0));
// Ensure that repo has core.autocrlf=true /* Ensure that repo has core.autocrlf=true */
cl_repo_set_bool(repo, "core.autocrlf", true); cl_repo_set_bool(repo, "core.autocrlf", true);
cl_git_mkfile("getting_started/testfile.txt", "content\r\n"); // Content with CRLF cl_git_mkfile("getting_started/testfile.txt", "content\r\n"); /* Content with CRLF */
cl_git_pass(git_repository_index(&index, repo)); cl_git_pass(git_repository_index(&index, repo));
cl_git_pass(git_index_add_bypath(index, "testfile.txt")); cl_git_pass(git_index_add_bypath(index, "testfile.txt"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment