git-annex/doc/bugs/bare_remote_safe_directory.mdwn
2023-02-14 13:31:26 -04:00

26 lines
871 B
Markdown

git init foo.git
cd foo.git
git-annex init
cd ..
git clone foo.git bar
sudo chown root.root foo.git
cd bar
git-annex init
init fatal: not a git repository: /tmp/foo.git/.git'
This is specific to bare git remotes, for non-bare it
detects and warns that safe.directory is needed to use the
remote. --[[Joey]]
> What's causing this is that Git.Config.read is called
> on the repo, but git refuses to list the repo's config,
> so updateLocation does not see that the repo is bare
> when it checks isBare. And so it proceeds to set gitdir
> to the default non-bare "dir/.git" value.
>
> One way to deal with this would be to make isBare a tristate,
> since core.bare is not in the listed config at all.
>
> Or, make Git.Construct.fromPath detect when a repo is bare
> w/o parsing config, and indicate that in the Repo it
> generates.