Re: git gc changes ownerships of files linux
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Feb 11, 2024, 15:14 UTC
- Message-ID
- <20240211151455.GA27103@tb-raspi4>
- In-Reply-To
- <CABkRduQNdgdF8WhZadP5hyYvpEWgP_AE8=qzxNiRNA71bdJcYQ@mail.gmail.com>
On Sat, Feb 10, 2024 at 08:52:22PM +0100, K_V wrote:
Show 20 quoted lines
> Hi team git > > Running 'git -C /srv/mssioncontrol/.git gc' on linux from a user which > has access to another users files will occasionally change the > ownership of the file 'packed-refs'. I believe git actually overwrites > the file with a new one at the end af the gc command. But details > about this is not writen in the help text. Could it be a bug? > > Use case: I'm using ansible to cleanup .git directories across > multible servers and this issue is starting to cause problems. > > My solution is to make a variable containing the user and group id > before running gc command and then reapply it afterwards: > current_owner_uid_gid=$(stat -c "%u:%g" /srv/mssioncontrol/.git) > git -C /srv/mssioncontrol/.git gc > chown -R $current_owner_uid_gid "/srv/mssioncontrol/.git" > > Details: > Debian GNU/Linux 12 (bookworm) > git version 2.39.2
Thanks for reporting this - I think that you have a working workaround ?
However, Git has a feature called "shared repository". You need to define a (unix) group that is shared between your user(s) and the ansible user.
The basic trick is to do git config core.sharedRepository true
(And then change the ownership of all files/directories to the new group)
There is a docu here, please search for core.sharedRepository https://git-scm.com/docs/git-config
I wonder, which solution is easier to maintain ?
> > Best: > zinen >