Provide more meaningful output from 'git init-db'.
Back in the old days of Git when people messed around with their GIT_DIR environment variable more often it was nice to know whether or not git-init-db created a .git directory or used GIT_DIR. As most users at that time were rather technical UNIXy folk the message "defaulting to local storage area" made sense to some and seemed reasonable. But it doesn't really convey any meaning to the new Git user, as they don't know what a 'local storage area is' nor do they know enough about Git to care. It also really doesn't tell the experienced Git user a whole lot about the command they just ran, especially if they might be reinitializing an existing repository (e.g. to update hooks). So now we print out what we did ("Initialized empty" or "Reinitialized existing"), what type of repository ("" or "shared"), and what location the repository will be in ("$GIT_DIR"). Suggested in part by Andy Parkins in his Git 'niggles' list (<200612132237.10051.andyparkins@gmail.com>). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
ebd124c678
commit
ef0a89a604
@ -57,7 +57,7 @@ $ git-init-db
|
|||||||
to which git will reply
|
to which git will reply
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
defaulting to local storage area
|
Initialized empty Git repository in .git/
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
which is just git's way of saying that you haven't been doing anything
|
which is just git's way of saying that you haven't been doing anything
|
||||||
|
@ -18,7 +18,7 @@ Let's start a new project and create a small amount of history:
|
|||||||
$ mkdir test-project
|
$ mkdir test-project
|
||||||
$ cd test-project
|
$ cd test-project
|
||||||
$ git init-db
|
$ git init-db
|
||||||
defaulting to local storage area
|
Initialized empty Git repository in .git/
|
||||||
$ echo 'hello world' > file.txt
|
$ echo 'hello world' > file.txt
|
||||||
$ git add .
|
$ git add .
|
||||||
$ git commit -a -m "initial commit"
|
$ git commit -a -m "initial commit"
|
||||||
|
@ -38,7 +38,7 @@ $ git init-db
|
|||||||
Git will reply
|
Git will reply
|
||||||
|
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
defaulting to local storage area
|
Initialized empty Git repository in .git/
|
||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
You've now initialized the working directory--you may notice a new
|
You've now initialized the working directory--you may notice a new
|
||||||
|
@ -164,13 +164,14 @@ static void copy_templates(const char *git_dir, int len, const char *template_di
|
|||||||
closedir(dir);
|
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);
|
unsigned len = strlen(git_dir);
|
||||||
static char path[PATH_MAX];
|
static char path[PATH_MAX];
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
struct stat st1;
|
struct stat st1;
|
||||||
char repo_version_string[10];
|
char repo_version_string[10];
|
||||||
|
int reinit;
|
||||||
|
|
||||||
if (len > sizeof(path)-50)
|
if (len > sizeof(path)-50)
|
||||||
die("insane git directory %s", git_dir);
|
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.
|
* branch, if it does not exist yet.
|
||||||
*/
|
*/
|
||||||
strcpy(path + len, "HEAD");
|
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)
|
if (create_symref("HEAD", "refs/heads/master") < 0)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -239,6 +241,8 @@ static void create_default_files(const char *git_dir, const char *template_path)
|
|||||||
git_config_set("core.filemode",
|
git_config_set("core.filemode",
|
||||||
filemode ? "true" : "false");
|
filemode ? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return reinit;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char init_db_usage[] =
|
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 *sha1_dir;
|
||||||
const char *template_dir = NULL;
|
const char *template_dir = NULL;
|
||||||
char *path;
|
char *path;
|
||||||
int len, i;
|
int len, i, reinit;
|
||||||
|
|
||||||
for (i = 1; i < argc; i++, argv++) {
|
for (i = 1; i < argc; i++, argv++) {
|
||||||
const char *arg = argv[1];
|
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
|
* Set up the default .git directory contents
|
||||||
*/
|
*/
|
||||||
git_dir = getenv(GIT_DIR_ENVIRONMENT);
|
git_dir = getenv(GIT_DIR_ENVIRONMENT);
|
||||||
if (!git_dir) {
|
if (!git_dir)
|
||||||
git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
|
git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
|
||||||
fprintf(stderr, "defaulting to local storage area\n");
|
|
||||||
}
|
|
||||||
safe_create_dir(git_dir, 0);
|
safe_create_dir(git_dir, 0);
|
||||||
|
|
||||||
/* Check to see if the repository version is right.
|
/* 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();
|
check_repository_format();
|
||||||
|
|
||||||
create_default_files(git_dir, template_dir);
|
reinit = create_default_files(git_dir, template_dir);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* And set up the object store.
|
* 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");
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user