Re: 1.5.0.rc1.g4494: Can't use a bare GIT_DIR to add
From: Horst H. von Brand <hidden>
Date: 2016-06-15 22:42:49
Junio C Hamano [off-list ref] wrote:
"Horst H. von Brand" [off-list ref] writes:quoted
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)?
Because I just noticed :-(
Now, seriously.
[...]
You said "I tried". Is this something you do in real life?
There was a discussion going on about importing several tarballs (one
version after the other) into git. If you want to just export the result,
not futz around in it, it leads naturally to doing something like:
mkdir /base/test.git
cd /base/test.git; git --bare init
for v in 0.8.0.99 0.99a 0.99b 1.0 1.1 1.2.0 1.2.1 1.2.2; do
cd /work
tar zxf test-$v.tar.gz
cd test-$v
git --git-dir=/base/test.git add .
git --git-dir=/base/test.git commit -a "Version $v"
git --git-dir=/base/test.git tag v$v
cd /work
rm -rf test-$v
done
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.
It grates me somewhat that there isn't a clean way of saying "My .git stuff is over there". No big deal, really. And it is not a "depends", AFAICS: GIT_DIR says where to stash stuff, users had better know what they are doing in that case... so perhaps allow anything if GIT_DIR is set?
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).
For this particular case this is no real help. But no big deal to me. Still trying to wrap my brain aound git, that's all. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 2654431 Universidad Tecnica Federico Santa Maria +56 32 2654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 2797513