X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=environment.c;h=22316597df60648c850001e068938eaf39d57f6d;hb=0dc03d6a30213e9aa0eb88886cee24b993a24a29;hp=87162b257254434be356b1a579967d51adff1e5f;hpb=647377c4c91064fc5001acddd5357467c0da6ef9;p=git.git diff --git a/environment.c b/environment.c index 87162b257..22316597d 100644 --- a/environment.c +++ b/environment.c @@ -13,20 +13,28 @@ char git_default_email[MAX_GITNAME]; char git_default_name[MAX_GITNAME]; int use_legacy_headers = 1; int trust_executable_bit = 1; -int assume_unchanged = 0; -int prefer_symlink_refs = 0; -int log_all_ref_updates = 0; +int has_symlinks = 1; +int assume_unchanged; +int prefer_symlink_refs; +int is_bare_repository_cfg = -1; /* unspecified */ +int log_all_ref_updates = -1; /* unspecified */ int warn_ambiguous_refs = 1; -int repository_format_version = 0; -char git_commit_encoding[MAX_ENCODING_LENGTH] = "utf-8"; +int repository_format_version; +const char *git_commit_encoding; +const char *git_log_output_encoding; int shared_repository = PERM_UMASK; -const char *apply_default_whitespace = NULL; +const char *apply_default_whitespace; int zlib_compression_level = Z_DEFAULT_COMPRESSION; +size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE; +size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT; +size_t delta_base_cache_limit = 16 * 1024 * 1024; int pager_in_use; int pager_use_color = 1; +int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */ + +static const char *git_dir; +static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file; -static char *git_dir, *git_object_dir, *git_index_file, *git_refs_dir, - *git_graft_file; static void setup_git_env(void) { git_dir = getenv(GIT_DIR_ENVIRONMENT); @@ -46,10 +54,23 @@ static void setup_git_env(void) } git_graft_file = getenv(GRAFT_ENVIRONMENT); if (!git_graft_file) - git_graft_file = strdup(git_path("info/grafts")); + git_graft_file = xstrdup(git_path("info/grafts")); +} + +int is_bare_repository(void) +{ + const char *dir, *s; + if (0 <= is_bare_repository_cfg) + return is_bare_repository_cfg; + + dir = get_git_dir(); + if (!strcmp(dir, DEFAULT_GIT_DIR_ENVIRONMENT)) + return 0; + s = strrchr(dir, '/'); + return !s || strcmp(s + 1, DEFAULT_GIT_DIR_ENVIRONMENT); } -char *get_git_dir(void) +const char *get_git_dir(void) { if (!git_dir) setup_git_env();