summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 510c5a8)
raw | patch | inline | side by side (parent: 510c5a8)
author | Junio C Hamano <junkio@cox.net> | |
Sun, 7 Jan 2007 10:00:28 +0000 (02:00 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 8 Jan 2007 05:36:35 +0000 (21:36 -0800) |
This removes the old is_bare_git_dir(const char *) to ask if a
directory, if it is a GIT_DIR, is a bare repository, and
replaces it with is_bare_repository(void *). The function looks
at core.bare configuration variable if exists but uses the old
heuristics: if it is ".git" or ends with "/.git", then it does
not look like a bare repository, otherwise it does.
Signed-off-by: Junio C Hamano <junkio@cox.net>
directory, if it is a GIT_DIR, is a bare repository, and
replaces it with is_bare_repository(void *). The function looks
at core.bare configuration variable if exists but uses the old
heuristics: if it is ".git" or ends with "/.git", then it does
not look like a bare repository, otherwise it does.
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-init-db.c | patch | blob | history | |
cache.h | patch | blob | history | |
config.c | patch | blob | history | |
environment.c | patch | blob | history | |
refs.c | patch | blob | history |
diff --git a/builtin-init-db.c b/builtin-init-db.c
index bbef820e478dd91cfe63431adf3cecc30e437416..22729f01ad5370974718995325de1d86df016a41 100644 (file)
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -252,9 +252,13 @@ static int create_default_files(const char *git_dir, const char *template_path)
}
git_config_set("core.filemode", filemode ? "true" : "false");
- /* Enable logAllRefUpdates if a working tree is attached */
- if (!is_bare_git_dir(git_dir))
+ if (is_bare_repository()) {
+ git_config_set("core.bare", "true");
+ }
+ else {
+ git_config_set("core.bare", "false");
git_config_set("core.logallrefupdates", "true");
+ }
return reinit;
}
index 36be64e3868456b11bc9a6024be5e955074241b2..cff25690f1861fd947b036e17cbefea783a7fbfc 100644 (file)
--- a/cache.h
+++ b/cache.h
#define CONFIG_LOCAL_ENVIRONMENT "GIT_CONFIG_LOCAL"
#define EXEC_PATH_ENVIRONMENT "GIT_EXEC_PATH"
-extern int is_bare_git_dir(const char *dir);
+extern int is_bare_repository_cfg;
+extern int is_bare_repository(void);
extern const char *get_git_dir(void);
extern char *get_object_directory(void);
extern char *get_refs_directory(void);
diff --git a/config.c b/config.c
index 5cbd130be2664258b488d8b4ca914550e10906a0..20e6ecc361325447f5784aba421f7f1588be184c 100644 (file)
--- a/config.c
+++ b/config.c
return 0;
}
+ if (!strcmp(var, "core.bare")) {
+ is_bare_repository_cfg = git_config_bool(var, value);
+ return 0;
+ }
+
if (!strcmp(var, "core.ignorestat")) {
assume_unchanged = git_config_bool(var, value);
return 0;
diff --git a/environment.c b/environment.c
index 64245e77a95d5adb4f9c4967380c7825776b4ba7..54c22f8248cc04647829c8a7558f2bb24515f30f 100644 (file)
--- a/environment.c
+++ b/environment.c
int trust_executable_bit = 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;
git_graft_file = xstrdup(git_path("info/grafts"));
}
-int is_bare_git_dir(const char *dir)
+int is_bare_repository(void)
{
- const char *s;
+ 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, '/');
index b5eee11bd54d269602c246ef4ba6120d499d55a3..499086ba6145fd988ba980ce35d47ff06d0bf69e 100644 (file)
--- a/refs.c
+++ b/refs.c
const char *committer;
if (log_all_ref_updates < 0)
- log_all_ref_updates = !is_bare_git_dir(get_git_dir());
+ log_all_ref_updates = !is_bare_repository();
if (log_all_ref_updates &&
(!strncmp(lock->ref_name, "refs/heads/", 11) ||