threads / discuss / 58663

Change in behavior of included safe.directory in system config

Subject: Change in behavior of included safe.directory in system config

## tl;dr

3 messages between Oct 21, 2022 and Oct 21, 2022.

replies: 2people: 3as markdown or json

Yehuda Katz· Oct 21, 2022, 05:19 UTC · lore

There seems to be some change in behavior, either to included files or to safe.directory between Git 2.36.0 and 2.38.0. I don't see any explanation in the release notes. I push out a system configuration with a configuration management tool which is why it is in a separate file. If I put the safe.directory configuration in the main system config, it works. I don't understand why this is because the value is still shown when running a config list.

Basic config:
[root@myhost myproject]# pwd
/opt/myproject
[root@myhost myproject]# cat /etc/gitconfig
[include]
        path = /etc/gitconfig.d/myproject
[root@myhost myproject]# cat /etc/gitconfig.d/myproject
[safe]
        directory = /opt/myproject

With the old version: [root@myhost myproject]# git --version git version 2.36.0 [root@myhost myproject]# git config --list --show-scope system include.path=/etc/gitconfig.d/myproject system safe.directory=/opt/myproject local core.repositoryformatversion=0 local core.filemode=true local core.bare=false local core.logallrefupdates=true local remote.origin.url=git@gitlab.example.com:me/myproject.git local remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* local branch.master.remote=origin local branch.master.merge=refs/heads/master [root@myhost myproject]# git pull Already up to date. [root@myhost myproject]#

After the upgrade: [root@myhost myproject]# git --version git version 2.38.0 [root@myhost myproject]# git config --list --show-scope system include.path=/etc/gitconfig.d/puppet system safe.directory=/opt/myproject [root@myhost myproject]# git pull fatal: detected dubious ownership in repository at '/opt/myproject' To add an exception for this directory, call:

        git config --global --add safe.directory /opt/myproject
[root@myhost myproject]#
Junio C Hamano· Oct 21, 2022, 05:52 UTC · re: Yehuda Katz · lore

Re: Change in behavior of included safe.directory in system config

Yehuda Katz <yehuda@ymkatz.net> writes:
Show 16 quoted lines
> There seems to be some change in behavior, either to included files or
> to safe.directory between Git 2.36.0 and 2.38.0. I don't see any
> explanation in the release notes.
>
> I push out a system configuration with a configuration management tool
> which is why it is in a separate file.
> If I put the safe.directory configuration in the main system config,
> it works. I don't understand why this is because the value is still
> shown when running a config list.
>
> Basic config:
> [root@myhost myproject]# pwd
> /opt/myproject
> [root@myhost myproject]# cat /etc/gitconfig
> [include]
>         path = /etc/gitconfig.d/myproject
Is this
  https://lore.kernel.org/git/pull.1360.v2.git.git.1665683027912.gitgitgadget@gmail.com/
perhaps?  Can you try the version of Git from my 'next' branch?
Jeff King· Oct 21, 2022, 05:56 UTC · re: Yehuda Katz · lore

Re: Change in behavior of included safe.directory in system config

On Fri, Oct 21, 2022 at 01:19:12AM -0400, Yehuda Katz wrote:
> There seems to be some change in behavior, either to included files or
> to safe.directory between Git 2.36.0 and 2.38.0. I don't see any
> explanation in the release notes.
It's a bug; see:
  https://lore.kernel.org/git/pull.1360.git.git.1665603814.gitgitgadget@gmail.com/

I expect the fix there will be in 2.38.2 (it didn't get into v2.38.1, which was a pre-planned security release).

-Peff

← back to recent threads