projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add git-am, applymbox replacement.
[git.git]
/
init-db.c
diff --git
a/init-db.c
b/init-db.c
index
902bdfa
..
aabc09f
100644
(file)
--- a/
init-db.c
+++ b/
init-db.c
@@
-154,6
+154,7
@@
static void copy_templates(const char *git_dir, int len, char *template_dir)
}
memcpy(path, git_dir, len);
}
memcpy(path, git_dir, len);
+ path[len] = 0;
copy_templates_1(path, len,
template_path, template_len,
dir);
copy_templates_1(path, len,
template_path, template_len,
dir);
@@
-165,6
+166,7
@@
static void create_default_files(const char *git_dir,
{
unsigned len = strlen(git_dir);
static char path[PATH_MAX];
{
unsigned len = strlen(git_dir);
static char path[PATH_MAX];
+ unsigned char sha1[20];
if (len > sizeof(path)-50)
die("insane git directory %s", git_dir);
if (len > sizeof(path)-50)
die("insane git directory %s", git_dir);
@@
-185,15
+187,14
@@
static void create_default_files(const char *git_dir,
/*
* Create the default symlink from ".git/HEAD" to the "master"
/*
* Create the default symlink from ".git/HEAD" to the "master"
- * branch
+ * branch
, if it does not exist yet.
*/
strcpy(path + len, "HEAD");
*/
strcpy(path + len, "HEAD");
- if (symlink("refs/heads/master", path) < 0) {
- if (errno != EEXIST) {
- perror(path);
+ if (read_ref(path, sha1) < 0) {
+ if (create_symref(path, "refs/heads/master") < 0)
exit(1);
exit(1);
- }
}
}
+ path[len] = 0;
copy_templates(path, len, template_path);
}
copy_templates(path, len, template_path);
}