[PATCHv4 1/6] environment: static list of repo-local env vars
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
---
cache.h | 3 +++
environment.c | 15 +++++++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/cache.h b/cache.h
index d454b7e..3b44fe2 100644
--- a/cache.h
+++ b/cache.h
@@ -388,6 +388,9 @@ static inline enum object_type object_type(unsigned int mode)
#define GIT_NOTES_REF_ENVIRONMENT "GIT_NOTES_REF"
#define GIT_NOTES_DEFAULT_REF "refs/notes/commits"
+extern const char *const local_repo_env[];
+extern const unsigned int local_repo_env_size;
+
extern int is_bare_repository_cfg;
extern int is_bare_repository(void);
extern int is_inside_git_dir(void);
diff --git a/environment.c b/environment.c
index 739ec27..b15352d 100644
--- a/environment.c
+++ b/environment.c
@@ -63,6 +63,21 @@ static char *work_tree;
static const char *git_dir;
static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file;
+/* Repository-local GIT_* environment variables */
+const char *const local_repo_env[] = {
+ ALTERNATE_DB_ENVIRONMENT,
+ CONFIG_ENVIRONMENT,
+ DB_ENVIRONMENT,
+ GIT_DIR_ENVIRONMENT,
+ GIT_WORK_TREE_ENVIRONMENT,
+ GRAFT_ENVIRONMENT,
+ INDEX_ENVIRONMENT,
+ NO_REPLACE_OBJECTS_ENVIRONMENT,
+ NULL
+};
+
+const unsigned int local_repo_env_size = ARRAY_SIZE(local_repo_env);
+
static void setup_git_env(void)
{
git_dir = getenv(GIT_DIR_ENVIRONMENT);
--
1.7.0.212.g4e217.dirty