From: Junio C Hamano <junkio@cox.net>
To: "Horst H. von Brand" <vonbrand@inf.utfsm.cl>
Cc: git@vger.kernel.org
Subject: Re: 1.5.0.rc1.g4494: Can't use a bare GIT_DIR to add
Date: Fri, 12 Jan 2007 09:56:48 -0800 [thread overview]
Message-ID: <7vzm8ot9gf.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <200701121545.l0CFjMC1017088@laptop13.inf.utfsm.cl> (Horst H. von Brand's message of "Fri, 12 Jan 2007 12:45:22 -0300")
"Horst H. von Brand" <vonbrand@inf.utfsm.cl> writes:
> I tried this:
>
> mkdir xyz
> cd xyz
> git --git-dir=../xyz.git
> # Initialized empty Git repository in ../xyz.git/
> echo Junk > file-a
> git --git-dir=../xyz.git add .
> # fatal: add cannot be used in a bare git directory
>
> I expected that "GIT_DIR is bare, over there, stuff is here" works the same
> as "GIT_DIR is .git, right here among stuff".
Sheesh, why didn't you speak out earlier while the discussion
was on (I am not serious, git mailing list is still moving too
fast for people to be always on top of)?
Now, seriously.
The "bare" topic introduced "is this repository bare?" check,
which can say only "yes" or "no" for any given GIT_DIR. A
heuristic is there but can be overriden with "core.bare"
configuration. We allow certain things we usually do not allow
in a repository without working tree (e.g. updating the branch
pointed at with HEAD via "git-fetch"), and we forbid things that
require a working tree in a bare repository (e.g. "git-checkout").
This "your bare repository is my repository with worktree
elsewhere" was not something we considered during the "bare"
discussion. If we wanted to allow that, the check needs to say
"yes", "no", or "depends", and we need to allow both kinds of
operations in a repository marked as the third kind.
You said "I tried". Is this something you do in real life?
This _is_ a regression, as we are checking something we did not
check before and refusing to work in cases where we did. But I
am not sure if reverting to lift the safety (for that matter,
introducing the third "depends" alternative) is better than the
latest behaviour.
For one thing, you could (sometime before the "git add ." and do
this only once) do:
$ ln -s ../xyz.git .git
and that would make all the future git operation work without
the --git-dir parameter (or GIT_DIR environment) in xyz
directory. An added benefit is that it would even allow git
command to work from a subdirectory of xyz (specifying GIT_DIR
or --git-dir means you are bypassing the discovery for the top
of the working tree, so you have to always be at the top).
Hmmmm.
next prev parent reply other threads:[~2007-01-12 17:56 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-12 15:45 1.5.0.rc1.g4494: Can't use a bare GIT_DIR to add Horst H. von Brand
2007-01-12 17:33 ` Junio C Hamano
2007-01-12 17:56 ` Junio C Hamano [this message]
2007-01-12 20:15 ` Horst H. von Brand
2007-01-12 21:33 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vzm8ot9gf.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=vonbrand@inf.utfsm.cl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox