Thread (7 messages) read the whole thread 7 messages, 3 authors, 2021-01-04

Re: git-dir requires work-tree; documentation improvements for working directory

From: Yaroslav Nikitenko <hidden>
Date: 2021-01-03 09:16:43

2021-01-03 1:02 GMT+03:00, Felipe Contreras [off-list ref]:
Yaroslav Nikitenko wrote:
quoted
2021-01-02 22:12 GMT+03:00, Felipe Contreras
[off-list ref]:
quoted
Yaroslav Nikitenko wrote:
quoted
I use git to manage my dotfiles with this command:

    git --git-dir=/home/yaroslav/.cfg/ --work-tree=/home/yaroslav
I do precisely the same thing.
quoted
When reading documentation, I noticed two issues.

1) The command doesn't work without --work-tree (even from the top
level directory, which is my home directory).

    [~]$ git --git-dir=/home/yaroslav/.cfg/ status
    fatal: this operation must be run in a work tree
That's weird. It works fine here (although I don't see why I would want
that).
BTW, how do you do that in your case?
I have an alias:

  alias config='git --git-dir=$HOME/.config/dotfiles/.git/
--work-tree=$HOME'

So, when I'm in my $HOME, I can do:

  config status
Thanks.
quoted
quoted
If you remove all your configuration does it still fail?
It starts to work when I remove my .cfg/config. I've no idea why it
happens. Here is its contents:

$ more .cfg/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = true
That's the difference: my core.bare is false.

I do have a checked out work-tree because that's the only way I could
get some commands to work, for example `git rebase`, even though I don't
use that work-tree.

I'm not sure if it makes sense to not assume '.' is the work-tree when
'core.bare=true', but I think it does make sense, so maybe just turn
that off.

Cheers.

--
Felipe Contreras
Thanks for the suggestion. I'd rather not change my config at the
moment. It's not difficult to provide work-tree in the alias.

However, I think that this is a bug in the implementation or the
documentation. It's not highlighted anywhere that the repository must
be non-bare for git-dir to work without explicit work-tree (an
opposite is stated in general).

Should I write a letter with [BUG] in its header for that to be noticed?
I'm surprised why there is no issue tracker for git.

Cheers,
Yaroslav Nikitenko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help