aboutsummaryrefslogtreecommitdiff
path: root/builtin-init-db.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin-init-db.c')
-rw-r--r--builtin-init-db.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/builtin-init-db.c b/builtin-init-db.c
index 235a0ee48..8f2b7500d 100644
--- a/builtin-init-db.c
+++ b/builtin-init-db.c
@@ -164,13 +164,14 @@ static void copy_templates(const char *git_dir, int len, const char *template_di
closedir(dir);
}
-static void create_default_files(const char *git_dir, const char *template_path)
+static int create_default_files(const char *git_dir, const char *template_path)
{
unsigned len = strlen(git_dir);
static char path[PATH_MAX];
unsigned char sha1[20];
struct stat st1;
char repo_version_string[10];
+ int reinit;
if (len > sizeof(path)-50)
die("insane git directory %s", git_dir);
@@ -218,7 +219,8 @@ static void create_default_files(const char *git_dir, const char *template_path)
* branch, if it does not exist yet.
*/
strcpy(path + len, "HEAD");
- if (read_ref("HEAD", sha1) < 0) {
+ reinit = !read_ref("HEAD", sha1);
+ if (!reinit) {
if (create_symref("HEAD", "refs/heads/master") < 0)
exit(1);
}
@@ -239,6 +241,8 @@ static void create_default_files(const char *git_dir, const char *template_path)
git_config_set("core.filemode",
filemode ? "true" : "false");
}
+
+ return reinit;
}
static const char init_db_usage[] =
@@ -256,7 +260,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
const char *sha1_dir;
const char *template_dir = NULL;
char *path;
- int len, i;
+ int len, i, reinit;
for (i = 1; i < argc; i++, argv++) {
const char *arg = argv[1];
@@ -274,10 +278,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
* Set up the default .git directory contents
*/
git_dir = getenv(GIT_DIR_ENVIRONMENT);
- if (!git_dir) {
+ if (!git_dir)
git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
- fprintf(stderr, "defaulting to local storage area\n");
- }
safe_create_dir(git_dir, 0);
/* Check to see if the repository version is right.
@@ -287,7 +289,7 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
*/
check_repository_format();
- create_default_files(git_dir, template_dir);
+ reinit = create_default_files(git_dir, template_dir);
/*
* And set up the object store.
@@ -314,5 +316,10 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
git_config_set("receive.denyNonFastforwards", "true");
}
+ printf("%s%s Git repository in %s/\n",
+ reinit ? "Reinitialized existing" : "Initialized empty",
+ shared_repository ? " shared" : "",
+ git_dir);
+
return 0;
}