mirror of
https://github.com/git/git.git
synced 2024-11-23 09:56:28 +08:00
environment: make get_graft_file()
accept a repository
The `get_graft_file()` function retrieves the path to the graft file of `the_repository`. Make it accept a `struct repository` such that it can work on arbitrary repositories and make it part of the repository subsystem. This reduces our reliance on `the_repository` and clarifies scope. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1dc4ec2102
commit
14c90ac088
@ -11,7 +11,6 @@
|
||||
#include "builtin.h"
|
||||
#include "config.h"
|
||||
#include "editor.h"
|
||||
#include "environment.h"
|
||||
#include "gettext.h"
|
||||
#include "hex.h"
|
||||
#include "refs.h"
|
||||
@ -514,7 +513,7 @@ static int create_graft(int argc, const char **argv, int force, int gentle)
|
||||
|
||||
static int convert_graft_file(int force)
|
||||
{
|
||||
const char *graft_file = get_graft_file(the_repository);
|
||||
const char *graft_file = repo_get_graft_file(the_repository);
|
||||
FILE *fp = fopen_or_warn(graft_file, "r");
|
||||
struct strbuf buf = STRBUF_INIT, err = STRBUF_INIT;
|
||||
struct strvec args = STRVEC_INIT;
|
||||
|
4
commit.c
4
commit.c
@ -292,14 +292,14 @@ static int read_graft_file(struct repository *r, const char *graft_file)
|
||||
|
||||
void prepare_commit_graft(struct repository *r)
|
||||
{
|
||||
char *graft_file;
|
||||
const char *graft_file;
|
||||
|
||||
if (r->parsed_objects->commit_graft_prepared)
|
||||
return;
|
||||
if (!startup_info->have_repository)
|
||||
return;
|
||||
|
||||
graft_file = get_graft_file(r);
|
||||
graft_file = repo_get_graft_file(r);
|
||||
read_graft_file(r, graft_file);
|
||||
/* make sure shallows are read */
|
||||
is_repository_shallow(r);
|
||||
|
@ -306,13 +306,6 @@ int odb_pack_keep(const char *name)
|
||||
return open(name, O_RDWR|O_CREAT|O_EXCL, 0600);
|
||||
}
|
||||
|
||||
char *get_graft_file(struct repository *r)
|
||||
{
|
||||
if (!r->graft_file)
|
||||
BUG("git environment hasn't been setup");
|
||||
return r->graft_file;
|
||||
}
|
||||
|
||||
static void set_git_dir_1(const char *path)
|
||||
{
|
||||
xsetenv(GIT_DIR_ENVIRONMENT, path, 1);
|
||||
|
@ -1,7 +1,6 @@
|
||||
#ifndef ENVIRONMENT_H
|
||||
#define ENVIRONMENT_H
|
||||
|
||||
struct repository;
|
||||
struct strvec;
|
||||
|
||||
/*
|
||||
@ -106,7 +105,6 @@ int have_git_dir(void);
|
||||
extern int is_bare_repository_cfg;
|
||||
int is_bare_repository(void);
|
||||
extern char *git_work_tree_cfg;
|
||||
char *get_graft_file(struct repository *r);
|
||||
void set_git_dir(const char *path, int make_realpath);
|
||||
const char *get_git_namespace(void);
|
||||
const char *strip_namespace(const char *namespaced_ref);
|
||||
|
@ -119,6 +119,13 @@ const char *repo_get_index_file(struct repository *repo)
|
||||
return repo->index_file;
|
||||
}
|
||||
|
||||
const char *repo_get_graft_file(struct repository *repo)
|
||||
{
|
||||
if (!repo->graft_file)
|
||||
BUG("repository hasn't been set up");
|
||||
return repo->graft_file;
|
||||
}
|
||||
|
||||
static void repo_set_commondir(struct repository *repo,
|
||||
const char *commondir)
|
||||
{
|
||||
|
@ -210,6 +210,7 @@ const char *repo_get_git_dir(struct repository *repo);
|
||||
const char *repo_get_common_dir(struct repository *repo);
|
||||
const char *repo_get_object_directory(struct repository *repo);
|
||||
const char *repo_get_index_file(struct repository *repo);
|
||||
const char *repo_get_graft_file(struct repository *repo);
|
||||
|
||||
/*
|
||||
* Define a custom repository layout. Any field can be NULL, which
|
||||
|
Loading…
Reference in New Issue
Block a user