aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2007-08-27 22:41:23 -0700
committerJunio C Hamano <gitster@pobox.com>2007-08-27 22:44:41 -0700
commit9277d60233a1829742aa2d9d20ddbfc3b2b7acde (patch)
treeeec15f54dfba51f537cfa93fd422c9f812430691
parent6adcca3fe84e6859fc62df6c4ab916192ca02795 (diff)
downloadgit-9277d60233a1829742aa2d9d20ddbfc3b2b7acde.tar.gz
git-9277d60233a1829742aa2d9d20ddbfc3b2b7acde.tar.xz
git --bare cmd: do not unconditionally nuke GIT_DIR
"GIT_DIR=some.where git --bare cmd" and worse yet "git --git-dir=some.where --bare cmd" were very confusing. They both ignored git-dir specified, and instead made $cwd as GIT_DIR. This changes --bare not to override existing GIT_DIR. This has been like this for a long time. Let's hope nobody sane relied on this insane behaviour. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git.txt5
-rw-r--r--git.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 3b0d53025..75b3e1b87 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -120,7 +120,10 @@ OPTIONS
variable.
--bare::
- Same as --git-dir=`pwd`.
+ Treat the repository as a bare repository. If GIT_DIR
+ environment is not set, it is set to the current working
+ directory.
+
FURTHER DOCUMENTATION
---------------------
diff --git a/git.c b/git.c
index b6e292e29..fd3d83cd4 100644
--- a/git.c
+++ b/git.c
@@ -94,7 +94,7 @@ static int handle_options(const char*** argv, int* argc, int* envchanged)
} else if (!strcmp(cmd, "--bare")) {
static char git_dir[PATH_MAX+1];
is_bare_repository_cfg = 1;
- setenv(GIT_DIR_ENVIRONMENT, getcwd(git_dir, sizeof(git_dir)), 1);
+ setenv(GIT_DIR_ENVIRONMENT, getcwd(git_dir, sizeof(git_dir)), 0);
if (envchanged)
*envchanged = 1;
} else {