Refactor list of of repo-local env vars
Move the list of GIT_* environment variables that are local to a repository into a static list in environment.c, as it is also useful elsewhere. Also add the missing GIT_CONFIG variable to the list. Make it easy to use the list both by NULL-termination and by size; the latter (excluding the terminating NULL) is stored in the local_repo_env_size define. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e923eaeb90
commit
48a7c1c49d
9
cache.h
9
cache.h
@ -388,6 +388,15 @@ static inline enum object_type object_type(unsigned int mode)
|
|||||||
#define GIT_NOTES_REF_ENVIRONMENT "GIT_NOTES_REF"
|
#define GIT_NOTES_REF_ENVIRONMENT "GIT_NOTES_REF"
|
||||||
#define GIT_NOTES_DEFAULT_REF "refs/notes/commits"
|
#define GIT_NOTES_DEFAULT_REF "refs/notes/commits"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Repository-local GIT_* environment variables
|
||||||
|
* The array is NULL-terminated to simplify its usage in contexts such
|
||||||
|
* environment creation or simple walk of the list.
|
||||||
|
* The number of non-NULL entries is available as a macro.
|
||||||
|
*/
|
||||||
|
#define LOCAL_REPO_ENV_SIZE 8
|
||||||
|
extern const char *const local_repo_env[LOCAL_REPO_ENV_SIZE + 1];
|
||||||
|
|
||||||
extern int is_bare_repository_cfg;
|
extern int is_bare_repository_cfg;
|
||||||
extern int is_bare_repository(void);
|
extern int is_bare_repository(void);
|
||||||
extern int is_inside_git_dir(void);
|
extern int is_inside_git_dir(void);
|
||||||
|
14
connect.c
14
connect.c
@ -607,18 +607,8 @@ struct child_process *git_connect(int fd[2], const char *url_orig,
|
|||||||
*arg++ = host;
|
*arg++ = host;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* remove these from the environment */
|
/* remove repo-local variables from the environment */
|
||||||
const char *env[] = {
|
conn->env = local_repo_env;
|
||||||
ALTERNATE_DB_ENVIRONMENT,
|
|
||||||
DB_ENVIRONMENT,
|
|
||||||
GIT_DIR_ENVIRONMENT,
|
|
||||||
GIT_WORK_TREE_ENVIRONMENT,
|
|
||||||
GRAFT_ENVIRONMENT,
|
|
||||||
INDEX_ENVIRONMENT,
|
|
||||||
NO_REPLACE_OBJECTS_ENVIRONMENT,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
conn->env = env;
|
|
||||||
conn->use_shell = 1;
|
conn->use_shell = 1;
|
||||||
}
|
}
|
||||||
*arg++ = cmd.buf;
|
*arg++ = cmd.buf;
|
||||||
|
@ -63,6 +63,23 @@ static char *work_tree;
|
|||||||
static const char *git_dir;
|
static const char *git_dir;
|
||||||
static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file;
|
static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Repository-local GIT_* environment variables
|
||||||
|
* Remember to update local_repo_env_size in cache.h when
|
||||||
|
* the size of the list changes
|
||||||
|
*/
|
||||||
|
const char * const local_repo_env[LOCAL_REPO_ENV_SIZE + 1] = {
|
||||||
|
ALTERNATE_DB_ENVIRONMENT,
|
||||||
|
CONFIG_ENVIRONMENT,
|
||||||
|
DB_ENVIRONMENT,
|
||||||
|
GIT_DIR_ENVIRONMENT,
|
||||||
|
GIT_WORK_TREE_ENVIRONMENT,
|
||||||
|
GRAFT_ENVIRONMENT,
|
||||||
|
INDEX_ENVIRONMENT,
|
||||||
|
NO_REPLACE_OBJECTS_ENVIRONMENT,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
static void setup_git_env(void)
|
static void setup_git_env(void)
|
||||||
{
|
{
|
||||||
git_dir = getenv(GIT_DIR_ENVIRONMENT);
|
git_dir = getenv(GIT_DIR_ENVIRONMENT);
|
||||||
|
Loading…
Reference in New Issue
Block a user