summaryrefslogtreecommitdiff
path: root/builtin/init-db.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2020-08-24 14:54:28 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-08-24 14:54:28 -0700
commita654836d96aced223bfbee57bd2ac1989eb6d77f (patch)
tree029067273ef10b890748f59404ce978618653980 /builtin/init-db.c
parentNinth batch (diff)
parentinit: disallow --separate-git-dir with bare repository (diff)
downloadtgif-a654836d96aced223bfbee57bd2ac1989eb6d77f.tar.xz
Merge branch 'es/init-no-separate-git-dir-in-bare'
The purpose of "git init --separate-git-dir" is to initialize a new project with the repository separate from the working tree, or, in the case of an existing project, to move the repository (the .git/ directory) out of the working tree. It does not make sense to use --separate-git-dir with a bare repository for which there is no working tree, so disallow its use with bare repositories. * es/init-no-separate-git-dir-in-bare: init: disallow --separate-git-dir with bare repository
Diffstat (limited to 'builtin/init-db.c')
-rw-r--r--builtin/init-db.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/builtin/init-db.c b/builtin/init-db.c
index f70076d38e..bbc9bc78f9 100644
--- a/builtin/init-db.c
+++ b/builtin/init-db.c
@@ -563,6 +563,9 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, init_db_options, init_db_usage, 0);
+ if (real_git_dir && is_bare_repository_cfg == 1)
+ die(_("--separate-git-dir and --bare are mutually exclusive"));
+
if (real_git_dir && !is_absolute_path(real_git_dir))
real_git_dir = real_pathdup(real_git_dir, 1);
@@ -658,6 +661,8 @@ int cmd_init_db(int argc, const char **argv, const char *prefix)
get_git_work_tree());
}
else {
+ if (real_git_dir)
+ die(_("--separate-git-dir incompatible with bare repository"));
if (work_tree)
set_git_work_tree(work_tree);
}