projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fall back to three-way merge when applying a patch.
[git.git]
/
init-db.c
diff --git
a/init-db.c
b/init-db.c
index
50b16b3
..
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);
}
@@
-226,7
+227,7
@@
int main(int argc, char **argv)
/*
* Set up the default .git directory contents
*/
/*
* Set up the default .git directory contents
*/
- git_dir = g
i
tenv(GIT_DIR_ENVIRONMENT);
+ git_dir = g
e
tenv(GIT_DIR_ENVIRONMENT);
if (!git_dir) {
git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
fprintf(stderr, "defaulting to local storage area\n");
if (!git_dir) {
git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
fprintf(stderr, "defaulting to local storage area\n");