git/builtin
Jeff King 87a074df24 handle "git --bare init <dir>" properly
If we know we are creating a bare repository, we use setenv
to set the GIT_DIR directory to the current directory
(either where we already were, or one we created and chdir'd
into with "git init --bare <dir>").

However, with "git --bare init <dir>" (note the --bare as a
git wrapper option), the setup code actually sets GIT_DIR
for us, but it uses the wrong, original cwd when a directory
is given. Because our setenv does not use the overwrite
flag, it is ignored.

We need to set the overwrite flag, but only when we are
given a directory on the command line. That still allows:

  GIT_DIR=foo.git git init --bare

to work. The behavior is changed for:

  GIT_DIR=foo.git git init --bare bar.git

which used to create the repository in foo.git, but now will
use bar.git. This is more sane, as command line options
should generally override the environment.

Noticed by Oliver Hoffmann.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-05-10 11:25:37 -07:00
..
add.c
annotate.c
apply.c Merge branch 'maint' 2010-04-09 22:43:18 -07:00
archive.c
bisect--helper.c
blame.c
branch.c
bundle.c
cat-file.c
check-attr.c
check-ref-format.c
checkout-index.c
checkout.c checkout -m --conflict=diff3: add a label for ancestor 2010-03-20 20:36:11 -07:00
clean.c
clone.c clone: quell the progress report from init and report on clone 2010-05-04 10:02:46 -07:00
commit-tree.c
commit.c builtin/commit: remove unnecessary variable definition 2010-04-02 11:38:00 -07:00
config.c
count-objects.c
describe.c
diff-files.c
diff-index.c
diff-tree.c Merge branch 'pb/log-first-parent-p-m' 2010-03-24 16:25:39 -07:00
diff.c
fast-export.c Merge branch 'maint' 2010-03-28 17:42:58 -07:00
fetch-pack.c
fetch.c Merge branch 'maint' 2010-04-09 22:43:18 -07:00
fmt-merge-msg.c fmt-merge-msg: hide summary option 2010-03-24 19:45:31 -07:00
for-each-ref.c
fsck.c
gc.c
grep.c Merge branch 'rs/threaded-grep-context' 2010-04-03 12:28:39 -07:00
hash-object.c
help.c
index-pack.c Merge branch 'maint' 2010-05-01 20:23:10 -07:00
init-db.c handle "git --bare init <dir>" properly 2010-05-10 11:25:37 -07:00
log.c pretty: Initialize notes if %N is used 2010-04-13 18:15:08 -07:00
ls-files.c ls: remove redundant logic 2010-03-21 16:23:44 -07:00
ls-remote.c
ls-tree.c ls: remove redundant logic 2010-03-21 16:23:44 -07:00
mailinfo.c Teach mailinfo %< as an alternative scissors mark 2010-04-04 10:17:55 -07:00
mailsplit.c
merge-base.c
merge-file.c merge-file --diff3: add a label for ancestor 2010-03-20 20:36:11 -07:00
merge-index.c
merge-ours.c
merge-recursive.c
merge-tree.c
merge.c Merge branch 'cc/cherry-pick-ff' 2010-03-28 21:52:28 -07:00
mktag.c
mktree.c
mv.c
name-rev.c
notes.c Merge branch 'sb/notes-parse-opt' 2010-03-28 21:52:28 -07:00
pack-objects.c
pack-redundant.c
pack-refs.c
patch-id.c
prune-packed.c
prune.c
push.c Merge branch 'maint' 2010-04-09 22:43:18 -07:00
read-tree.c
receive-pack.c
reflog.c Merge branch 'maint' 2010-04-19 22:41:30 -07:00
remote.c
replace.c
rerere.c
reset.c Sync with 1.7.0.4 2010-03-31 15:14:27 -07:00
rev-list.c Merge branch 'ef/maint-empty-commit-log' 2010-04-06 14:50:46 -07:00
rev-parse.c
revert.c cherry-pick: do not dump core when iconv fails 2010-05-08 16:56:21 -07:00
rm.c
send-pack.c
shortlog.c
show-branch.c
show-ref.c
stripspace.c
symbolic-ref.c
tag.c tag -v: use RUN_GIT_CMD to run verify-tag 2010-04-17 12:40:19 -07:00
tar-tree.c
unpack-file.c
unpack-objects.c
update-index.c
update-ref.c
update-server-info.c
upload-archive.c
var.c
verify-pack.c
verify-tag.c
write-tree.c