diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-08-31 00:25:04 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-31 00:25:04 -0700 |
commit | 75d244990364e322e87e2549846b17252f440627 (patch) | |
tree | 94afcf0b20cb51bff4c8f7a6129eba8a72079664 | |
parent | Make git-archimport log entries more consistent (diff) | |
download | tgif-75d244990364e322e87e2549846b17252f440627.tar.xz |
git-init: autodetect core.symlinks
We already autodetect if filemode is reliable on the filesystem
to deal with VFAT and friends. Do the same for symbolic link
support.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-init-db.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/builtin-init-db.c b/builtin-init-db.c index af15cb2739..763fa55e76 100644 --- a/builtin-init-db.c +++ b/builtin-init-db.c @@ -264,6 +264,21 @@ static int create_default_files(const char *git_dir, const char *template_path) if (work_tree != git_work_tree_cfg) git_config_set("core.worktree", work_tree); } + + /* Check if symlink is supported in the work tree */ + if (!reinit) { + path[len] = 0; + strcpy(path + len, "tXXXXXX"); + if (!close(xmkstemp(path)) && + !unlink(path) && + !symlink("testing", path) && + !lstat(path, &st1) && + S_ISLNK(st1.st_mode)) + unlink(path); /* good */ + else + git_config_set("core.symlinks", "false"); + } + return reinit; } |