repository: initialize the_repository in main()
This simplifies initialization of struct repository and anything inside. Easier to read. Easier to add/remove fields. Everything will go through main() common-main.c so this should cover all programs, including t/helper. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b2e45c695d
commit
b2f0eceecf
@ -34,6 +34,8 @@ int main(int argc, const char **argv)
|
|||||||
|
|
||||||
git_setup_gettext();
|
git_setup_gettext();
|
||||||
|
|
||||||
|
initialize_the_repository();
|
||||||
|
|
||||||
attr_start();
|
attr_start();
|
||||||
|
|
||||||
git_extract_argv0_path(argv[0]);
|
git_extract_argv0_path(argv[0]);
|
||||||
|
18
repository.c
18
repository.c
@ -4,10 +4,16 @@
|
|||||||
#include "submodule-config.h"
|
#include "submodule-config.h"
|
||||||
|
|
||||||
/* The main repository */
|
/* The main repository */
|
||||||
static struct repository the_repo = {
|
static struct repository the_repo;
|
||||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, &hash_algos[GIT_HASH_SHA1], 0, 0
|
struct repository *the_repository;
|
||||||
};
|
|
||||||
struct repository *the_repository = &the_repo;
|
void initialize_the_repository(void)
|
||||||
|
{
|
||||||
|
the_repository = &the_repo;
|
||||||
|
|
||||||
|
the_repo.index = &the_index;
|
||||||
|
repo_set_hash_algo(&the_repo, GIT_HASH_SHA1);
|
||||||
|
}
|
||||||
|
|
||||||
static char *git_path_from_env(const char *envvar, const char *git_dir,
|
static char *git_path_from_env(const char *envvar, const char *git_dir,
|
||||||
const char *path, int fromenv)
|
const char *path, int fromenv)
|
||||||
@ -128,7 +134,9 @@ static int read_and_verify_repository_format(struct repository_format *format,
|
|||||||
* Initialize 'repo' based on the provided 'gitdir'.
|
* Initialize 'repo' based on the provided 'gitdir'.
|
||||||
* Return 0 upon success and a non-zero value upon failure.
|
* Return 0 upon success and a non-zero value upon failure.
|
||||||
*/
|
*/
|
||||||
int repo_init(struct repository *repo, const char *gitdir, const char *worktree)
|
static int repo_init(struct repository *repo,
|
||||||
|
const char *gitdir,
|
||||||
|
const char *worktree)
|
||||||
{
|
{
|
||||||
struct repository_format format;
|
struct repository_format format;
|
||||||
memset(repo, 0, sizeof(*repo));
|
memset(repo, 0, sizeof(*repo));
|
||||||
|
@ -91,7 +91,7 @@ extern struct repository *the_repository;
|
|||||||
extern void repo_set_gitdir(struct repository *repo, const char *path);
|
extern void repo_set_gitdir(struct repository *repo, const char *path);
|
||||||
extern void repo_set_worktree(struct repository *repo, const char *path);
|
extern void repo_set_worktree(struct repository *repo, const char *path);
|
||||||
extern void repo_set_hash_algo(struct repository *repo, int algo);
|
extern void repo_set_hash_algo(struct repository *repo, int algo);
|
||||||
extern int repo_init(struct repository *repo, const char *gitdir, const char *worktree);
|
extern void initialize_the_repository(void);
|
||||||
extern int repo_submodule_init(struct repository *submodule,
|
extern int repo_submodule_init(struct repository *submodule,
|
||||||
struct repository *superproject,
|
struct repository *superproject,
|
||||||
const char *path);
|
const char *path);
|
||||||
|
Loading…
Reference in New Issue
Block a user